alignement de s quences suite n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Alignement de séquences (suite) PowerPoint Presentation
Download Presentation
Alignement de séquences (suite)

Loading in 2 Seconds...

play fullscreen
1 / 16
brynn-osborne

Alignement de séquences (suite) - PowerPoint PPT Presentation

99 Views
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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.