”开头的标识符,后跟下一行的序列)转换为相同格式的氨基酸字母。我有代码:-6ren">
gpt4 book ai didi

python - 将 DNA 翻译为蛋白质时输出格式不正确

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:17 25 4
gpt4 key购买 nike

我知道这个问题之前已经被问过,但我从中得到了一些非常奇怪的输出。基本上,我试图将 .fasta 格式的 DNA 序列(即以“">”开头的标识符,后跟下一行的序列)转换为相同格式的氨基酸字母。我有代码:

#!/usr/bin/python

import sys

filename = sys.argv[1]

def translate_dna(sequence):

codontable = {
'ACC':'T', 'ACG':'T', 'ACT':'T',
'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',
'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',
'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',
'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',
'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',
'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',
'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',
'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',
'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',
'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',
'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',
'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',
'TAC':'Y', 'TAT':'Y', 'TAA':'*', 'TAG':'*',
'TGC':'C', 'TGT':'C', 'TGA':'*', 'TGG':'W',
'ATG':'M'
}
proteinsequence = ''
start = sequence.find('ATG')
sequencestart = sequence[int(start):]
stop = sequencestart.find('TAA')
cds = str(sequencestart[:int(stop)+3])

for n in range (0,len(cds),3):
if cds[n:n+3] in codontable:
proteinsequence += codontable[cds[n:n+3]]
print proteinsequence
sequence = ''

header = ''
sequence = ''
for line in open(filename):
if line[0] == ">":
if header != '':
print header
translate_dna(sequence)

header = line.strip()
sequence = ''
else:
sequence += line.strip()

print header
translate_dna(sequence)

我的输出预计如下:mouse_IPS1_cdsMFAEDKTY(等等等等)

但我实际上得到了这一点,它每行打印一个新字母,并且没有完成到序列的末尾:mouse_IPS1_cds中号中频艺术硕士MFAE艺术硕士MFAEDKMFAEDKTMFAEDKTY(它应该更长的时候停在这里)

因此,输出使得这种半三角形的字母不完整列表,每行只增加一个。

请问有什么办法有人可以指出是什么导致了这种情况发生吗?为什么它会每行打印一个新字母,然后甚至没有完成序列?

非常感谢任何帮助。

最佳答案

您在构建蛋白质序列的循环中的每次迭代中都会打印蛋白质序列。结果,您将获得每个中间版本。将 print 语句移至循环末尾,如下所示,您将只打印出最终结果:

for n in range (0,len(cds),3):
if cds[n:n+3] in codontable:
proteinsequence += codontable[cds[n:n+3]]
sequence = ''
print proteinsequence

关于python - 将 DNA 翻译为蛋白质时输出格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com