i have a protein sequence:
sequence_protein = 'IEEATHMTPCYELHGLRWVQIQDYAINVMQCL'
and a tRNA codon table for every protein:
codon_table = {
'A': ('GCT', 'GCC', 'GCA', 'GCG'),
'C': ('TGT', 'TGC'),
'D': ('GAT', 'GAC'),
'E': ('GAA', 'GAG'),
'F': ('TTT', 'TTC'),
'G': ('GGT', 'GGC', 'GGA', 'GGG'),
'H': ('CAT', 'CAC'),
'I': ('ATT', 'ATC', 'ATA'),
'K': ('AAA', 'AAG'),
'L': ('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG'),
'M': ('ATG',),
'N': ('AAT', 'AAC'),
'P': ('CCT', 'CCC', 'CCA', 'CCG'),
'Q': ('CAA', 'CAG'),
'R': ('CGT', 'CGC', 'CGA', 'CGG', 'AGA', 'AGG'),
'S': ('TCT', 'TCC', 'TCA', 'TCG', 'AGT', 'AGC'),
'T': ('ACT', 'ACC', 'ACA', 'ACG'),
'V': ('GTT', 'GTC', 'GTA', 'GTG'),
'W': ('TGG',),
'Y': ('TAT', 'TAC'),}
i then wrote a function that would give a tuple with the possible codons for every protein:
tRNA = []
for i in sequence_protein:
for residue in i:
tRNA.append(codon_table[residue])
which gave this output:
[('ATT', 'ATC', 'ATA'),
('GAA', 'GAG'),
('GAA', 'GAG'),
('GCT', 'GCC', 'GCA', 'GCG'),
('ACT', 'ACC', 'ACA', 'ACG'),
('CAT', 'CAC'),
('ATG',),
('ACT', 'ACC', 'ACA', 'ACG'),
('CCT', 'CCC', 'CCA', 'CCG'),
('TGT', 'TGC'),
('TAT', 'TAC'),
('GAA', 'GAG'),
('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG'),
('CAT', 'CAC'),
('GGT', 'GGC', 'GGA', 'GGG'),
('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG'),
('CGT', 'CGC', 'CGA', 'CGG', 'AGA', 'AGG'),
('TGG',),
('GTT', 'GTC', 'GTA', 'GTG'),
('CAA', 'CAG'),
('ATT', 'ATC', 'ATA'),
('CAA', 'CAG'),
('GAT', 'GAC'),
('TAT', 'TAC'),
('GCT', 'GCC', 'GCA', 'GCG'),
('ATT', 'ATC', 'ATA'),
('AAT', 'AAC'),
('GTT', 'GTC', 'GTA', 'GTG'),
('ATG',),
('CAA', 'CAG'),
('TGT', 'TGC'),
('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG')]
is there a way to compute all possible codon combinations for the sequence (basically calculate the products for all the seperate elements in the tuple)? and also count the amount of products there would be without generating the sequences first?
i tried using the product function but that crashed my notebook :s
combs = []
for a in product(*tRNA):
combs.append(a)
print(a)