benichf1
Bonjour,
implémentation en Python, en respectant l’ordre original …
Table_traduction = [ ["T","T","T","F"] ]
Table_traduction.append(["T","T","C","F"])
Table_traduction.append(["T","T","A","L"])
Table_traduction.append(["T","T","G","L"])
Table_traduction.append(["T","C","T","S"])
Table_traduction.append(["T","C","C","S"])
Table_traduction.append(["T","C","A","S"])
Table_traduction.append(["T","C","G","S"])
Table_traduction.append(["T","A","T","Y"])
Table_traduction.append(["T","A","C","Y"])
Table_traduction.append(["T","A","A","#"])
Table_traduction.append(["T","A","G","#"])
Table_traduction.append(["T","G","T","C"])
Table_traduction.append(["T","G","C","C"])
Table_traduction.append(["T","G","A","#"])
Table_traduction.append(["T","G","G","W"])
Table_traduction.append(["C","T","T","L"])
Table_traduction.append(["C","T","C","L"])
Table_traduction.append(["C","T","A","L"])
Table_traduction.append(["C","T","G","L"])
Table_traduction.append(["C","C","T","P"])
Table_traduction.append(["C","C","C","P"])
Table_traduction.append(["C","C","A","P"])
Table_traduction.append(["C","C","G","P"])
Table_traduction.append(["C","A","T","H"])
Table_traduction.append(["C","A","C","H"])
Table_traduction.append(["C","A","A","Q"])
Table_traduction.append(["C","A","G","Q"])
Table_traduction.append(["C","G","T","R"])
Table_traduction.append(["C","G","C","R"])
Table_traduction.append(["C","G","A","R"])
Table_traduction.append(["C","G","G","R"])
Table_traduction.append(["A","T","T","I"])
Table_traduction.append(["A","T","C","I"])
Table_traduction.append(["A","T","A","I"])
Table_traduction.append(["A","T","G","M"])
Table_traduction.append(["A","C","T","T"])
Table_traduction.append(["A","C","C","T"])
Table_traduction.append(["A","C","A","T"])
Table_traduction.append(["A","C","G","T"])
Table_traduction.append(["A","A","T","N"])
Table_traduction.append(["A","A","C","N"])
Table_traduction.append(["A","A","A","K"])
Table_traduction.append(["A","A","G","K"])
Table_traduction.append(["A","G","T","S"])
Table_traduction.append(["A","G","C","S"])
Table_traduction.append(["A","G","A","R"])
Table_traduction.append(["A","G","G","R"])
Table_traduction.append(["G","T","T","V"])
Table_traduction.append(["G","T","C","V"])
Table_traduction.append(["G","T","A","V"])
Table_traduction.append(["G","T","G","V"])
Table_traduction.append(["G","C","T","A"])
Table_traduction.append(["G","C","C","A"])
Table_traduction.append(["G","C","A","A"])
Table_traduction.append(["G","C","G","A"])
Table_traduction.append(["G","A","T","D"])
Table_traduction.append(["G","A","C","D"])
Table_traduction.append(["G","A","A","E"])
Table_traduction.append(["G","A","G","E"])
Table_traduction.append(["G","G","T","G"])
Table_traduction.append(["G","G","C","G"])
Table_traduction.append(["G","G","A","G"])
Table_traduction.append(["G","G","G","G"])
def indexNucleotide (c):
"""
return index of nucleotide according dico convention
"""
Dico_index = { "T": 1,
"C": 2,
"A": 3,
"G": 4,
}
return Dico_index[c]
def lookupGeneticCode_by_index(Base1,Base2,Base3):
"""
Traduit le code génétique par les index
ex: Base1,Base2,Base3 = "T","T","C"
"""
I = indexNucleotide (Base1)
J = indexNucleotide (Base2)
K = indexNucleotide (Base3)
index_codon = 1 + (I-1)*16 + (J-1)*4 + (K-1)
COLONNE_LETTRE_ACIDE_AMINE = 4
return Table_traduction[ index_codon - 1][COLONNE_LETTRE_ACIDE_AMINE - 1]
def traduction_by_index(DNAsequence):
indexDNA = 0
ProteinSequence = []
while DNAsequence[indexDNA] != "#" and DNAsequence[indexDNA+1] != "#" and DNAsequence[indexDNA+2] != "#":
current_acide_aminee = lookupGeneticCode_by_index(DNAsequence[indexDNA],
DNAsequence[indexDNA+1],
DNAsequence[indexDNA+2])
ProteinSequence.append( current_acide_aminee )
indexDNA += 3
ProteinSequence.append("#")
return ProteinSequence
################################################################################################################
if __name__ == "__main__":
print("Traduction par index: ")
print(traduction_by_index("GAAGCTGTC#"))
print(traduction_by_index("TACTCATTATTTTTGTAG#"))
assert (['E', 'A', 'V', '#'] == traduction_by_index("GAAGCTGTC#"))
assert (['Y', 'S', 'L', 'F', 'L', '#', '#'] == traduction_by_index("TACTCATTATTTTTGTAG#"))