Перекладімо послідовності РНК у білки.
РНК можна розбити на послідовності з трьох нуклеотидів, які називаються кодонами, а потім перекласти в поліпептид ось так:
РНК: "AUGUUUUCU" => перекладається в
Кодони: "AUG", "UUU", "UCU"
=> які утворюють поліпептид із такою послідовністю =>
Білок: "Methionine", "Phenylalanine", "Serine"
Існує 64 кодони, що відповідають 20 амінокислотам; однак у цій вправі важливі не всі послідовності кодонів і відповідні амінокислоти. Якщо програма працює з одним кодоном, вона має працювати з усіма. Утім, ми можемо сміливо розширити список у наборі тестів, щоб охопити їх усі.
Є також три термінальні кодони (їх ще називають кодонами «STOP»); якщо рибосома натрапляє на будь-який із них, трансляція повністю припиняється, і білок завершується.
Усі наступні кодони після нього ігноруються, ось так:
РНК: "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 |
Дізнаймося більше про трансляцію білків у Вікіпедії
Зареєструйтеся на Exercism, щоб вивчати й опановувати Delphi Pascal, а також 76 вправ та справжнє наставництво від людей, і все це безкоштовно.
Розгляньмо 11 різних способів розвʼязати цю вправу: імперативні підходи, функціональні ідеї на кшталт зіставлення зі зразком, рекурсію та функції вищого порядку, а також трохи низькорівневого коду на C++ та Assembly.