Rutas
/
Haskell
Haskell
/
Ejercicios
/
Traducción de proteínas
Traducción de proteínas

Traducción de proteínas

Fácil

Instrucciones

Traduce secuencias de ARN a proteínas.

El ARN se puede dividir en secuencias de tres nucleótidos llamadas codones y luego traducirse a una proteína así:

ARN: "AUGUUUUCU" => se traduce a

Codones: "AUG", "UUU", "UCU" => que se convierten en una proteína con la siguiente secuencia =>

Proteína: "Methionine", "Phenylalanine", "Serine"

Hay 64 codones que, a su vez, corresponden a 20 aminoácidos; sin embargo, no todas las secuencias de codones y los aminoácidos resultantes son importantes en este ejercicio. Si funciona para un codón, el programa debería funcionar para todos ellos. No obstante, puedes ampliar la lista del conjunto de pruebas para incluirlos todos si lo deseas.

También hay tres codones de terminación (conocidos como codones 'STOP'); si el ribosoma se encuentra con alguno de estos codones, la traducción finaliza y la proteína queda terminada.

Todos los codones posteriores se ignoran, así:

ARN: "AUGUUUUCUUAAAUG" =>

Codones: "AUG", "UUU", "UCU", "UAA", "AUG" =>

Proteína: "Methionine", "Phenylalanine", "Serine"

Fíjate en que el codón de parada "UAA" termina la traducción y la metionina final no se traduce en la secuencia de proteína.

A continuación se muestran los codones y los aminoácidos resultantes necesarios para el ejercicio.

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

Aprende más sobre la traducción de proteínas en Wikipedia.


Fuente

Tyler Long
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Haskell Exercism

¿Listo para empezar Traducción de proteínas?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.

¡Análisis en profundidad de Traducción de proteínas!

Explora 11 formas distintas de resolver este ejercicio, como enfoques imperativos, 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 ensamblador.