Tu tarea es traducir secuencias de ARN a proteínas.
Las hebras de ARN están formadas por secuencias de tres nucleótidos llamadas codones. Cada codón se traduce a un aminoácido. Cuando se unen, esos aminoácidos forman una proteína.
En el mundo real hay 64 codones, que a su vez corresponden a 20 aminoácidos. Sin embargo, para este ejercicio solo usarás unos pocos de los 64 posibles. Se listan a continuación:
| Codón | Aminoácido |
|---|---|
| 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 |
Por ejemplo, la cadena de ARN «AUGUUUUCU» tiene tres codones: «AUG», «UUU» y «UCU». Estos corresponden a Methionine, Phenylalanine y Serine.
Como verás en la tabla anterior, hay tres codones «STOP». Si te encuentras con alguno de estos codones, ignora el resto de la secuencia: la proteína está completa.
Por ejemplo, «AUGUUUUCUUAAAUG» contiene un codón «STOP» («UAA»). Una vez que llegamos a ese punto, dejamos de procesar. Por lo tanto, solo consideramos la parte anterior a él (es decir, «AUGUUUUCU»), y no los codones que vienen después (es decir, «AUG»).
Aprende más sobre la traducción de proteínas en Wikipedia.
Devuelve las proteínas como un arreglo de símbolos, por ejemplo '(methionine phenylalanine serine).
Regístrate en Exercism para aprender y dominar Scheme con 53 ejercicios y mentoría humana real, todo gratis.
Explora 11 formas diferentes de resolver este ejercicio, incluidas aproximaciones imperativas, ideas funcionales como la coincidencia de patrones, la recursión y las funciones de orden superior, y algo de código de bajo nivel en C++ y Assembly.