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) Nadia El-Mabrouk.

Présentations similaires


Présentation au sujet: "Alignement de séquences (suite) Nadia El-Mabrouk."— Transcription de la présentation:

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

2 Graphe dédition pour lalignement de séquences baa 0123 a1112 b b [] a [] a [] a [] a [] b [] b [] a [] a [] a [] a [] a [] b [] b [] b [] a [] b [] b [] b b [] b b [] b a [] a a [] a a [] b Graphe orienté, dont les arêtes sont étiquetées. S T

3 |S| = m, |T| = n. Correspondance bijective entre les alignements de S avec T et les chemins de à (m,n). D(i,j): Valeur maximale dun chemin de au sommet (i,j). Trouver la valeur maximale D(m,n) dun chemin de à (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)); TjTj [] SiSi [] TjTj [] TjTj SiSi [ ]

4 Expression régulière Aligner S = « AT » avec R = « (A|C)T(T|G) » A C T T G On note Q lensemble des états de lautomate On note (q) létiquette dun état q.

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

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

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

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

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

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

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

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(n 2 ) en temps et en espace. – Algorithme de Hirschberg: stratégie « Diviser pour Reigner ». O(n 2 ) en temps et O(n) en espace. – Optimisation en temps: calculer la table autour dune 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(n 2 ) en temps et en espace.

14 Conclusion Généralisation de lalignement local/global aux « gaps » – Plutôt que de considérer chaque « indel » séparément, les regrouper en « gaps ». – Dans le cas dune pondération quelconque des « gaps », algorithme O(n 3 ) en temps et en espace. – Dans le cas dune pondération affine, algorithme en O(n 2 ).

15 Conclusion Recherche dune 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 dun texte S avec une expression régulière R (|S||R| = n) – Algorithme de programmation dynamique en O(n 2 ) en temps et en espace. Recherche dune 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) Nadia El-Mabrouk."

Présentations similaires


Annonces Google