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

Recherche exacte de motifs Nadia El-Mabrouk. Problème Recherche exacte dun seul motif : Alphabet T = t 1 t 2 … t n : Texte de taille n P = p 1 p 2 … p.

Présentations similaires


Présentation au sujet: "Recherche exacte de motifs Nadia El-Mabrouk. Problème Recherche exacte dun seul motif : Alphabet T = t 1 t 2 … t n : Texte de taille n P = p 1 p 2 … p."— Transcription de la présentation:

1 Recherche exacte de motifs Nadia El-Mabrouk

2 Problème Recherche exacte dun seul motif : Alphabet T = t 1 t 2 … t n : Texte de taille n P = p 1 p 2 … p m : Mot de taille m, n >> m Trouver les positions de toutes les occurrences exactes de P dans T T:T: AGCCGCGCGTCCGCGTGC GCG GCGGCG P = GCG

3 Problème Recherche exacte multiple : Alphabet T = t 1 t 2 … t n : Texte de taille n Ensemble P = {P 1, P 2,… P l } de mots de Trouver les positions de toutes les occurrences exactes de tous les mots de P dans T T:T: AGCCGCGCGTCCGCGTGC GCG GCGGCG CGCCCG CGC P = {GCG, CGC, CCG}

4 Intérêts de la recherche exacte Utilitaire de base pour la manipulation de textes. Aussi important que le tri ou opérations arithmétiques de base. Applications courantes: utilitaires UNIX comme grep; outils de recherche web; recherche dans les cathalogues de bibliothèques ou revues électroniques · · Utilitaire de base pour la recherche de motifs biologiques: recherche approchée (BLAST, FASTA...), recherche de répétitions, alignement multiple · · ·

5 Exemple dapplication biologique: Utilisation du transcriptome pour annoter le génome. Transcriptome: Ensemble des ARN messagers représentant les gènes exprimés dans une lignée cellulaire donnée. Technologie HTS permet de séquencer des segments de chaque transcrit. Retrouver leur position dans le génome permet une annotation des gènes fonctionnels. Pertinent seulement sil existe une seule occurrence de chaque marqueur dans le génome. Plus les marqueurs sont longs, plus ils sont spécifiques. Avec la technologie HTS, possible de séquencer des marqueurs de taille ~36 en grande quantité.

6 Transcripts are isolated from cells of interest and tags are excised using specialized restriction endonucleases. Tag sequences are revealed by sequencing of tag concatemers. Matching of tags to genomic sequences allows precise localization of tags in the genome. Comparison of tag locations with positions of previously annotated genes can provide expression evidence for predicted genes, and identify novel internal exons and previously uncharacterized genes. Using the transcriptome to annotate the genome Nature Biotechnology 20, (2002) Saurabh Saha … Victor E. Velculescu 1

7 Pourquoi des algorithmes rapides? Dans notre exemple Génomes de très grande taille: ~10 6 pour une bactérie (E. coli: 4.6Mb) à pour certains poissons. Homme: 3.2 Gb. Des millions de « marqueurs » séquencés dun transcriptome.

8 Pourquoi des algorithmes rapides? Dans le cas général Catalogues électroniques gigantesques; Banques de données biologiques croissante de façon exponentielle. Recherche exacte souvent utilisée comme étape de filtrage dans des logiciels complexes. Doit être le plus rapide possible.

9 Recherche exacte- Algorithme naif T:aabbaabababaabbbabaa P:aabababaabababaabababaabababaababab

10 Recherche exacte- Algorithme naif Algorithme recherche-naive (T, n, P m) Pour j = 0 à n m Faire i := 0; Tant que (T[j+i] = P[i] et i < m) i := i + 1; Si i = m Signaler une occurrence de P Fin Pour Complexité: O(mn) dans le pire des cas. Pour un alphabet suffisamment grand, nombre moyen de comparaisons O(n)

11 Optimisations de lalgorithme naif Ne pas recomparer les mêmes caractères dune étape à lautre; Décaler le mot de plus dun caractère à la fois; Éviter de considérer certaines parties du texte.

12 Approche Knuth-Morris-Pratt(1977) À chaque étape, décalage de P de plus dun caractère. Index j sur le texte jamais décrémenté Les décalages ne dépendent que de P

13 Approche Knuth-Morris-Pratt(1977) Bord dun mot u: segment de u, à la fois préfixe et suffixe de u Bord disjoint de u: Bord, dont les parties préfixe et suffixe sont succédées de caractères différents.

14 Algorithme KMP T:abacababacabacbbabaa abacabac abacabax abacabacabacabac Avec x différent de c abacabacabacabacabacabacabacabac

15 Algorithme KMP T:abacababacabacbbabaa abacabac abacabac Plus long bord de u Mot u: Plus long bord DISJOINT de u abacabac

16 Approche Knuth-Morris-Pratt(1977) À chaque étape, décalage de P de plus dun caractère. Index j sur le texte jamais décrémenté Les décalages ne dépendent que de P les calculer au cours dune phase de prétraitement de P |T| = n; |P| = m: Parcours du texte en O(n), prétraitement en O(m) O(n+m)

17 Algorithme Boyer-Moore (1977) Linéaire dans le pire des cas. Saute des caractères du texte: sous-linéaire en pratique À chaque position j, parcourir P de droite à gauche Sarrêter dès quon arrive au début de P (occurrence finissant à la position j), ou dès que les caractères comparés diffèrent. Décaler P de d caractères.

18 Bord disjoint droit dun suffixe v de P: Bord u de v tel que u et v ne sont pas précédés du même caractère dans P.

19 Le décalage d dépend de deux fonctions: Décalage d 1 : Décalage d 2 : a a d1(a) aucun a j m j-m+i i Attention!! Décalage d1 peut-être négatif

20 Algorithme BM T:aabbcabababaabbbab P:aababab Décalage d1:aababab c b

21 Algorithme BM T:aabbcabababaabbbab P:aababab Décalage d1: aababab Décalage d2: aababab c b

22 Algorithme BM T:aabbcabababaabbbab aababab

23 Algorithme BM T:aabbcabababaabbbab aababab

24 Algorithme BM T:aabbcabababaabbbab aababab

25 Algorithme BM T:aabbcabababaababab aababab

26 Supposons: u = P[i + 1…m] = T[j m + i + 1…j] et p i t jm+i d1: Décalage min. pour que t jm+i coïncide avec un caractère de P. Pour tout a dans : d 1 (a) = min{d /(d = m) ou (d = |u|, u et au est un suffixe de P)} Pour tout i, 0 i m, et u = P[i m]: d 2 (i) = min{|v| / v in V (u) U W(u)}, où V (u) = {v / v est suffixe de P et u est bord disjoint droit de v}. W(u) = {v / P est suffixe de v, u est bord de v et |v| (m+|u|)}. Le décalage effectué est le maximum de d 1 (t jm+i ) et d 2 (i)

27 Algorithme BM : j := m; Tant que j n Faire i := m; Tant que i > 0 et t j = p i Faire i := i 1 ; j := j 1; Fin Tant que Si i = 0 Alors Occurrence de P débutant à la position j; j := j + d 2 (i); Sinon j := j + max(d 1 (t j-m+1 )-(m-i), d 2 (i)); FinSi Fin Tantque

28 Exemple: P = aababab abc d1d1 127 i Paababab d2d T:aabbaababacaabbbabaa.... aababab aababab aababab aababa

29 Complexité: Calcul de d 1 en temps O(m + | |) Calcul de d2 en temps O(m) Parcours du texte nécessite O(n + rm) comparaisons, où r est le nombre doccurrences de P dans T. Algorithme dautant plus efficace que est grand. Dans ce cas, nombre de comparaisons se rapproche, dans la pratique, de n/m => sous-linéaire en pratique

30 Algorithme de Horspool et Sunday Versions simplifiées de BM Ne tiennent pas compte de la périodicité des mots Fonction de décalage de type d 1 Horspool: Décalage d j dépend uniquement de t j ; plus petit décalage nécessaire pour faire coïncider t j avec un caractère de P.

31 Algorithme de Horspool et Sunday Versions simplifiées de BM Ne tiennent pas compte de la périodicité des mots Fonction de décalage de type d 1 Sunday: Décalage d j dépend uniquement de t j+1

32 Algorithme de Horspool et Sunday Performance en moyenne de Horspool comparable à celle de BM. Dans le pire des cas, complexité en O(mn). Boyer-Moore-Horspool (BMH): Horspool avec comparaisons des caractères de P de droite à gauche.

