Bonjour
Proposition de code Python pour rechercher codons stop et start dans une sequence de bases nucleotides; avec quelques exemples
algorithme prediction de gene stop et start
def next_codon_stop(sequence, index):
“”"
recherche du 1er codon stop dans une sequence de nucleotides, apres un index donné
“”"
sequence = sequence.upper() #mise en majuscule d’eventuelles minuscules
seq = sequence.split() #gestion/suppression d’eventuels espaces
sequence = ‘’.join(seq)
index -= 1 # en Python, index sur une sequence demarre à 0
if index + 3 <= len(sequence):
while index + 3 <= len(sequence):
# triplets successifs
print(sequence[index:index + 3] + ' ', end='')
# test sur triplet / codons stop 'TAG' ou 'TGA' ou 'TAA'
if (sequence[index:index + 3] == 'TAG') or (sequence[index:index + 3] == 'TGA') or (sequence[index:index + 3] == 'TAA'):
return index + 1 # remettre index non Python
index += 3
return 0 # si aucune occurence stop trouvée
else:
return 0 # si index > dernier triplet de la sequence
def next_codon_start(sequence, index):
“”"
recherche du 1er codon start dans une sequence de nucleotides, apres un index donné
“”"
sequence = sequence.upper()
seq = sequence.split()
sequence = ‘’.join(seq)
index -= 1 # en Python, index sur une sequence demarre à 0
if index + 3 <= len(sequence):
while index + 3 <= len(sequence):
# triplets successifs
print(sequence[index:index + 3] + ' ', end='')
# test sur triplet / codon start 'ATG'
if (sequence[index:index + 3] == 'ATG'):
return index + 1 # remettre index non Python
index += 3
return 0 # si aucune occurence start trouvée
else:
return 0 # si index > dernier triplet de la sequence
def imprime(seq, ind):
print(f’La sequence = {seq}’)
print(f’de longueur {len(seq)}’)
print(f’\n\tindex codon stop = {next_codon_stop(seq, ind)} à partir index {ind}’)
print(f’\n\tindex codon start = {next_codon_start(seq, ind)} à partir index {ind}’)
seq1 = ‘TTAAGCTTAATGGGCACGAGCCGGTAGGCGGATTAA’
index = 1 # index possibles de valeur = (1 + n*3)
imprime(seq1, index)
print()
seq2 = ‘TTCATTATG’
index = 7
imprime(seq2, index)
print()
index = 1
seq3 = ‘GAT ATC AGT AGC ttC TAc ATT taG TTA ccA’
imprime(seq3, index)
print()
index = 1
seq4 = ‘GCC TAA AGT TAA TAC CAA ATT tAA TTA cAT CAA’
imprime(seq4, index)