將 RNA 序列轉譯成蛋白質。
RNA 可以拆成每三個核苷酸一組的序列,這些序列稱為密碼子,然後再轉譯成多肽,就像這樣:
RNA:"AUGUUUUCU" => 轉譯為
密碼子:"AUG", "UUU", "UCU"
=> 接著轉譯成具有以下序列的多肽 =>
蛋白質:"Methionine", "Phenylalanine", "Serine"
共有 64 個密碼子,對應到 20 種胺基酸;不過在這個練習裡,並不需要知道所有的密碼子序列和對應的胺基酸。只要程式能正確處理一個密碼子,就應該能處理全部。不過,也歡迎你自行擴充測試套件裡的清單,把所有密碼子都加進去。
另外還有三個終止密碼子(也稱為「STOP」密碼子);只要遇到其中任何一個(也就是被核糖體讀到時),轉譯就會全部結束,蛋白質也在此終止。
之後所有的密碼子都會被忽略,就像這樣:
RNA:"AUGUUUUCUUAAAUG" =>
密碼子:"AUG", "UUU", "UCU", "UAA", "AUG" =>
蛋白質:"Methionine", "Phenylalanine", "Serine"
注意,終止密碼子"UAA"會結束轉譯,所以最後那個甲硫胺酸不會被轉譯到蛋白質序列中。
以下是這個練習需要用到的密碼子與對應的胺基酸。
| 密碼子 | 蛋白質 |
|---|---|
| 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++ 和 Assembly 撰寫的低階程式碼。