Un algorithme vectoriel pour le problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 Sylvie Hamel Stagiaire postdoctorale du CRSNG, Université McGill (en collaboration avec Anne Bergeron) Université du Québec à Montréal Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 2 Recherche approximative d’un mot dans un texte Problème: trouver toutes les occurrences approximatives d’un mot P = p1 p2 . . . pm dans un texte T = t1 t2 . . . tn . Exemple: Mot: TATA Université du Québec à Montréal Texte: ACG TAATA G CATA GGGTGTTGG TATA ... 27 janvier 2003 3 Applications de la recherche approximative en biologie: 1. Recherche de similitudes entre 2 séquences biologiques. Université du Québec à Montréal 2. Recherche d’une molécule nouvellement séquencée dans les banques de données existantes. 3. Recherche d’un gène dans un génome. 4. . . . 27 janvier 2003 4 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 5 T A T 4 3 2 1 0 A 2 A C 1 G T 5 A 6 A T 7 4 3 9 A G 10 C 8 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (1) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 6 T A T 4 3 2 1 0 ∗ 1 2 A C A G T 5 A 6 A T 7 4 3 9 A G 10 C 8 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (2) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 7 T A T 4 3 2 1 0 ∗ 1 1 2 A C A G T 5 A 6 A T 7 4 3 9 A G 10 C 8 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (3) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 8 T A T 4 3 2 1 0 ∗ 1 1 1 2 A C A G T 5 A 6 A T 7 4 3 9 A G 10 C 8 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (4) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 9 T A T 4 3 2 1 0 ∗ 2 1 1 1 2 A C A G T 5 A 6 A T 7 4 3 9 A G 10 C 8 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (5) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 10 T A T 4 3 2 1 0 3 2 1 1 1 3 2 2 2 2 3 3 3 3 3 4 3 4 3 4 G T 3 4 3 4 5 A 4 4 4 5 6 5 4 5 6 7 A T 4 5 6 7 8 5 6 7 8 9 A G 6 7 8 9 10 C A C A D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 (6) Algorithme de Sellers: Calculer la matrice des distances D[i, j] où D[i, j] = min Université du Québec à Montréal avec les conditions initiales D[0, j] = j et D[i, 0] = i. 27 janvier 2003 11 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 12 A C G T 0 A A 0 T 0 A 0 0 G C ... ... 0 ... 0 1 ... 0 T 2 ... 0 A 3 ... 0 T 4 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 A 0 Généralisation de l’algorithme: où D[i, j] = min (7) Université du Québec à Montréal avec les conditions initiales D[0, j] = 0 et D[i, 0] = i. 27 janvier 2003 13 T A 2 T 3 1 0 3 2 1 1 0 3 2 2 1 0 3 3 2 1 0 3 2 1 0 0 G T 2 1 0 1 0 A 1 1 1 1 0 A 2 1 1 0 0 T 1 1 0 1 0 A 2 1 1 1 0 G 2 2 2 1 0 C ... ... ... ... ... ... A C A 4 Généralisation de l’algorithme: où D[i, j] = min D[i − 1, j] + 1 D[i, j − 1] + 1 D[i − 1, j − 1] + δ(pi , tj ) (8) Université du Québec à Montréal avec les conditions initiales D[0, j] = 0 et D[i, 0] = i. 27 janvier 2003 14 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 15 011010010001000101 Un vecteur de bits 27 janvier 2003 Université du Québec à Montréal 16 Opérations sur les vecteurs de bits 4. addition binaire avec retenue 3. négation 2. conjonction 1. disjonction ↑a x x +b y ¬x x∧y x∨y Université du Québec à Montréal Soit x et y des vecteurs booléens - ou vecteurs de bits. On permet les opérations suivantes sur ces vecteurs: 5. déplacement vers la droite 27 janvier 2003 17 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 18 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 19 c a b 1 c b 2 c Ancienne Technologie: utilisation séquentielle d’un automate pour convertir une chaı̂ne d’entrée en une chaı̂ne de sortie. 0 abbcbaccb... a, b a 000110121... Université du Québec à Montréal Analyse en temps: O(m) où m est la longueur de la chaı̂ne d’entrée 27 janvier 2003 20 Vecteurs caractéristiques: Étant donné la séquence d’entrée e = abbcbaccb..., (e = b) = c b = 000100110 = 011010001 (e = c) Université du Québec à Montréal = (e = a) = a = 100001000 on a les vecteurs caractéristiques suivants: 27 janvier 2003 21 b a s0 s1 a a s2 b s0 =a s1 =(↑1 s0 ) ∧ b s2 =¬ (s0 ∨ s1 ) b b 1 a 1 1 0 0 b 0 1 a b a = 0 0 Université du Québec à Montréal s0 = 0 1 0 0 1 s1 = 1 0 1 0 0 s2 = 0 0 0 1 0 b = 1 Nouvelle Technologie: trouver la chaı̂ne de sortie de façon parallèle en utilisant des opérations vectorielles pour calculer le vecteur caractéristique de chaque état. 27 janvier 2003 22 b a s0 s1 a a s2 b s0 = a s1 =(↑1 s0 ) ∧ b s2 =¬ (s0 ∨ s1 ) b b 1 a 1 1 0 0 b 0 1 a b a = 0 0 Université du Québec à Montréal s0 = 0 1 0 0 1 s1 = 1 0 1 0 0 s2 = 0 0 0 1 0 b = 1 Nouvelle Technologie: trouver la chaı̂ne de sortie de façon parallèle en utilisant des opérations vectorielles pour calculer le vecteur caractéristique de chaque état. 27 janvier 2003 23 b a s0 s1 a a s2 b s0 = a s1 = (↑1 s0 ) ∧ b s2 =¬ (s0 ∨ s1 ) b b 1 a 1 1 0 0 b 0 1 a b a = 0 0 Université du Québec à Montréal s0 = 0 1 0 0 1 s1 = 1 0 1 0 0 s2 = 0 0 0 1 0 b = 1 Nouvelle Technologie: trouver la chaı̂ne de sortie de façon parallèle en utilisant des opérations vectorielles pour calculer le vecteur caractéristique de chaque état. 27 janvier 2003 24 b a s0 s1 a a s2 b s0 = a s1 = (↑1 s0 ) ∧ b s2 = ¬ (s0 ∨ s1 ) b b 1 a 1 1 0 0 b 0 1 a b a = 0 0 Université du Québec à Montréal s0 = 0 1 0 0 1 s1 = 1 0 1 0 0 s2 = 0 0 0 1 0 b = 1 Nouvelle Technologie: trouver la chaı̂ne de sortie de façon parallèle en utilisant des opérations vectorielles pour calculer le vecteur caractéristique de chaque état. 27 janvier 2003 25 accccccccccccc c ↓ 1 b, c 0 a b a, c Université du Québec à Montréal bccccccccccccc c ↓ 0 1 Se souvenir d’événements passés: une sortie peut dépendre d’un événement arbitrairement “éloigné”... 27 janvier 2003 26 accccccccccccc c ↓ 1 b, c 0 a b a, c Université du Québec à Montréal bccccccccccccc c ↓ 0 1 Se souvenir d’événements passés: une sortie peut dépendre d’un événement arbitrairement “éloigné”... 27 janvier 2003 27 0 1, 1/0 0, 0/1 1 1, 1/1 0, 1/0 1, 0/0 ...mais il est encore possible de calculer, en parallèle, le vecteur caractéristique de chaque état en utilisant l’automate d’addition binaire: 0, 0/0 0, 1/1 1, 0/1 Université du Québec à Montréal (x1 ∧ x2 ) ∨ [((¬x1 ∧ x2 ) ∨ (x1 ∧ ¬x2 )) ∧ ¬(x1 +b x2 )] Si deux vecteurs de bits x1 et x2 sont additionnés, la sortie sera 1 si 27 janvier 2003 28 0 a 1 a,c 0,0/0 0,1/1 1,0/1 0 Maintenant, définissons x1 = a et x2 = a ∨ c: b,c b 1,1/0 0,0/1 1 1,1/1 0,1/0 1,0/0 Université du Québec à Montréal (r = 1) = a ∨ [c ∧ ¬(a +b (a ∨ c))] Alors: a = x1 ∧ x2 = les deux bits sont 1 b = ¬x1 ∧ ¬x2 = les deux bits sont 0 c = ¬x1 ∧ x2 = le premier bit est 0 et le second est 1 On obtient: 27 janvier 2003 29 a, b s a a c a & Université du Québec à Montréal % Résoudre des automates plus complexes: quels automates pouvons-nous résoudre en utilisant nos techniques? $ ' 27 janvier 2003 30 Quelques Définitions: soit A un automate complet déterministe sur l’alphabet Σ avec ensemble d’états Q et fonction de transition σ Q × Σ −→ Q. 0 0 0 ∀s ∈ Q, σ(s , x) = s, 0 0 a c 1 b ∀s 6= s ∈ Q, σ(s , x) 6= s. a, b a b c 2 Université du Québec à Montréal c (et alors x ∈ Is ) Définition 1. Un état s est effeuillable si, pour tout événement x ∈ Σ qui ne boucle pas sur s, on a ou 27 janvier 2003 31 a, b 0 c a b 1 a c b 2 Université du Québec à Montréal c Definition 2. Un automate A est effeuillable s’il a un seul état, ou s’il a un état effeuillable s et que A \ {s} est effeuillable. 27 janvier 2003 32 b 1 c b 2 Université du Québec à Montréal c Definition 2. Un automate A est effeuillable s’il a un seul état, ou s’il a un état effeuillable s et que A \ {s} est effeuillable. 27 janvier 2003 33 Université du Québec à Montréal Théorème 1. Si un automate A est effeuillable, alors on peut trouver un algorithme vectoriel pour A. 27 janvier 2003 34 a, b 0 b 1 a c b ab bb bb cb bb ab cb cb bb 0b 0b 0b b b 0b b b b a c Exemple: Étape 1. Premier état effeuillable: 0 27 janvier 2003 2 c Université du Québec à Montréal 35 a, b 0 b 1 a c b ab bb bb cb bb ab cb cb bb 0b 0b 0b 1b b 0b 1b b b a c Exemple: Étape 2. “Voisins de 0” 27 janvier 2003 2 c Université du Québec à Montréal 36 a, b 0 b 1 a c b ab bb bb cb bb ab cb cb bb 0b 0b 0b 1b b 0b 1b b b a c Exemple: Étape 3. “Étape récursive” 27 janvier 2003 2 c Université du Québec à Montréal 37 b 1 c b ab bb bb cb bb ab cb cb bb 0b 0b 0b 1b b 0b 1b b b Exemple: Étape 3. “Étape récursive” 27 janvier 2003 2 c Université du Québec à Montréal 38 b 1 c b ab bb bb cb bb ab cb cb bb 0b 0b 0b 1b 1b 0b 1b 2b 1b Exemple: Étape 3. “Étape récursive” 27 janvier 2003 2 c Université du Québec à Montréal 39 Plan de l’exposé 1. Présentation du problème et de quelques applications de celui-ci en bioinformatique. 2. Rappel de l’algorithme de Sellers pour calculer la distance entre deux mots (table des distances). 3. Généralisation de cet algorithme à la recherche des occurrences approximatives d’un mot dans un texte. 4. Introduction aux vecteurs de bits. 5. Qu’est-ce qu’un automate? 6. Présentation d’un problème intéressant sur les automates et d’un algorithme vectoriel pour le résoudre. Université du Québec à Montréal 7. Présentation de notre algorithme vectoriel (utilisant les automates) pour la résolution du problème de la recherche des occurrences approximatives d’un mot dans un texte. 27 janvier 2003 40 A C G T 0 A A 0 T 0 A 0 0 G C ... ... 0 ... 0 1 ... 0 T 2 ... 0 A 3 ... 0 T 4 D[i − 1, j − 1] + δ(pi , tj ) D[i, j − 1] + 1 D[i − 1, j] + 1 A 0 Généralisation de l’algorithme: où D[i, j] = min (9) Université du Québec à Montréal avec les conditions initiales D[0, j] = 0 et D[i, 0] = i. 27 janvier 2003 41 Nouvelle Solution: Calculer les distances avec un automate . . . Définition 3. On définit les différences horizontales et verticales entre les éléments de la table des distances D de la façon suivante: ∆vi,j = D[i, j] − D[i − 1, j], ∆hi,j = D[i, j] − D[i, j − 1]. ∆vi,j ∈ {−1, . . . , 1}, ∆hi,j ∈ {−1, . . . , 1}. Université du Québec à Montréal Lemme 1. Les différences horizontales et verticales sont bornées, c’est-à-dire 27 janvier 2003 42 0 1 1 0 A 0 0 C 0 0 G 0 0 T 0 0 0 0 0 0 A A T 0 0 0 0 A G 0 0 C ... ... ... ... ... ... 0 Connaı̂tre les différences horizontales nous permet de résoudre le problème... T 1 1 3 A 2 T 1 A 4 Université du Québec à Montréal D[m, j] = D[m, j − 1] + ∆hm,j . car on sait que D[m, 0] = m et alors 27 janvier 2003 43 0 1 1 A C G 0 0 T 0 0 0 0 0 0 A A T 0 0 0 0 A G 0 0 0 C ... ... ... 0 ∗ ... 0 ∗ ... 0 ∗ ... 0 ∗ 0 Connaı̂tre les différences horizontales nous permet de résoudre le problème... T 1 1 3 A 2 T 1 A 4 Université du Québec à Montréal D[m, j] = D[m, j − 1] + ∆hm,j . car on sait que D[m, 0] = m et alors 27 janvier 2003 44 Notre algorithme: ∆vj =↑0 ∆hj + ∆vj−1 − ∆hj Calculer ∆hj avec un automate B. Au départ, on a que ∆vo = 11 . . . 1. Pour j de 1 à n faire 1. 2. Calculer ∆vj : 3. Calculer D[m, j] D[m, j] = D[m, j − 1] + ∆hm,j Université du Québec à Montréal Finalement, si D[m, j] ≤ t alors on a une occurrence de P en position j du texte. 27 janvier 2003 45 D[i,j]=min D[i−1,j−1]+δ(pi ,tj ) D[i,j−1]+1 D[i−1,j]+1 =⇒ ∆hi,j =min δ(pi ,tj )−∆vi,j−1 ∆hi−1,j −∆vi,j−1 +1 1 On peut donc définir un automate B qui calculera la colonne de différences horizontales ∆hj = ∆h1,j . . . ∆hm,j étant donné la séquence de couples suivante: Université du Québec à Montréal (∆vj−1 , δ(P, tj )) = ((∆v1,j−1 , δ(p1 , tj )), . . . , (∆vm,j−1 , δ(pm , tj ))) 27 janvier 2003 46 −1 (0,1) (0,0) (1,0) (−1,1) (−1,0) (0,0) (1,1) 0 (1,0) (−1,1) (−1,0) (0,1) (1,1) (0,0) (0,1) (−1,0) (−1,1) Université du Québec à Montréal 1 Exemple: L’automate B permettant de calculer les colonnes de différences horizontales dans le cas où la distance utilisée est la distance d’édition est le suivant: (1,0) (1,1) 27 janvier 2003 47 Bibliographie: 1. Hamel, S., Algorithmes vectoriels et bioinformatique, Thèse de doctorat, 2002. 2. Bergeron, A. et Hamel, S., Vector Algorithms for Approximate String Matching, International Journal of Foundations of Computer Science, 13-1, pp.53–66, 2002. 3. Gusfield, D., Algorithms on Strings, Trees and Sequences, Cambridge University Press, 1997. Université du Québec à Montréal 4. Hopcroft, J.E. et Ullman, J.D., Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing Company, 1979. 27 janvier 2003 48 Théorème (Myers 99). L’automate à 3 états permettant de résoudre le problème de la recherche approximative d’un mot dans un texte, avec l’emploi de la distance d’édition, est effeuillable. Université du Québec à Montréal Theorem 2. L’automate B à 2c + 2 états permettant de résoudre le problème de la recherche approximative d’un mot dans un texte, avec l’emploi de la distance d’édition généralisée, est effeuillable. 27 janvier 2003 49