M1 – Examen de Bioinformatique
Jean-Baptiste Lamy
Mercredi 22 mars 2018, 10-12h (2ème session)
Les documents (cours, TP, notes personnelles) sont autorisés lors de l’examen. Les livres, les
ordinateurs, les tablettes et les téléphones portables sont interdits !
Vous devez écrire les réponses aux questions et les programmes Python sur une feuille d’examen.
Exercice 1 :
Nous allons travailler sur les deux séquences protéiques suivantes : LFMB et AIFM, correspondant à des sites
actifs d’enzymes. La première des deux séquences correspond à la séquence normale qui sera prise comme référence,
la seconde étant une séquence anormale conduisant à une maladie génétique.
1. Construire la matrice de programmation dynamique, en utilisant un score de +1 pour les identités, -1 pour
les substitutions, -2 pour les insertions et les délétions. (4 points) Réponse :
- L F M B
-
0 →-2 →-4 →-6 →-8
↓ & & & &
A
-2 -1 →-3 →-5 →-7
↓ &↓ & & &
I
-4 -3 -2 →-4 →-6
↓ &↓ & & &
F
-6 -5 -2 -3 →-5
↓ &↓ ↓ &
M
-8 -7 -4 -1 →-3
2. Reconstruire l’alignement le plus probable entre les deux séquences. (2 points) Réponse :
-LFMB
||
AIFM-
Exercice 2 :
Lors d’une étude chez une souche particulière d’E. coli, nous avons séquencé la protéine “aldolase”. Nous
souhaitons à présent comparer la séquence obtenue expérimentalement à celle présente dans les bases de données
pour E. coli. Une séquence de gène est disponible pour l’aldolase dans la base de données “nucleotide”. L’objectif
de l’exercice est de traduire cette séquence en protéine et de la comparer au résultat du séquençage.
from [Link] import *
from [Link] import *
from Bio import Entrez
from [Link] import *
import [Link] as motifs
from Bio.pairwise2 import *
1. La séquence du gène a l’identifiant “Z85924” dans la base de données en ligne “nucleotide”. Télécharger
cette séquence. (1 point) Réponse :
[Link] = ”email@[Link]”
adn = read([Link](db=”nucleotide”, id=”Z85924”, rettype=”gb”, retmode=”text”), ”genbank”)
2. Afficher la séquence, et le nombre de bases de cette séquence. (1 point) Réponse :
print([Link])
print(len(adn))
3. Rechercher la position du premier codon start dans la séquence du gène (on l’appellera “start”). (1 point)
Réponse :
arn = [Link]()
motif start = [Link]([Seq(”AUG”, [Link] rna)])
start =motif [Link](arn)[0][0]
4. Rechercher la liste des positions de tous les codons stop dans la séquence du gène (on l’appellera
“tous les stops”). (1 point) Réponse :
motif stop = [Link]([Seq(”UAA”, [Link] rna), Seq(”UAG”, IU-
[Link] rna), Seq(”UGA”, [Link] rna)])
tous les stops = [ ]
for position, sequence in motif [Link](arn) :
tous les [Link](position)
5. Rechercher la position du codon stop qui correspond au premier start (on l’appellera “stop”). (2 points)
Réponse :
for stop in tous les stops :
if stop > start :
if stop % 3 == start % 3 :
break
6. Extraire la séquence du gène entre le codon start et le codon stop (on l’appellera “orf”). (1 point) Réponse
:
orf = arn[start : stop + 2]
7. Traduire la séquence extraite en protéine. (1 point) Réponse :
proteine1 = [Link]()
8. La séquence de la protéine séquencée est disponible au format FASTA dans le fichier “ma [Link]”.
Charger cette séquence. (1 point) Réponse :
proteine2 = read(”ma [Link]”, format = ”fasta”)
9. Aligner les 2 séquences de protéines obtenues aux deux questions précédentes. On utilisera la matrice
BLOSUM80 pour un alignement global, ainsi que les coûts suivants : ouverture d’un gap -3, extension d’un
gap -2. On affichera le score de l’alignement et l’alignement lui-même. (2 points) Réponse :
al = [Link](prot1, prot2, blosum80, -3, -2, one alignment only = True)[0]
print(al[2])
alm = MultipleSeqAlignment(al[0 :2])
print([Link](”clustal”))
10. L’alignement obtenu figure ci-dessous. Interprétez ce résultat. (1 point)
score: 672
MJOWALDSDNMKODMZGKEFAALBLMOGYY-JNBLEMPCTKHMCGEDHCUJOPHYDLSRCMZUQ
|||| ||||| ||||||| ||||||||||| ||||| |||||||||||||||||| |||||
MJOWILDSDNPKODMZGKLFAALBLMOGYYIJNBLE----KHMCGEDHCUJOPHYDLSICMZUQ
Réponse :
Bonne alignement
11. Aurait-on pu précéder de la même manière chez l’être humain ? Pourquoi ? (2 points) Réponse :
Non : épissage.