我正试图在一个序列中找到终止密码子的位置。
不幸的是有些事情已经结束。这是我创建的代码:
def findStopCodons1(orf):
catch = numpy.arange(0, len(orf), 3)
x = []
w = []
for i in catch:
codon = orf[i:i+3]
if codon == 'ATG':
w.append(i+1)
catch1 = numpy.arange(i+1, len(orf), 3)
for i in catch1:
if codon == 'TAA' or codon == 'TAG' or codon == 'TGA':
x.append(i+1)
print i + 1
mergedlist = w + x
print mergedlist
print NP.ediff1d(mergedlist)
y = NP.ediff1d(mergedlist)
print max(y)
这应该是阅读第1帧。不幸的是,我认为我的数字已关闭。任何暗示我的代码有什么问题?
***编辑:我忘了输入起始密码子,即'ATG'。不幸的是,我需要回到我的代码并找到一种在开始和终止密码子之间进行读取的方法。
我添加了起始密码子,但我仍然处于亏损状态。我没有得到正确的数字。
答案 0 :(得分:1)
我不是100%确定你想要的输出是什么,但如果你只想收集所有潜在的起始密码子位置并将密码子位置停在你的列表中x
和w
(实际上允许我自由地重命名它们startCodonPositions
和stopCodonPositions
),这很简单。
事实上,startCodonPositions
的代码似乎已经完美运行了。为什么不和stopCodonPositions
做同样的事情呢?
def findStopCodons1(orf):
catch = numpy.arange(0, len(orf), 3)
startCodonPositions = []
stopCodonPositions = []
for i in catch:
codon = orf[i:i + 3]
if codon == 'ATG':
startCodonPositions.append(i + 1)
if codon == 'TAA' or codon == 'TAG' or codon == 'TGA':
stopCodonPositions.append(i + 1)
return startCodonPositions, stopCodonPositions