Python代码按顺序查找终止密码子

时间:2015-07-13 08:55:55

标签: python statistics bioinformatics biopython

我正试图在一个序列中找到终止密码子的位置。

不幸的是有些事情已经结束。这是我创建的代码:

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'。不幸的是,我需要回到我的代码并找到一种在开始和终止密码子之间进行读取的方法。

我添加了起始密码子,但我仍然处于亏损状态。我没有得到正确的数字。

1 个答案:

答案 0 :(得分:1)

我不是100%确定你想要的输出是什么,但如果你只想收集所有潜在的起始密码子位置并将密码子位置停在你的列表中xw(实际上允许我自由地重命名它们startCodonPositionsstopCodonPositions),这很简单。

事实上,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