PROG0264 - Codon type

no tags 

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.

RNA codons
A series of codons is part of a messenger RNA (mRNA) molecule. Each codon consists of three nucleotides, usually representing a single amino acid. The nucleotides are abbreviated with the letters A, U, G and C. This is mRNA, which uses U (uracil). DNA uses T (thymine) instead. This mRNA molecule will instruct a ribosomal to synthesize a protein according to this code.

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.

RNA codons
Een codonreeks binnen een boodschapper RNA (mRNA) molecule. Elk codon bestaat uit drie nucleotiden, die doorgaans één enkel aminozuur voorstellen. De nucleotiden worden afgekort met de letters A, U, G, en C. Dit is mRNA, dat U (uracil) gebruikt. DNA maakt in plaats daarvan gebruik van T (thymine). Dit mRNA-molecuul zal een ribosoom instrueren om een eiwit te synthetiseren volgens deze code.

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