把 RNA 序列翻译成蛋白质。
RNA 可以拆分成由三个核苷酸组成的序列,也就是密码子,然后再翻译成多肽,如下所示:
RNA:"AUGUUUUCU" => 翻译为
密码子:"AUG", "UUU", "UCU"
=> 进而变成具有以下序列的多肽 =>
蛋白质:"Methionine", "Phenylalanine", "Serine"
一共有 64 个密码子,它们又对应 20 种氨基酸;不过,这个练习并不需要用到所有密码子序列和对应的氨基酸。只要对一个密码子有效,程序就应该对所有密码子都有效。 不过,你也可以随意扩充测试套件里的列表,把它们全都包含进去。
另外还有三个终止密码子(也叫“STOP”密码子);一旦(核糖体)遇到其中任何一个,翻译就会结束,蛋白质也就终止了。
之后的所有密码子都会被忽略,就像这样:
RNA:"AUGUUUUCUUAAAUG" =>
密码子:"AUG", "UUU", "UCU", "UAA", "AUG" =>
蛋白质:"Methionine", "Phenylalanine", "Serine"
注意,终止密码子"UAA"会终止翻译,最后的 methionine 不会进入蛋白质序列。
下面是这个练习需要用到的密码子以及它们对应的氨基酸。
| 密码子 | 蛋白质 |
|---|---|
| AUG | Methionine |
| UUU, UUC | Phenylalanine |
| UUA, UUG | Leucine |
| UCU, UCC, UCA, UCG | Serine |
| UAU, UAC | Tyrosine |
| UGU, UGC | Cysteine |
| UGG | Tryptophan |
| UAA, UAG, UGA | STOP |
想了解更多,请阅读维基百科上的蛋白质翻译
探索 11 种不同的解法,包括命令式方法,模式匹配、递归和高阶函数等函数式思路,以及用 C++ 和汇编编写的一些底层代码。