生物學家使用字母A,C,T和G的序列對基因組進行建模。一個基因是一個基因組的替代,該基因組開始於三聯體ATG之後並在三聯體TAG,TAA或TGA之前結束。此外,基因串的長度是3的倍數,並且基因不含任何三聯體ATG,TAG,TAA和TGA。生物信息學:查找給定基因組字符串的基因
理想:
Enter a genome string: TTATGTTTTAAGGATGGGGCGTTAGTT #Enter
TTT
GGGCGT
-----------------
Enter a genome string: TGTGTGTATAT
No Genes Were Found
到目前爲止,我有:
def findGene(gene):
final = ""
genep = gene.split("ATG")
for part in genep:
for chr in part:
for i in range(0, len(chr)):
if genePool(chr[i:i + 3]) == 1:
break
else:
final += (chr[i+i + 3] + "\n")
return final
def genePool(part):
g1 = "ATG"
g2 = "TAG"
g3 = "TAA"
g4 = "TGA"
if (part.count(g1) != 0) or (part.count(g2) != 0) or (part.count(g3) != 0) or (part.count(g4) != 0):
return 1
def main():
geneinput = input("Enter a genome string: ")
print(findGene(geneinput))
main()
# TTATGTTTTAAGGATGGGGCGTTAGTT
我一直運行到錯誤
要完全誠實的,這是真的不是爲我工作 - 我認爲我已經用這些代碼行走了一條死路 - 一種新的方法可能會有所幫助。
在此先感謝!
,我一直得到的錯誤 -
Enter a genome string: TTATGTTTTAAGGATGGGGCGTTAGTT
Traceback (most recent call last):
File "D:\Python\Chapter 8\Bioinformatics.py", line 40, in <module>
main()
File "D:\Python\Chapter 8\Bioinformatics.py", line 38, in main
print(findGene(geneinput))
File "D:\Python\Chapter 8\Bioinformatics.py", line 25, in findGene
final += (chr[i+i + 3] + "\n")
IndexError: string index out of range
就像我之前說的,我真的不知道,如果我在正確的軌道上解決問題與我當前的代碼上 - 什麼新的想法w^/僞代碼表示讚賞!
提取哪些錯誤? – mhawke
您打算將它用於大型數據集嗎?還是僅用於短小片段? – Moritz
@mhawke我似乎遇到了圍繞'[i:i + 3]'旋轉的錯誤 - 例如,當切片('[i:i + 3]'部分)出現問題時,將耗盡索引空間。這有幫助嗎? –