Archive

Codes Python de traduction

padrian

Bonjour, un premier code avec tableau tel que décrit dans la séquence 2.5 :

recherche un triplet en table et retourne le code proteine correspondant

def lookupGeneticCode(Base1,Base2,Base3):
Dico =[[“T”,“T”,“T”,“F”]]
Dico.append([“T”,“T”,“C”,“F”])
Dico.append([“T”,“T”,“A”,“L”])
Dico.append([“T”,“T”,“G”,“L”])
Dico.append([“T”,“C”,“T”,“S”])
Dico.append([“T”,“C”,“C”,“S”])
Dico.append([“T”,“C”,“A”,“S”])
Dico.append([“T”,“C”,“G”,“S”])
Dico.append([“T”,“A”,“T”,“Y”])
Dico.append([“T”,“A”,“C”,“Y”])
Dico.append([“T”,“A”,“A”,"#"])
Dico.append([“T”,“A”,“G”,"#"])
Dico.append([“T”,“G”,“T”,“C”])
Dico.append([“T”,“G”,“C”,“C”])
Dico.append([“T”,“G”,“A”,"#"])
Dico.append([“T”,“G”,“G”,“W”])
Dico.append([“C”,“T”,“T”,“L”])
Dico.append([“C”,“T”,“C”,“L”])
Dico.append([“C”,“T”,“A”,“L”])
Dico.append([“C”,“T”,“G”,“L”])
Dico.append([“C”,“C”,“T”,“P”])
Dico.append([“C”,“C”,“C”,“P”])
Dico.append([“C”,“C”,“A”,“P”])
Dico.append([“C”,“C”,“G”,“P”])
Dico.append([“C”,“A”,“T”,“H”])
Dico.append([“C”,“A”,“C”,“H”])
Dico.append([“C”,“A”,“A”,“Q”])
Dico.append([“C”,“A”,“G”,“Q”])
Dico.append([“C”,“G”,“T”,“R”])
Dico.append([“C”,“G”,“C”,“R”])
Dico.append([“C”,“G”,“A”,“R”])
Dico.append([“C”,“G”,“G”,“R”])
Dico.append([“A”,“T”,“T”,“I”])
Dico.append([“A”,“T”,“C”,“I”])
Dico.append([“A”,“T”,“A”,“I”])
Dico.append([“A”,“T”,“G”,“M”])
Dico.append([“A”,“C”,“T”,“T”])
Dico.append([“A”,“C”,“C”,“T”])
Dico.append([“A”,“C”,“A”,“T”])
Dico.append([“A”,“C”,“G”,“T”])
Dico.append([“A”,“A”,“T”,“N”])
Dico.append([“A”,“A”,“C”,“N”])
Dico.append([“A”,“A”,“A”,“K”])
Dico.append([“A”,“A”,“G”,“K”])
Dico.append([“A”,“G”,“T”,“S”])
Dico.append([“A”,“G”,“C”,“S”])
Dico.append([“A”,“G”,“A”,“R”])
Dico.append([“A”,“G”,“G”,“R”])
Dico.append([“G”,“T”,“T”,“V”])
Dico.append([“G”,“T”,“C”,“V”])
Dico.append([“G”,“T”,“A”,“V”])
Dico.append([“G”,“T”,“G”,“V”])
Dico.append([“G”,“C”,“T”,“A”])
Dico.append([“G”,“C”,“C”,“A”])
Dico.append([“G”,“C”,“A”,“A”])
Dico.append([“G”,“C”,“G”,“A”])
Dico.append([“G”,“A”,“T”,“D”])
Dico.append([“G”,“A”,“C”,“D”])
Dico.append([“G”,“A”,“A”,“E”])
Dico.append([“G”,“A”,“G”,“E”])
Dico.append([“G”,“G”,“T”,“G”])
Dico.append([“G”,“G”,“C”,“G”])
Dico.append([“G”,“G”,“A”,“G”])
Dico.append([“G”,“G”,“G”,“G”])