33 Optimisations supplémentaires Alphabet de lADN limité à 4 lettres décalages pas très grands. Optimisations possibles: Effectuer le décalage en considérant plus quun caractère: q-mers (ou q-grams) (Zhu and Takaoka 1987, Baeza- Yates 1989, Kim and Shawe-Taylor 1994…)

34 Recherche Multiple : Alphabet T = t 1 t 2 … t n : Texte de taille n Ensemble P = {P 1, P 2,… P l } de mots de Trouver les positions de toutes les occurrences exactes de tous les mots de P dans T T:T: AGCCGCGCGTCCGCGTGC GCG GCGGCG CGCCCG CGC P = {GCG, CGC, CCG}

35 Recherche Multiple Application directe des algos de recherche exacte: O(m+l.n) (m taille totale des mots) Objectif: Recherche en un seul parcours du texte : O(m+n) T:T: AGCCGCGCGTCCGCGTGC GCG GCGGCG CGCCCG CGC P = {GCG, CGC, CCG}

36 Algorithme de Aho-Corasick Utilisé dans le programme fgrep dUNIX Basé sur la démarche KMP Prétraitement: Construction dun arbre K, arbre de Aho- Corasick, index sur les mots de P P = {abbac, ac, bacd, ababc, ab} abbac cdba abc c

37 Arbre de Aho-Corasick Définition: Larbre de Aho-Corasick pour un ensemble de mots P est un arbre enraciné orienté K satisfaisant les 4 contraintes suivantes: – Chaque arête est étiquetée par un et un seul caractère. – Deux arêtes sortant dun même sommet ont des étiquettes différentes. – Chaque mot de p i de P est associé à un sommet v de K : i.e. les caractères étiquetant le chemin de la racine de K à v forment le mot p i. De plus, chaque feuille de K est associée à un mot de P. Construction de larbre en O(m) (m: taille totale des mots)

38 Recherche dans un texte Recherche naive: O(mn) P = {abbac, ac, bacd, ababc} abbac cdba abc c T = a b a b b a c d ….

39 Recherche dans un texte Recherche naive: O(mn) P = {abbac, ac, bacd, ababc} abbac cdba abc c T = a b a b b a c d ….

40 Recherche dans un texte Accélération: Généralisation de KMP. Considérer une fonction déchec. X: Préfixe dun mot de P Bord(X): Plus long suffixe propre de X qui soit préfixe dun mot de P. Fonction déchec: Renvoie au sommet correspondant au plus long bord du mot atteint.

41 Fonction déchec P = {abbac, ac, bacd, ababc} abbac cdba abc c

42 Algorithme linéaire pour la fonction déchec r racine de K Calculer f(v) pour tout sommet v de K. v v : arête étiquetée de la lettre x – Si v = r ou r v, alors f(v) = r. – On suppose que f(v) connu pour tout sommet v de profondeur k. On veut calculer f(v) pour v de profondeur k+1.

43 Algorithme linéaire pour la fonction déchec Si il existe une arête f(v) w étiquetée x, alors f(v) = w. v x r v Niveau k+1 Niveau k x w t=f(s) s=f(v)

44 Algorithme linéaire pour la fonction déchec Sinon, on recommence avec s=f(v) v x r v Niveau k+1 Niveau k s=f(v) t=f(s) x

45 Fonction déchec P = {abbac, ac, bacd, ababc} abbac cdba abc c v v f(v)

46 Fonction déchec P = {abbac, ac, bacd, ababc} abbac cdba abc c vv s=f(v) t=f(s)

47 Algorithmes

48 Exemple P = {potato, pot, tatter, at} T = p o t a t a t t e r

49 Complexité Optimisation: Fonction op (pour output) Pour tout nœud v, C v chemin, possiblement vide, déterminé par les sommets f(v), f(f(v)),… autres que la racine. op(v) : Premier nœud terminal de C v, sil y a lieu. Alors, dans lalgo, remplacer f à la ligne (9) par op. Complexité: – Fonctions f et op calculées en temps O(m) – O(n) comparaisons et O(k) parcours des liens op, où k est le nb doccurrences des mots de P dans T Parcours de T en O(n+k)


Télécharger ppt "Recherche exacte de motifs Nadia El-Mabrouk. Problème Recherche exacte dun seul motif : Alphabet T = t 1 t 2 … t n : Texte de taille n P = p 1 p 2 … p."

Présentations similaires


Annonces Google