La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Alignement de séquences (suite)

Présentations similaires


Présentation au sujet: "Alignement de séquences (suite)"— Transcription de la présentation:

1 Alignement de séquences (suite)
Nadia El-Mabrouk

2 Graphe d’édition pour l’alignement de séquences
[ e ] [ e ] [ e ] q b a 1 2 3 b a a [ a ] [ a ] [ a ] [ a ] [ a ] [ a ] [ a ] a b a e e e e S [ e ] [ e ] [ e ] b a a 1 [ b ] [ b ] [ b ] [ b ] [ b ] [ b ] [ b ] b b b e e e e [ e ] [ e ] [ e ] b a a 2 f Graphe orienté, dont les arêtes sont étiquetées.

3 |S| = m, |T| = n. Correspondance bijective entre les alignements de S avec T et les chemins de q= (0,0) à f= (m,n). D(i,j): Valeur maximale d’un chemin de q= (0,0) au sommet (i,j) . Trouver la valeur maximale D(m,n) d’un chemin de q= (0,0) à f= (m,n). D(0,0) = 0; Pour j = 1 à n faire D(0,j) = D(0,j) + v( ); Pour i=1 à m faire { D(i,0) = D(i-1,0) + v ( ); Pour j=1 à n faire D(i,j) = max {D(i-1,j) + v( ) , D(i,j-1) + v ( ), D(i-1,j-1)+ v ( )} } Retourner (D(m,n)); Tj e [ ] Si

4 Expression régulière Aligner S = « AT » avec R = « (A|C)T(T|G) »
q f T C G On note Q l’ensemble des états de l’automate On note l(q) l’étiquette d’un état q.

5 Expression régulière Aligner (A|C)T(T|G) avec AT [ ] [ ] [ ] [ ] [ ] [
(0,q) e [ e ] T A e e T e [ e ] T [ e ] [ e ] [ e ] C G e e C G A A T T T C G A T T (m, f) C G

6 Expression régulière Aligner S = « AT » avec R = « (A|C)T(T|G) » [ ] [
(0,q) e [ e ] T A e e T e [ e ] T [ e ] [ e ] [ e ] C G e e [ A ] [ A ] C G A A e [ A ] A T C [ C ] e T T C G A T T (m, f) C G

7 Expression régulière Aligner S = « AT » avec R = « (A|C)T(T|G) » [ ] [
(0,q) e [ e ] T A e e T e [ e ] T [ e ] [ e ] [ e ] C G e e [ A ] [ A ] C G A A e [ A ] A T C [ C ] e T T C G A T T (m, f) C G

8 Correspondance bijective entre les alignements de S avec les mots de L(R) et les chemins de q= (0,0) à f= (m,n). D(0, q) = 0; Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )}; Pour i=1 à m faire { D(i, q) = D(i-1, q) + v ( ); { D(i,q) = max t q {D(i,t) + v( )}; Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )}; } D(i,q) = max {D(i,q), maxt (≠ q)  q {D(i,t) + v( )}; Retourner (D(m,f)); Si e [ ] l(q)

9 Recherche de R dans S à k erreurs près
D(0, q) = 0; Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )}; Pour i=1 à m faire { D(i, q) = D(i-1, q) + v ( ); { D(i,q) = max t q {D(i,t) + v( )}; Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )}; } D(i,q) = max {D(i,q), maxt (≠ q)  q {D(i,t) + v( )}; Retourner (D(m,f)); l(q) e [ ] Si e [ ] l(q) e [ ] l(q) Si [ ] l(q) e [ ]

10 Recherche de R dans S à k erreurs près
D(0, q) = 0; Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )}; Pour i=1 à m faire { D(i, q) = max {0, D(i-1, q) + v ( )}; { D(i,q) = max t q {D(i,t) + v( )}; Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )}; } D(i,q) = max {D(i,q), maxt (≠ q)  q {D(i,t) + v( )}; Retourner (D(m,f)); l(q) e [ ] Si e [ ] l(q) e [ ] l(q) Si [ ] l(q) e [ ]

11 Recherche de R dans S à k erreurs près
D(0, q) = 0; Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )}; Pour i=1 à m faire { D(i, q) = max {0, D(i-1, q) + v ( )}; { D(i,q) = max t q {D(i,t) + v( )}; Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )}; } D(i,q) = max {D(i,q), maxt (≠ q)  q {D(i,t) + v( )}; Retourner toutes le positions i telles que (D(i,f)) ≤ k; l(q) e [ ] Si e [ ] l(q) e [ ] l(q) Si [ ] l(q) e [ ]

12 Conclusion Alignement global de deux séquences S et T (|S| ≈ |T| = n)
Distance d’édition (Levenshtein) ou valeur de similarité. Algorithme de programmation dynamique en O(n2) en temps et en espace. Algorithme de Hirschberg: stratégie « Diviser pour Reigner ». O(n2) en temps et O(n) en espace. Optimisation en temps: calculer la table autour d’une bande. Temps et espace O(kn) où k est la distance d’édition.

13 Conclusion Alignement local de deux séquences S et T (|S| ≈ |T| = n)
Valeur de similarité seulement. Algorithme de programmation dynamique en O(n2) en temps et en espace.

14 Conclusion Généralisation de l’alignement local/global aux « gaps »
Plutôt que de considérer chaque « indel » séparément, les regrouper en « gaps ». Dans le cas d’une pondération quelconque des « gaps », algorithme O(n3) en temps et en espace. Dans le cas d’une pondération affine, algorithme en O(n2).

15 Conclusion Recherche d’une séquence S dans une séquence T à k erreurs près (|S|=m, |T| = n, m << n) Distance d’édition (Levenshtein) ou valeur de similarité. Algorithme de programmation dynamique en O(mn) en temps et en espace.

16 Conclusion Alignement d’un texte S avec une expression régulière R (|S|≈|R| = n) Algorithme de programmation dynamique en O(n2) en temps et en espace. Recherche d’une expression régulière R dans un texte S à k erreurs près (|S|= n, |R| = m, n>>m) Algorithme de programmation dynamique en O(mn) en temps et en espace.


Télécharger ppt "Alignement de séquences (suite)"

Présentations similaires


Annonces Google