Skip to content

Instantly share code, notes, and snippets.

@juanfal
Created January 10, 2020 09:07
Show Gist options
  • Save juanfal/09d7fb53bd367742127e17284b9c47bf to your computer and use it in GitHub Desktop.
Save juanfal/09d7fb53bd367742127e17284b9c47bf to your computer and use it in GitHub Desktop.
Codon table in Python dict
codontab = {
'TCA': 'S', # Serina
'TCC': 'S', # Serina
'TCG': 'S', # Serina
'TCT': 'S', # Serina
'TTC': 'F', # Fenilalanina
'TTT': 'F', # Fenilalanina
'TTA': 'L', # Leucina
'TTG': 'L', # Leucina
'TAC': 'Y', # Tirosina
'TAT': 'Y', # Tirosina
'TAA': '*', # Stop
'TAG': '*', # Stop
'TGC': 'C', # Cisteina
'TGT': 'C', # Cisteina
'TGA': '*', # Stop
'TGG': 'W', # Triptofano
'CTA': 'L', # Leucina
'CTC': 'L', # Leucina
'CTG': 'L', # Leucina
'CTT': 'L', # Leucina
'CCA': 'P', # Prolina
'CCC': 'P', # Prolina
'CCG': 'P', # Prolina
'CCT': 'P', # Prolina
'CAC': 'H', # Histidina
'CAT': 'H', # Histidina
'CAA': 'Q', # Glutamina
'CAG': 'Q', # Glutamina
'CGA': 'R', # Arginina
'CGC': 'R', # Arginina
'CGG': 'R', # Arginina
'CGT': 'R', # Arginina
'ATA': 'I', # Isoleucina
'ATC': 'I', # Isoleucina
'ATT': 'I', # Isoleucina
'ATG': 'M', # Methionina
'ACA': 'T', # Treonina
'ACC': 'T', # Treonina
'ACG': 'T', # Treonina
'ACT': 'T', # Treonina
'AAC': 'N', # Asparagina
'AAT': 'N', # Asparagina
'AAA': 'K', # Lisina
'AAG': 'K', # Lisina
'AGC': 'S', # Serina
'AGT': 'S', # Serina
'AGA': 'R', # Arginina
'AGG': 'R', # Arginina
'GTA': 'V', # Valina
'GTC': 'V', # Valina
'GTG': 'V', # Valina
'GTT': 'V', # Valina
'GCA': 'A', # Alanina
'GCC': 'A', # Alanina
'GCG': 'A', # Alanina
'GCT': 'A', # Alanina
'GAC': 'D', # Acido Aspartico
'GAT': 'D', # Acido Aspartico
'GAA': 'E', # Acido Glutamico
'GAG': 'E', # Acido Glutamico
'GGA': 'G', # Glicina
'GGC': 'G', # Glicina
'GGG': 'G', # Glicina
'GGT': 'G' # Glicina
}
@juanfal
Copy link
Author

juanfal commented Feb 18, 2022

Interesting, not only the defaultdict constructor, but the form to link a list of codons to every aa. It also could be done without resorting to that python library. In fact it returns some noise:
defaultdict(<class 'list'>, {'S': ['TCA',..

with:

aminotab = {}
for codon, aa in codontab.items():
    if aa in aminotab:
        aminotab[aa].append(codon)
    else:
        aminotab[aa] = [codon]

print(aminotab)

wich I suspect is faster, more independent (and easier to remember) and doesn't yield artefacts.

Thanks!

@jlaw9
Copy link

jlaw9 commented Apr 25, 2025

Thanks, I reformatted and translated:

codontab = {
    'TCA': 'S', 'TCC': 'S', 'TCG': 'S', 'TCT': 'S',    # Serine
    'TTC': 'F', 'TTT': 'F',    # Phenylalanine
    'TTA': 'L', 'TTG': 'L',    # Leucine
    'TAC': 'Y', 'TAT': 'Y',    # Tirosine
    'TAA': '*', 'TAG': '*',    # Stop
    'TGC': 'C', 'TGT': 'C',    # Cisteine
    'TGA': '*',    # Stop
    'TGG': 'W',    # Tryptofan
    'CTA': 'L', 'CTC': 'L', 'CTG': 'L', 'CTT': 'L',    # Leucine
    'CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P',    # Proline
    'CAC': 'H', 'CAT': 'H',    # Histidine
    'CAA': 'Q', 'CAG': 'Q',    # Glutamine
    'CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R',    # Arginine
    'ATA': 'I', 'ATC': 'I', 'ATT': 'I',    # Isoleucine
    'ATG': 'M',    # Methionine
    'ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACT': 'T',    # Threonine
    'AAC': 'N', 'AAT': 'N',    # Asparagine
    'AAA': 'K', 'AAG': 'K',    # Lysine
    'AGC': 'S', 'AGT': 'S',    # Serine
    'AGA': 'R', 'AGG': 'R',    # Arginine
    'GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V',    # Valine
    'GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A',    # Alanine
    'GAC': 'D', 'GAT': 'D',    # Aspartic Acid
    'GAA': 'E', 'GAG': 'E',    # Glutamic Acid
    'GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGT': 'G'     # Glycine
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment