introduction
L'ARN est le cousin moins connu de l'ADN. Son objectif principal est de contrôler la production de protéines dans les cellules grâce à un processus appelé traduction . Dans ce défi, votre tâche consiste à mettre en œuvre une partie de ce processus où l'ARN est divisé en codons .
Ce défi est thématique, mais se concentre sur une autre partie du processus de traduction.
Codons
Nous penserons à ARN comme une longue chaîne sur l'alphabet de paires de bases, AUCG
. En traduction, l'ARN est divisé en morceaux non chevauchants de trois paires de bases, appelés codons. Le processus commence à un codon de départ , AUG
et se termine à un codon d'arrêt , l' un UAA
, UAG
ou UGA
. Chaque codon (à l'exception des codons d'arrêt) correspond à un acide aminé, et la chaîne résultante d'acides aminés forme la protéine.
Contribution
Votre entrée est une chaîne d'ARN non vide.
Production
Votre sortie est la liste des codons dans lesquels l'ARN est divisé, dans n'importe quel format raisonnable. Dans ce modèle simplifié, le processus commence au codon de départ le plus à gaucheAUG
, qui est inclus dans la sortie. Il se termine lorsqu'un codon d'arrêt est rencontré ou lorsque nous manquons d'ARN. Si l'entrée ne contient aucun codon de démarrage, la sortie doit être une liste vide.
Exemples
Considérez la séquence d'entrée
ACAUGGAUGGACUGUAACCCCAUGC
L'analyse commence à l'occurrence la plus à gauche de AUG
, à l'index 2. Elle se poursuit comme suit:
AC AUG GAU GGA CUG UAA CCCCAUGC
* ^ ^ ^ +
Le codon marqué avec *
est le codon de départ, et ceux marqués avec ^
font également partie de la sortie. Le codon d'arrêt est marqué d'un +
. La sortie correcte est
AUG,GAU,GGA,CUG
Pour l'entrée plus courte
ACAUGGAUGGACUGU
le processus continue
AC AUG GAU GGA CUG U
* ^ ^ ^
Cette fois, aucun codon d'arrêt n'est rencontré, donc le processus s'arrête lorsque nous manquons de paires de bases. La sortie est la même que ci-dessus.
Règles et notation
Vous pouvez écrire un programme complet d'une fonction. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
GGUACGGAUU ->
GGCGAAAUCGAUGCC -> AUG
ACAUGGAUGGACUGU -> AUG,GAU,GGA,CUG
AUGACGUGAUGCUUGA -> AUG,ACG
UGGUUAGAAUAAUGAGCUAG -> AUG,AGC
ACAUGGAUGGACUGUAACCCCAUGC -> AUG,GAU,GGA,CUG
CUAAGAUGGCAUGAGUAAUGAAUGGAG -> AUG,GCA
AAUGGUUUAAUAAAUGUGAUAUGAUGAUA -> AUG,GUU
UGUCACCAUGUAAGGCAUGCCCAAAAUCAG -> AUG
UAUAGAUGGUGAUGAUGCCAUGAGAUGCAUGUUAAU -> AUG,GUG,AUG,AUG,CCA
AUGCUUAUGAAUGGCAUGUACUAAUAGACUCACUUAAGCGGUGAUGAA -> AUG,CUU,AUG,AAU,GGC,AUG,UAC
UGAUAGAUGUAUGGAUGGGAUGCUCAUAGCUAUAAAUGUUAAAGUUAGUCUAAUGAUGAGUAGCCGAUGGCCUAUGAUGCUGAC -> AUG,UAU,GGA,UGG,GAU,GCU,CAU,AGC,UAU,AAA,UGU