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 for loop into a list comprehension and a map() expression

  • How to use the takewhile() and partial() functions

  • How to use the Bio.Seq module 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 ...

Get Mastering Python for Bioinformatics now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.