[BioPython] back translation

Daniel Tomso dtomso at athenixcorp.com
Wed Sep 20 18:01:16 UTC 2006


Hello--
Here are some code bits, not in BioPython, but they will generate
degenerate nucleotide sequence from any amino acid sequence, given a
back translation table.  The first routine covers the degeneration, the
second just describes how I built the back translation table, but of
course you could use any similar structure.

Hope this helps, especially if there isn't an existing BioPython method.

Dan T.


def degenerate(self, aasequence, prefixes = ['']): # this is recursive
        """ Returns a list containing degenerate nucleic acid sequences
based on an amino acid sequence. """
        if len(aasequence) == 0:
            return prefixes
        else:          
            aa = aasequence[0]
            aasequence = aasequence[1:]
            newprefixes = []
            for prefix in prefixes:
                for codon in self.btable[aa]:
                    newprefixes.append(prefix + codon)
            return self.degenerate(aasequence, prefixes = newprefixes)
           
def build_btable(self):
        """ Builds a back-translation table for degenerate sequence
generation. """
        btable = {}
        for codon in self.ttable.keys():
            aa = self.aa(codon)
            if btable.has_key(aa): # single-letter aa
                btable[aa].append(codon)
            else:
                btable[aa] = [codon]
        return btable


Daniel J. Tomso
Senior Scientist, Bioinformatics
Athenix Corporation
2202 Ellis Road
Suite B
Durham, NC 27703
 
919.281.0920
dtomso at athenixcorp.com
www.athenixcorp.com

-----Original Message-----
From: biopython-bounces at lists.open-bio.org
[mailto:biopython-bounces at lists.open-bio.org] On Behalf Of Edoardo
Saccenti
Sent: Wednesday, September 20, 2006 1:51 PM
To: biopython at lists.open-bio.org
Subject: [BioPython] back translation

Hi Folks,
I'm wondering if there is a way using biopython to get ALL the possible
back translation of a given protein sequence.

Following the example on the cookbook I only get one DNA sequence!

I googled and I found this:
"""""
To get a list of all posible codons, replace
  for key in keys:
      back_table[table[key]] = key
with
  for key in keys:
      back_table[table[key]] = back_table.get(table[key], []) +
                               [key]
""""

I tried to modify but, of course, I get an error from the string package

Does anybod had to deal with this problem before?

Ciao
Edoardo 

_______________________________________________
BioPython mailing list  -  BioPython at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biopython




More information about the Biopython mailing list