Chapter 7. Translating mRNA into Protein: More Functional Programming
According to the Central Dogma of molecular biology, DNA makes mRNA, and mRNA makes protein.
In Chapter 2, I showed how to transcribe DNA to mRNA, so now it’s time to translate mRNA into protein sequences.
As described on the Rosalind PROT page, I now need to write a program that accepts a string of mRNA and produces an amino acid sequence.
I will show several solutions using lists, for loops, list comprehensions, dictionaries, and higher-order functions, but I confess I’ll end with a Biopython function.
Still, it will be tons of fun.
Mostly I’m going to focus on how to write, test, and compose small functions to create solutions. You’ll learn:
-
How to extract codons/k-mers from a sequence using string slices
-
How to use a dictionary as a lookup table
-
How to translate a
forloop into a list comprehension and amap()expression -
How to use the
takewhile()andpartial()functions -
How to use the
Bio.Seqmodule to translate mRNA into proteins
Getting Started
You will need to work in the 07_prot directory for this exercise.
I recommend you begin by copying the first solution to prot.py and asking for the usage:
$ cp solution1_for.py prot.py $ ./prot.py -h usage: prot.py [-h] RNA Translate RNA to proteins positional arguments: RNA RNA sequence optional arguments: -h, --help show this help message and exit
The program requires an RNA sequence as a single positional argument. From here on, I’ll use the term ...