Pour programmer ces exercices, on pourra utiliser :
On appelle paire maximale à droite dans une chaîne de caractères S une paire de sous-chaînes u et v telles que le caractère immédiatement à droite de u est différent du caractère immédiatement à droite de v. Par exemple dans bananas on a quatre paires maximales à droite : ana (1,3), na (2,4), a (1,5), a (3,5)
Question 1. Ecrire un programme qui utilise un arbre des suffixes pour extraire toutes les paires maximales à droite d'une chaîne de caractères S. On affichera la chaîne répétée et le nombre de répétions. Par exemple a : 2, na : 1, ana : 1.
On appelle répétition maximale dans une chaîne de caractères S une paire maximale à droite ne pouvant être étendue à gauche. Par exemple dans bananas on a deux paires maximales : ana (1,3), a (1,5)
Question 2. Ecrire un programme qui utilise un arbre des suffixes pour extraire toutes les répétitions maximales d'une chaîne de caractères S. On affichera la chaîne répétée et ses positions.
On appelle répétition maximale en tandem dans une chaîne de caractères S une répétition maximale telle que la première occurrence se termine là où la seoncde commence. Par exemple dans bananas on a une répétition en tandem : na.
Question 3. Ecrire un programme qui utilise un arbre des suffixes pour extraire toutes les répétitions maximales en tandem d'une chaîne de caractères S. On affichera la chaîne répétée et sa position.
On pourra s'aider de ce qui est décrit dans cet article où ce que nous recherchons est défini comme des "branching tandem repeat".
On souhaite construire un profile HMM pour la prédiction du motif doigt de zinc C2H2 (documentation Prosite).
On va partir d'un alignement de motifs doigt de zinc validé, construire un profile HMM et tester la validité du modèle établi sur des séquences possédant un motif doigt de zinc et sur des séquences ne possédant pas de motif doigt de zinc.
A partir de ces tests, on pourra calculer le nombre de vrais positifs (VP), de faux négatifs (FN), de vrais négatifs (VN) et de faux positifs (FP). Ces quantités permettront alors de calculer la senseibilité () et la spécificité () du modèle.
Comme le modèle produit une probabilité, il faudra adopter un seuil permettant de choisir si oui ou non on considère qu'une séquence contient un motif doigt de zinc. Le calcul de la sensibilité et de la spécificité pour différents seuils (de 0 à 1) permettra d'établir une courbe ROC qui trace le rapport en spécificité et sensibilité (voir cet article).
Enfin, nous pourrons tester différents modèles, et donc différentes courbes ROC, et choisir quel est celui qui donne les meilleurs résultats.
Les données utilisées seront les suivantes:
Le travail à réaliser est le suivant. Vous devrez rendre les programmes, un README indiquant comment lancer les tests et les courbes ROC.