Détails de snippet
recherche d une sequence mystere a l aide de biopython [Python]
ce snippet reprend le code de recherche de la protéine codée vraisemblable comme cela est décrit sur le site http://arn16s.ovh (étape n°3) à partir de la séquence fasta "U91966". La protéine codée par l'une des six phases est alors affichée (Rubisco)
import Bio
from Bio import SeqIO
from Bio.Seq import Seq
from Bio.Alphabet import generic_dna
#on importe la sequence mystere avec les outils en ligne
def seq_codante_de_phase(phase):
meilleure_seq=compteur=i=j=start=stop=0
longueur = len(phase)-1
for compteur in range (i,longueur):
if (phase[i] != 'M'):
i += 1
else:
start = i
j = start
while (phase[j] != '*' and j < len(phase)-1):
j += 1
if (phase[j] == "*"):
stop = j
seq_codante = phase[i:j]
if (len(seq_codante) > meilleure_seq):
meilleure_seq = len(seq_codante)
meilleur_start = start
meilleur_stop = stop
proteine_de_phase = phase[meilleur_start+1:meilleur_stop]
i += 1
return(proteine_de_phase)
#main
mysterious_sequence = SeqIO.read(open('my_sequence.fasta'),
'fasta',
alphabet=generic_dna).seq
phase_1 = mysterious_sequence[0::]
phase_2 = mysterious_sequence[1::]
phase_3 = mysterious_sequence[2::]
#on renverse la sequence mystere pour creer les 3 dernieres phases
complement_sequence = mysterious_sequence.complement()
reverse_sequence = complement_sequence[::-1]
#sequence à partir du dernier nucleotide en sens contraire
phase_4 = reverse_sequence[0::]
#sequence à partir de l'avant-dernier nucleotide en sens contraire
phase_5 = reverse_sequence[1::]
#sequence à partir de l'antépénultième nucleotide en sens contraire
phase_6 = reverse_sequence[2::]
prot_1 = str(phase_1.translate())
prot_2 = str(phase_2.translate())
prot_3 = str(phase_3.translate())
prot_4 = str(phase_4.translate())
prot_5 = str(phase_5.translate())
prot_6 = str(phase_6.translate())
liste=[seq_codante_de_phase(prot_1),seq_codante_de_phase(prot_2),seq_codante_de_phase(prot_3),seq_codante_de_phase(prot_3),seq_codante_de_phase(prot_4),seq_codante_de_phase(prot_5),seq_codante_de_phase(prot_6)]
sorted(liste, key=len)
#la phase vraisemblable est la plus longue, donc la première de la liste triee par longueur
print (liste[1])
0/5 - [ rating]