1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| #! python3
# coding: utf-8
""" Python. Traducteur de bases azotées (ARN ou ADN) en protéines. """
import requests
def traducteur_basesAzotees__proteine(sequence="ATTGCCTTACAAGTATACGGGTTACTAAA"):
"""
Traducteur de bases azotées (ARN ou ADN) en protéines
Dans ce programme la variable "sequence" est répliquée, transcrite puis traduite.
"""
replique = ""
transcrite = ""
traduite = ""
dict_repliquer = {
"A": "T",
"T": "A",
"G": "C",
"C": "G",
}
for nucleotide in sequence:
replique += dict_repliquer[nucleotide]
dict_transcrire = {
"A": "U",
"T": "A",
"G": "C",
"C": "G",
}
for nucleotide in replique:
transcrite += dict_transcrire[nucleotide]
""" Trouver le codon initiateur (s'il y en a un) """
numero = 0
numbis = 0
while numero < len(transcrite)-2:
if transcrite[numero:numero+3] == "AUG":
numbis = numero
break
numero += 1
dict_traduire = {
'GCU': 'Ala', 'GCC': 'Ala', 'GCA': 'Ala', 'GCG': 'Ala',
'CGU': 'Arg', 'CGC': 'Arg', 'CGA': 'Arg', 'CGG': 'Arg',
'AGA': 'Arg', 'AGG': 'Arg', 'AAU': 'Asn', 'AAC': 'Asn',
'GAU': 'Asp', 'GAC': 'Asp', 'UGU': 'Cys', 'UGC': 'Cys',
'CAA': 'Gln', 'CAG': 'Gln', 'GAA': 'Glu', 'GAG': 'Glu',
'GGU': 'Gly', 'GGC': 'Gly', 'GGA': 'Gly', 'GGG': 'Gly',
'CAU': 'His', 'CAC': 'His', 'AUU': 'Ile', 'AUC': 'Ile',
'AUA': 'Ile', 'UUA': 'Leu', 'UUG': 'Leu', 'CUU': 'Leu',
'CUC': 'Leu', 'CUA': 'Leu', 'CUG': 'Leu', 'AAA': 'Lys',
'AAG': 'Lys', 'AUG': 'Met', 'UUU': 'Phe', 'UUC': 'Phe',
'CCU': 'Pro', 'CCC': 'Pro', 'CCA': 'Pro', 'CCG': 'Pro',
'UCU': 'Ser', 'UCC': 'Ser', 'UCA': 'Ser', 'UCG': 'Ser',
'AGU': 'Ser', 'AGC': 'Ser', 'ACU': 'Thr', 'ACC': 'Thr',
'ACA': 'Thr', 'ACG': 'Thr', 'UGG': 'Trp', 'UAU': 'Tyr',
'UAC': 'Tyr', 'GUU': 'Val', 'GUC': 'Val', 'GUA': 'Val',
'GUG': 'Val', 'UAG': 'Stop', 'UGA': 'Stop', 'UAA': 'Stop',
}
""" Traduire la séquence en protéine """
if numbis < len(transcrite)-2:
list_item = [transcrite[i:i+3]
for i in range(numbis, len(transcrite), 3)]
for item in list_item:
if len(item) == 3:
traduite += dict_traduire[item]
else:
print("Il n'y a pas de codon initiateur")
return (sequence, replique, transcrite, traduite)
def lecture_fichier_fasta(chemin="https://danielhagnoul.developpez.com/blog/bases_azotees.fasta",
code="utf-8", erreur="ignore"):
page = requests.get(chemin)
dict_sequence = {}
sequence_id = ""
for line in page.iter_lines():
ligne = line.decode(encoding=code, errors=erreur)
if ligne.startswith(">"):
sequence_id = ligne[1:].split()[0]
dict_sequence[sequence_id] = ""
else:
dict_sequence[sequence_id] += ligne.strip()
return dict_sequence
sequences = lecture_fichier_fasta()
for id in sequences:
print("Séquence : ", id)
t = traducteur_basesAzotees__proteine(sequences[id])
print("Bases azotées : ", t[0])
print("Protéines : ", t[3])
print("===================") |