<p>假设每个密码子长度为3个字符,您可以使用以下方法从<code>rna_strand</code>检索每个密码子:</p>
<pre class="lang-py prettyprint-override"><code>codons = [rna_strand[i:i+3] for i in range(0, len(rna_strand), 3)]
</code></pre>
<p>然后,您可以使用映射将每个密码子映射到其氨基:</p>
<pre class="lang-py prettyprint-override"><code>amino_list = [codon2amino[codon] for codon in codons]
</code></pre>
<p>最后,你可以将它们结合形成氨基酸:</p>
<pre class="lang-py prettyprint-override"><code>amino_acid = ''.join(amino_list)
</code></pre>
<p>在一行中,它看起来像:</p>
<pre class="lang-py prettyprint-override"><code>amino_acid = ''.join([codon2amino[rna_strand[i:i+3]] for i in range(0, len(rna_strand), 3)])
</code></pre>
<p>但是正如@Yatin所提到的,关于输入/输出以及映射<code>codon2amino</code>的更多细节</p>
<p><strong>编辑:</strong>
您可以首先使用以下命令搜索起始密码子:</p>
<pre class="lang-py prettyprint-override"><code>start_codon = "AUG"
start_idx = rna_strand.find(start_codon)
</code></pre>
<p>然后,将其余部分分成密码子:</p>
<pre class="lang-py prettyprint-override"><code>codons = [rna_strand[i:i+3] for i in range(start_idx, len(rna_strand), 3)]
</code></pre>
<p>然后你可以迭代它们,直到找到一个末端密码子:</p>
<pre class="lang-py prettyprint-override"><code>stop_codons = {"UAA", "UAG", "UGA"}
amino_list = []
for codon in codons:
# We've hit a stop codon, so we halt
if codon in stop_codons:
break
if codon not in codon2amino:
print("Invalid codon found", codon)
break
amino_list.append(codon2amino[codon])
amino_acid = ''.join(amino_list) + "_"
</code></pre>