#boucle recherche 1iere base  
for I in range(0,64) :
    if Dico[I][0] == Base1 :
        # si trouve base 1 boucle recherche 2ieme base depuis position 
        for J in range(I,64) :
            if Dico[J][1] == Base2 :
                # si trouve base 2 boucle recherche 3ieme base depuis position
                for K in range(J,64) :
                    if Dico[K][2] == Base3 :
                        # on retourne la lettre acide amine correspondante
                        return Dico[K][3]
# valeur retournee si codon inconnu
return "?"

traduction d’un DNA en proteine

def traduction(DNAsequence):
indexDNA = 0
ProteinSequence = []
while DNAsequence[indexDNA] != “#” and DNAsequence[indexDNA+1] != “#” and DNAsequence[indexDNA+2] != “#”:
ProteinSequence.append(lookupGeneticCode(DNAsequence[indexDNA], DNAsequence[indexDNA+1], DNAsequence[indexDNA+2]))
indexDNA +=3
ProteinSequence.append("#")
return ProteinSequence

print(traduction(“GAAGCTGTC#”))

et une autre implémentation utilisant un dictionnaire :

recherche un triplet en table et retourne le code proteine correspondant

def lookupGeneticCode(Base1,Base2,Base3):
Dico = {}
Dico[“TTT”]= Dico[“TTC”]= “F”
Dico[“TTA”]= Dico[“TTG”]= Dico[“CTT”]= Dico[“CTC”]= Dico[“CTA”]= Dico[“CTG”]= “L”
Dico[“ATT”]= Dico[“ATC”]= Dico[“ATA”]=“I”
Dico[“ATG”]=“M”
Dico[“GTT”]= Dico[“GTC”]= Dico[“GTA”]= Dico[“GTG”]=“V”
Dico[“TCT”]= Dico[“TCC”]= Dico[“TCA”]= Dico[“TCG”]= Dico[“AGT”]= Dico[“AGC”]=“S”
Dico[“CCT”]= Dico[“CCC”]= Dico[“CCA”]= Dico[“CCG”]=“P”
Dico[“ACT”]= Dico[“ACC”]= Dico[“ACA”]= Dico[“ACG”]=“T”
Dico[“GCT”]= Dico[“GCC”]= Dico[“GCA”]= Dico[“GCG”]=“A”
Dico[“TAT”]= Dico[“TAC”]=“Y”
Dico[“TAA”]= Dico[“TAG”]=""
Dico[“CAT”]= Dico[“CAC”]= “H”
Dico[“CAA”]= Dico[“CAG”]=“Q”
Dico[“AAT”]= Dico[“AAC”]=“N”
Dico[“AAA”]= Dico[“AAG”]=“K”
Dico[“GAU”]= Dico[“GAC”]=“D”
Dico[“GAA”]= Dico[“GAG”]=“E”
Dico[“TGT”]= Dico[“TGC”]=“C”
Dico[“TGA”]="
"
Dico[“TGG”]=“W”
Dico[“CGT”]= Dico[“CGC”]= Dico[“CGA”]= Dico[“CGG”]=Dico[“AGA”]= Dico[“AGG”]=“R”
Dico[“AGT”]= Dico[“AGC”]=“S”
Dico[“GGT”]= Dico[“GGC”]= Dico[“GGA”]= Dico[“GGG”]=“G”
print(Dico)
codon = Base1+Base2+Base3

return Dico.get(codon,"*")

def traduction(DNAsequence):
indexDNA = 0
ProteinSequence = []
while DNAsequence[indexDNA] != “#” and DNAsequence[indexDNA+1] != “#” and DNAsequence[indexDNA+2] != “#”:
ProteinSequence.append(lookupGeneticCode(DNAsequence[indexDNA], DNAsequence[indexDNA+1], DNAsequence[indexDNA+2]))
indexDNA +=3
ProteinSequence.append("#")
return ProteinSequence

print(traduction(“GAAGCTGTC#”))