<p>我需要使用一个字符串来将RNA转换为蛋白质,并给出这样一个kay值对的字典。开始制造蛋白质需要在字符串中检测“AUG”,结束时需要检测“UAA”、“UAG”和“UGA”以停止该过程</p>
<p>例如,在访问名为codon2amino的字典中的键、值对时,translate(“AUGUAA”)将给出“M”,translate(“agagugagecccugagg”)将给出“MP”</p>
<pre><code> def get_mapping(csvfilename):
mapping = read_csv(csvfilename)
return dict(map(lambda x : (x[0],x[3]),mapping))
</code></pre>
<p>这是我尝试过的,但我被困在从这里走到哪里:</p>
<pre><code> def translate(rna_strand):
codon2amino = get_mapping("codon_mapping.csv")
start_codon = "AUG"
start_index = rna_strand.find(start_codon)
stop_codons = ["UAA", "UAG", "UGA"]
acid_list=[]
if start_codon and "UAA" not in rna_strand:
return None
elif start_codon and "UAG" not in rna_strand:
return None
elif start_codon and "UGA" not in rna_strand:
return None
else:
codons = [rna_strand[i:i+3] for i in range(start_index+3, len(rna_strand), 3)]
for codon in codons:
if codon in stop_codons:
break
acid_list.append(codon2amino[codon])
amino_acid = ''.join(amino_list) + "_"
return amino_acid
</code></pre>