我是一个巨大的Python noobie,试图完成从DNA到RNA再到氨基酸的转换代码-一旦找到'Met‘蛋白质,它就应该开始打印蛋白质,一旦找到' stop’蛋白质,就停止打印,我希望它返回一个列表。但不知何故,它只在包含此DNA字符串时才打印Met?我想知道我哪里错了..。
编辑:谢谢!
发布于 2021-10-17 05:01:05
for i in range(protein_start, sequence_num, 3):
codon = codon_list[rna[i:i+3]]
if (codon == "STOP"):
return protein // or a break statement if more code
else:
protein.append(codon)发布于 2021-10-17 05:10:56
你只打印当它是condon == 'Met‘时,你可以做一个小的欺骗和检查语句。
passed_Met = false
for i in range(protein_start, sequence_num, 3):
codon = codon_list[rna[i:i+3]]
if (codon == "STOP"):
return protein // Returns the proten when 'STOP' is found
elif (passed_Met):
protein.append(codon)
elif (codon == "Met"):
protein.append(codon)
passed_Met = true发布于 2021-10-17 05:16:04
我认为这里缺少的主要部分是,最终您需要将elif语句转换为else语句,该语句涵盖所有其他氨基酸。在当前代码中,仅当序列中有Met时才追加。
在您的第一个函数中,您可能想要更改:
def transcribe(str):
dna = 'ATGC'
rna = 'UACG'
transcription = str.maketrans(dna, rna)
return (str.translate(transcription))作为第二点,您可能还想要更改
rna = translate(dna) to rna = transcribe(dna)https://stackoverflow.com/questions/69601402
复制相似问题