Track
/
WebAssembly
WebAssembly
/
Esercizi
/
Traduzione proteica
Traduzione proteica

Traduzione proteica

Medio

Istruzioni

Il tuo compito è tradurre sequenze di RNA in proteine.

I filamenti di RNA sono composti da sequenze di tre nucleotidi chiamate codoni. Ogni codone si traduce in un amminoacido. Quando si uniscono, questi amminoacidi formano una proteina.

Nel mondo reale esistono 64 codoni, che a loro volta corrispondono a 20 amminoacidi. Tuttavia, per questo esercizio userai solo alcuni dei 64 possibili. Sono elencati di seguito:

Codone Amminoacido
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

Per esempio, la stringa di RNA «AUGUUUUCU» ha tre codoni: «AUG», «UUU» e «UCU». Questi corrispondono a Methionine, Phenylalanine e Serine.

I codoni «STOP»

Noterai dalla tabella qui sopra che ci sono tre codoni «STOP». Se incontri uno di questi codoni, ignora il resto della sequenza: la proteina è completa.

Per esempio, «AUGUUUUCUUAAAUG» contiene un codone «STOP» («UAA»). Una volta raggiunto quel punto, interrompiamo l'elaborazione. Consideriamo quindi solo la parte che precede (cioè «AUGUUUUCU»), non gli eventuali codoni successivi (cioè «AUG»).

Scopri di più sulla traduzione delle proteine su Wikipedia.

Memoria riservata

I byte da 1024 a 1279 della memoria lineare sono riservati alla stringa di input.

Se lo si desidera, la stringa di input può essere modificata sul posto.

Formato dell'input

I codoni vengono forniti concatenati, senza padding, sotto forma di stringa.

Formato dell'output

Fornisci in output la sequenza di proteine come stringa terminata da null, con un carattere di nuova riga dopo ogni proteina.

Un esempio di output sarebbe "Methionine\nPhenylalanine\nSerine\n"

Se l'input non è valido, fornisci in output una stringa vuota.


Fonte

Tyler Long
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
WebAssembly Exercism

Vuoi iniziare Traduzione proteica?

Iscriviti a Exercism per imparare e padroneggiare WebAssembly con 87 esercizi e il mentoring di persone reali, tutto gratis.

Approfondimento su Traduzione proteica!

Esplora 11 modi diversi di risolvere questo esercizio, tra cui approcci imperativi, idee funzionali come il pattern matching, la ricorsione e le funzioni di ordine superiore, e un po' di programmazione a basso livello in C++ e Assembly.