PROG0264 - Codon type
The genetic code is a set of rules indicating information encoded within genetic material (DNA or mRNA sequences) is translated into proteins (amino acid sequences) by living cells. The code defines how sequences of these nucleotide triplets (called codons) specify which amino acid will be added next during protein synthesis. For the translation of RNA into proteins we can discriminate three types of codons: translation starts with a chain initiation codon or start codon (AUG) and continues until one of the stop codons (UAG (amber), UGA (opal) or UAA (ochre)) is reached. In between start and stop codons are an arbitrary number of ordinary codons, as illustrated in the figure below.
Input
A single line containing some text that represents an RNA codon (a string that only contains the letters A, C, G and U).
Output
A single line containing the description of the type of codon read from the input. The four possible types of codons and their descriptions are given in the table below.
type | description |
---|---|
start codon (AUG) | start |
stop codon (UAG, UGA, UAA) | stop |
ordinary codon (any other triplet of nucleotides) | normal |
invalid codon (string of length not equal to three) | non-valid |
The output should be formatted using the following template: "The codon GCC is a normal codon.". The fragments of the template displayed in an italic font are variable, and must be filled in using the given input and the description of the codon type as determined by your program. Try to keep the number of conditions and the expression of the conditions that need to be tested as small as possible. There is no need to test whether all characters in the input string are valid bases in the RNA alphabet (A, C, G and U) in order to decide whether the codon is valid (normal, start or stop) or not.
Example
Input:
GCC
Output:
The codon GCC is a normal codon.
De genetische code is een verzameling regels die aangeven hoe levende cellen de informatie die zit opgeslagen in hun genetisch materiaal (DNA of RNA sequenties) vertalen naar eiwitten (aminozuursequenties). Meer in het bijzonder definieert deze code een vertaling van trinucleotidesequenties (codons) naar aminozuren, waarbij elk triplet van nucleotiden in een nucleotidesequentie correspondeert met één enkel aminozuur. Bij de vertaling van RNA naar eiwitten kunnen we drie types van codons onderscheiden: de vertaling begint bij een startcodon (AUG) en loopt verder tot één van de stopcodons (UAG (amber), UGA (opaal) en UAA (oker)) bereikt wordt. Daartussen bevinden zich een willekeurig aantal gewone codons, zoals geïllustreerd in onderstaande figuur.
Invoer
Eén enkele regel tekst die een RNA codon moet voorstellen (dus een string die enkel bestaat uit de karakters A, C, G en U).
Uitvoer
Eén enkele regel met de omschrijving van het type van het codon uit de invoer. De vier mogelijke types met bijhorende omschrijvingen staan weergegeven in onderstaande tabel.
type | omschrijving |
---|---|
startcodon (AUG) | start |
stopcodon (UAG, UGA, UAA) | stop |
gewoon codon (elk ander triplet van nucleotiden) | gewoon |
ongeldig codon (string met lengte verschillend van drie) | ongeldig |
Als formaat voor de uitvoer gebruik je de volgende template: "Het codon GCC is een gewoon codon.". De cursieve fragmenten van deze template zijn variabel, en moeten ingevuld worden op basis van de gegeven invoer en de berekende omschrijving van het codontype. Probeer het aantal voorwaarden en de uitdrukking van de voorwaarden die moeten getest worden om de uitvoer te bepalen zo beknopt mogelijk te houden. Het is niet nodig om na te gaan of de gegeven invoer enkel basen uit het RNA alfabet (A, C, G en U) bevat om een geldig codon (gewoon, start of stop) voor te stellen.
Voorbeeld
Invoer:
GCC
Uitvoer:
Het codon GCC is een gewoon codon.
Added by: | Peter Dawyndt |
Date: | 2012-08-27 |
Time limit: | 10s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | PY_NBC |
Resource: | None |