[Biopython] Degenerated Codons
Peter Cock
p.j.a.cock at googlemail.com
Thu Feb 23 06:29:04 EST 2012
On Thu, Feb 23, 2012 at 11:00 AM, Matthias Bernt <MatatTHC at gmx.de> wrote:
> Hi,
>
>> You can probably do that with the codon dictionaries
>> provided in Bio.Data.CodonTable (used for translations).
>> If you could give some specific examples of input and
>> desired output I'm sure we can give you more hints.
>
>
> You mean the forward_table?
>
> The most important function for me is:
> - Input: Codon (sequence of length 3), code table
> - Output: X, number of codons coding for the same
> amino acid as the given codon
Where table could be ambiguous or unambiguous,
DNA or RNA? Something like this works nicely for
unambiguous tables:
from Bio.Data.CodonTable import unambiguous_dna_by_id
for table in [unambiguous_dna_by_id[1], unambiguous_dna_by_id[2]]:
print table.id
for codon in ["AAA", "ATT"]:
amino = table.forward_table[codon]
alt_codons = [k for (k,v) in table.forward_table.iteritems()
if v==amino]
print "%s -> %s, %i codons for this amino acid" % (codon,
amino, len(alt_codons))
Giving:
1
AAA -> K, 2 codons for this amino acid
ATT -> I, 3 codons for this amino acid
2
AAA -> K, 2 codons for this amino acid
ATT -> I, 2 codons for this amino acid
> But maybe its possible to modify the backward_table such
> that it stores all codons (as list) for a amino acid. For the other
> functions building on it (back translation...) it would be possible
> to take the first element of the list.
We can't change that for backwards compatibility, but we
could add a alt_backward_table or something instead?
Peter
More information about the Biopython
mailing list