Sujet examen 2010

publicité
Université Pierre et Marie Curie –LV348
Examen Ecrit
Session de Juin 2010 – Durée 1 Heure 30
L’utilisation des documents est interdite, celle des calculatrices est autorisée.
La clarté de la rédaction et la précision des réponses seront prises en compte dans la note.
Le barème est donné à titre indicatif
Question 1 (25 points)
Expliquer le principe, la construction, l'utilisation et les limites des matrices de substitution
entre acides aminés.
Question 2 (15 points)
Explicitez les différences entre les algorithmes NWS (alignement global) et Smith et
Waterman (alignement local). Ont-ils la même complexité en temps ? L'utilisation d'une
matrice de similarité/substitution dans l'alignement change-t-elle la complexité de ces
algorithmes ? Pourquoi ?
Question 3 (10 points)
Qu'utiliseriez vous comme structure de données en Python pour représenter (dans leur
utilisation habituelle pour l'analyse de séquence) :
− une matrice de substitution
− le code génétique (pour traduction ADN vers protéine)
− 2 séquences (sans gap) et leur alignement
− 3 séquences (sans gap) et leurs alignements
Explicitez vos réponses.
Question 4 (25 points)
Soit un alignement multiple de séquences protéiques représenté en Python par une liste de
chaines de caractères. Ex: ["AHS--LKATL", "L-SW-AA--L", "AHI--LKATL", "LHS--FT--L"].
Remarque: Les séquences biologiques sont bien sûr normalement beaucoup plus longues que
les 4 séquences données en exemple.
Dans un alignement multiple, une sous-partie de l'alignement ou "bloc", est considérée
comme conservée si plus de 70% des séquences présentent le même acide aminé en chacune
des positions du bloc (un bloc peut être une colonne unique). Dans l'exemple précédent, la
leucine (L) en dernière position est conservée dans toutes les séquences, tandis que
l'histidine(H) et la sérine (S) en 2de et 3ème positions sont conservées à 75%. Il y a donc 2
blocs conservés, dont les positions dans l'alignement sont : 2-3 et 10-10 (les gaps sont donc
considérés comme un caractère).
1°) Si on représente un alignement multiple par une liste nommée lseq de n chaines de
caractères, donner l'algorithme (en Python ou en pseudo-code) qui permet d'imprimer les
positions de début et de fin des blocs conservés dans l'alignement.
2°) Quelle(s) modification(s) faut-il apporter à l'algorithme si il ne faut imprimer que les
positions des blocs ayant une taille minimale de k colonnes contiguës ?
3°) Comment modifier l'algorithme pour imprimer les positions des blocs non pas conservés,
mais dont les colonnes présentent au moins m acides aminés différents (y compris gaps,
1<m<=20).
Téléchargement