1 / 16

Alignement de séquences (suite)

Alignement de séquences (suite). Nadia El-Mabrouk. Graphe d’édition pour l’alignement de séquences. T. [. e. ]. [. e. ]. [. e. ]. q. b. a. a. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. a. b. a. e. e. e. e. S. [. e. ]. [. e. ].

Download Presentation

Alignement de séquences (suite)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Graphe d’édition pour l’alignement de séquences T [ e ] [ e ] [ e ] q 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). ] [ Si 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)); e [ [ [ e e Si ] ] ] Tj Tj Tj

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

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

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

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

  8. e Si e e ] ] ] ] [ [ [ [ l(q) l(q) l(q) l(q) • 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 ( ); Pour q in Q-{q} en ordre topologique faire { 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( )}; } Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠q) q {D(i,t) + v( )}; } Retourner (D(m,f)); ] [ Si e

  9. Recherche de RdansS à kerreursprès e Si e e ] ] ] ] [ [ [ [ l(q) l(q) l(q) l(q) 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 ( ); Pour q in Q-{q} en ordre topologique faire { 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( )}; } Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠q) q {D(i,t) + v( )}; } Retourner (D(m,f)); ] [ Si e

  10. Recherche de RdansS à kerreursprès e Si e e ] ] ] ] [ [ [ [ l(q) l(q) l(q) l(q) 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 ( )}; Pour q in Q-{q} en ordre topologique faire { 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( )}; } Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠q) q {D(i,t) + v( )}; } Retourner (D(m,f)); ] [ Si e

  11. Recherche de RdansS à kerreursprès e Si e e ] ] ] ] [ [ [ [ l(q) l(q) l(q) l(q) 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 ( )}; Pour q in Q-{q} en ordre topologique faire { 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( )}; } Pour q in Q-{q} en ordre topologique faire 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; ] [ Si 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.

More Related