【发布时间】:2021-03-31 09:17:13
【问题描述】:
我没有错误。始终刷新缓存和本地内存。
验证翻译的资源:
[NCBI蛋白质翻译工具][1](验证)
[文本比较][2](验证)
[解决方案启示][3]
300 个 DNA 字符 -> 100 个蛋白质字符。
# dna_sequence = above sequence
dna_codons = {
'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',
'ACA':'T', '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',
} # replaced '_' for '*'
output_protein = ''
for i in range(0, len(dna_sequence), 3):
codon = dna_sequence[i:i+3]
output_protein += dna_codons.get(codon,'')
print(output_protein)
示例问题和解决方案: ps://www.geeksforgeeks.org/dna-protein-python-3/
【问题讨论】:
-
我看到的第一个问题是你的代码没有寻找起始密码子,它错误地从第一个核苷酸开始翻译。不过,您的 NCBI 解决方案似乎也在做同样的事情,这令人惊讶。 (另一件事:没有必要将 DNA 序列长度截断为 3 的倍数;省略这一步不会改变结果)。
-
好的,有趣的见解。我希望我的解决方案以与 NCBI 相同的方式进行翻译。我不需要起始密码子,因为我正在翻译整个序列。
-
无论如何,我无法重现该问题。您的代码包含几个错误,导致它无法执行(缩进、变量名不匹配),但一旦这些错误得到修复,输出与 NCBI/EBI/... 的输出相同,除了
_而不是*。所以我真的不明白你所谓的输出来自哪里。 -
对不起,我现在修复
-
我会再次查看我的解决方案并尽快更新这篇文章
标签: python dictionary text bioinformatics dna-sequence