35
Algorithmes de filtrage Nadia El-Mabrouk

Algorithmes de filtrage

  • Upload
    teige

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

Algorithmes de filtrage. Nadia El- Mabrouk. Plan. Introduction Objectif Qu’est-ce qu’une heuristique ? Algorithmes de filtrage : Principe et méthode exacte ( Baeza -Yates- Perlberg , 1992 ) Heuristique FASTA Optimisation possible en introduisant le voisinage d’un k- mer - PowerPoint PPT Presentation

Citation preview

Page 1: Algorithmes de filtrage

Algorithmes de filtrage

Nadia El-Mabrouk

Page 2: Algorithmes de filtrage

Plan1. Introduction

– Objectif– Qu’est-ce qu’une heuristique?

2. Algorithmes de filtrage: Principe et méthode exacte (Baeza-Yates-Perlberg, 1992)

3. Heuristique FASTA4. Optimisation possible en introduisant le voisinage

d’un k-mer5. Heuristique BLAST6. Graines espassées. Méthode de PatternHunter7. Alignement de génomes entiers

Page 3: Algorithmes de filtrage

1. IntroductionRecherche de P de taille m dans T de taille n à d

erreurs près

Programmation dynamique: Temps O(mn)

Différentes améliorations: Temps O(dn)

Est-ce qu’on peut faire mieux? Temps sous-linéaire?

Page 4: Algorithmes de filtrage

Heuristique ou méthode exacte?

• Heuristique pour la recherche d’un motif: méthode permettant de trouver la « plupart » des occurrences, mais pas de garantie de les trouver toutes, et peut se tromper.– Faux-négatifs: Occurrences non détectées.– Faux-positifs: Motifs trouvés qui ne sont pas des

occurrences.

Page 5: Algorithmes de filtrage

Heuristique

• Sélectivité (spécificité): Capacité à ne détecter que la réalité biologique et rien de plus.Problème des Faux-Positifs

• Sensibilité: Capacité à détecter tout ce qui est intéressant sur le plan biologique.Problème des Faux-Négatifs

Page 6: Algorithmes de filtrage

2. Algorithmes de filtrage Effectuer un premier passage sur T pour éliminer toutes les

parties qui ne sont pas susceptibles de contenir P.

• Partitionner P (ou T) en facteurs de taille k (k-mers, seeds ou graines). Construire un index de ces facteurs.

• Phase de recherche: Utiliser une méthode de recherche exacte pour trouver toutes les occurrences de ces facteurs dans T, en temps (sous) linéaire

• Phase de vérification: Utiliser une méthode de recherche approchée dans un intervalle restreint autour de chaque facteur trouvé, en temps (sous) linéaire.

Page 7: Algorithmes de filtrage

Algorithmes de filtrage• Les k-mers définissent des ancrages dans la

table de programmation dynamique P = p1p2p3p4

p1

p2

p3

p4

T

P

Page 8: Algorithmes de filtrage

Algorithmes de filtrage• Les k-mers définissent des ancrages dans la

table de programmation dynamique P = p1p2p3p4

p1

p2

p3

p4

T

P

+/-d

Page 9: Algorithmes de filtrage

Une méthode exacte (Baeza-Yates-Perlberg, 1992)

• Partition de P en régions de taille k = ENT(m/d+1) d+1 régions de taille k, plus au plus une région de taille < k.

• Si le facteur T’ de T est une occurrence de P à d erreurs près, alors il existe au moins une région R de P et un facteur de même taille T’’ de T’ tel que R et T’’ coïncident exactement.

P:

T:T’’

R

T’

Page 10: Algorithmes de filtrage

Idée générale (Baeza-Yates-Perlberg, 1992)P: Ensemble des d+1 premières régions de P.

1. Construire un « index » de P.2. Trouver l’ensemble I des pos. des occurrences de P dans T.3. Étendre les occurrences par programmation dynamique.

• Construction d’un index possible en temps et espace O(m): Arbre des préfixes (Aho-Corasick), « trie structure».

• Recherche exacte possible en O(n)• Phase de vérification: O(hdm) où h=|I|.

O(m+n+hdm)

Page 11: Algorithmes de filtrage

3. Heuristique FASTA (Lipman, Pearson 1985)

• Taille de graine k fixée (en général 6 pour nuc., 2 pour AA)

• Indexer tous les facteurs de taille k de P (O(m))• Rechercher toutes les occurrences exactes de

ces facteurs de P dans T (O(m+n))• Chainer les graines pour former des

alignements complets~ temps proportionnel au nombre h de graines

Page 12: Algorithmes de filtrage

Heuristique FASTA (Lipman, Pearson 1985)1. Pour une valeur ktup donnée (en général 6 pour

nuc.2 pour AA), trouver toutes les paires de séquences de taille ktup identiques dans P et T: hot-spot

2. Déterminer des zones denses en identité: hot-spot consécutifs sur chaque diagonale. Score d’une zone:

1. Score positif pour chaque hot-spot2. Score négatif pour les espaces entre les hot-spotFASTA garde les 10 zones de score optimal. Zones

contenant des matchs et mismatchs

Page 13: Algorithmes de filtrage

3. Réaligner chaque zone, en considérant une matrice de substitution (PAM ou BLOSUM)

Init1: Meilleur alignement obtenu4. Parmi les 10 zones, garder celles dont le score dépasse

un seuil ``cut-off’’. Combiner les zones en une seule Initn: Contient insertions/suppressions/mismatchs5. Programmation dynamique dans une bande autour de

Init1 (bande de taille 16 si ktup=2) Opt: Meilleur alignement obtenu

Au cours de la recherche, statistiques calculées pour Init1, Initn, Opt: alignements significatifs ou non.

Page 14: Algorithmes de filtrage
Page 15: Algorithmes de filtrage

Taille des graines?• Complexité de l’heuristique de filtrage dominée par h: nombre

de graines.• Combien de graines attendues pour deux séquences aléatoires

sur un alphabet S?– Un mot de taille k a une probabilité de 1/|S|k d’apparition dans l’une

ou l’autre des séquences.h de l’ordre de nm |S|-k (4-knm dans le cas de séquences d’ADN)Complexité totale de l’heuristique de filtrage O(n+m+ |S|-kndm2)

• D’autant plus efficace que k est grand• Mais plus k est grand plus on a de chances de manquer des

occurrences.

Page 16: Algorithmes de filtrage

4. Voisinage d’un mot

• Plutôt que de rechercher les occurrences exactes des k-mers, rechercher un « voisinage » des k-mers: mots qui sont à moins de e% d’erreurs, ou à une distance ≤ d (d = e m)

Nd(w) = { v / v et w ont au plus d différences}

N1(abbaa) = { aabaa, aabbaa, abaa, abaaa, ababaa, abba, abbaa, abbab, abbaaa, abbaba, abbba, abbbaa, babbaa, bbaa, bbbaa}

(1-match ou 20%-match)

Page 17: Algorithmes de filtrage

Puissance du voisinage• Supposons que l’on cherche un 3-match d’un mot P

de taille 40.• Si on choisit k=10 et qu’on divise P en 4 10-mers,

alors au moins un doit matcher exactement.=> Occurrence tous les |S|10/4 caractères (e.g. 2.5 10⋅ 5

pour les nucléotides)

P:

T:

Page 18: Algorithmes de filtrage

Puissance du voisinage• Supposons que l’on cherche un 3-match d’un mot P

de taille 40.• Si on choisit k=20 et qu’on divise P en 2 20-mers,

alors au moins un 1-voisin des deux doit matcher.=> Occurrence tous les |S|20/2|N1(20)| caractères (e.g. 1012 / 2 160 = 3.12 10⋅ ⋅ 9 pour les nuc.)

N1 (P):

T:

10,000 fois plus spécifique ! (mais beaucoup plus demots pour la recherche exacte)

Page 19: Algorithmes de filtrage

5. BLAST• Recherche exacte sur un voisinage des k-mers• Distance Hamming pondérée (e.g. PAM120)• Extension: stop quand le score chute sous une

valeur seuil.• BLAST est une heuristique

“BLAST” = Basic Local Alignment Search Tool

Page 20: Algorithmes de filtrage

BLAST Former la liste de tous les k-mers (seeds ou graines) de la séquence requête P

P

Maximum l-k+1 mots

Pour chaque facteur w, former la liste de tous les mots de taille k dont le score avec w dépasse un seuil s

Exemple: Pour w =PQG, {PQG, PRG, PKG, PDG, PMG…}

Page 21: Algorithmes de filtrage

• Identifier les occurrences exactes des mots de la liste dans la BD

• Pour chaque paire de séquences trouvées, étendre l’alignement dans les deux directions, jusqu’à ce que le score de l’alignement chute de X par rapport à sa valeur d’origine. Segment accepté si score>S

Page 22: Algorithmes de filtrage

• Le HSP de score maximal sur l’ensemble de la séquence est appelé Maximal Scoring segment Pair (MSP)

• Les alignements locaux HSP sont chaînés pour former des alignements plus longs, incluant des espaces et des trous.

Si le MSP ou les HSP combinés ont un score qui dépasse un certain seuil S, il sont affichés

Page 23: Algorithmes de filtrage

Paramètres• La séquence format FASTA• La banque (compressée)• k (taille du mot).

– Protéines: k de 3 à 5, et s = 17Donne à peu près 50 mots pour chaque facteur– Nucléotides: k = 11 ou 12

• S (seuil de sélection d’un score)• Matrices de substitution (BLOSUM 62) ou score

pour les nucléotides (+5/-4)

Page 24: Algorithmes de filtrage

Évaluation statistique

• Expect-value = nb de fois où un HSP est attendu par chance sur l’ensemble de la banque. Plus cette valeur est faible, plus le HSP est significatif

• P-value: P(N): Probabilité du score observé. Plus cette valeur est faible, plus le HSP est significatif.

Page 25: Algorithmes de filtrage

GCNTACACGTCACCATCTGTGCCACCACNCATGTCTCTAGTGATCCCTCATAAGTTCCAACAAAGTTTGC|| ||||| | ||| |||| || |||||||||||||||||| | |||||||| | | |||||GCCTACACACCGCCAGTTGTG-TTCCTGCTATGTCTCTAGTGATCCCTGAAAAGTTCCAGCGTATTTTGC

GAGTACTCAACACCAACATTGATGGGCAATGGAAAATAGCCTTCGCCATCACACCATTAAGGGTGA----|| ||||||||| |||||| | ||||| |||||||| ||| |||||||| | | | || GAATACTCAACAGCAACATCAACGGGCAGCAGAAAATAGGCTTTGCCATCACTGCCATTAAGGATGTGGG

------------------TGTTGAGGAAAGCAGACATTGACCTCACCGAGAGGGCAGGCGAGCTCAGGTA ||||||||||||| ||| ||||||||||| || ||||||| || |||| |TTGACAGTACACTCATAGTGTTGAGGAAAGCTGACGTTGACCTCACCAAGTGGGCAGGAGAACTCACTGA

GGATGAGGTGGAGCATATGATCACCATCATACAGAACTCAC-------CAAGATTCCAGACTGGTTCTTG||||||| |||| | | |||| ||||| || ||||| || |||||| |||||||||||||||GGATGAGATGGAACGTGTGATGACCATTATGCAGAATCCATGCCAGTACAAGATCCCAGACTGGTTCTTG

7. Graines espacéesBLAST trouve une graine de taille 11 qui match, puis étend

Page 26: Algorithmes de filtrage

Exemple d’une occurrence manquée (Exemple de B. Ma)

• Pas de graine de taille 11 qui match, pourtant similarité de 80%:

GAGTACTCAACACCAACATTAGTGGGCAATGGAAAAT|| ||||||||| |||||| | |||||| ||||||GAATACTCAACAGCAACATCAATGGGCAGCAGAAAAT

• Dilemme:– Sensibilité – nécessite des graines courtes

• Capacité à détecter les homologies– Rapidité – nécessite des graines plus longues

• Mega-BLAST utilise des graines de taille 28.

Page 27: Algorithmes de filtrage

PatternHunter utilise des “graines espacées”

• 111010010100110111 (appelé modèle)– 11 matchs requis (poids=11)– 7 positions “don’t care”

GAGTACTCAACACCAACATTAGTGGCAATGGAAAAT…|| ||||||||| ||||| || ||||| ||||||GAATACTCAACAGCAACACTAATGGCAGCAGAAAAT… 111010010100110111

• Hit = Tous les matchs requis sont satisfaits• Modèle de BLAST = 11111111111

Page 28: Algorithmes de filtrage

VI. Simulated sensitivity curves

Page 29: Algorithmes de filtrage

Pourquoi sensibilité meilleure?• Les copies ‘shiftées’ des graines espacées ne chevauchent pas

trop:

111010010100110111 11111111111 111010010100110111 11111111111 111010010100110111 11111111111 111010010100110111 11111111111 111010010100110111 ...... 111010010100110111

111010010100110111 ......

• Les ‘Hits’ à différentes positions sont plus indépendants• Plus les copies shiftées sont indépendantes, plus on augmente

la probabilité d’identifier une homologie. Moins il y a de similarités entre deux copies shiftées, plus le modèle est susceptible de donner une bonne sensibilité.

Page 30: Algorithmes de filtrage

VI. Pourquoi plus rapide avec des graines espacées?

TTGACCTCACC? |||||||||||? TTGACCTCACC? 11111111111 11111111111

CAA?A??A?C??TA?TGG?|||?|??|?|??||?|||?CAA?A??A?C??TA?TGG?111010010100110111 111010010100110111

Une homologie donne lieu à plusieurs ‘hits’ par BLAST (redondance)

Graines espacées donnent lieu à moins de ‘hits’ pour chaque homologie

Page 31: Algorithmes de filtrage

Observations (B. Ma)

• Dans une séquence cible de taille 64 qui contient 70% de similarité avec la séquence requête, et qui contient un hit de taille 11, la moyenne des hits dans cette région :– 2.0 pour la modèle PH (graine espacée)– 3.6 pour le modèle BLAST.

Page 32: Algorithmes de filtrage

Observations (B. Ma)• Des modèles différents peuvent détecter

différentes homologies• Deux conséquences:

– Certains modèles sont meilleurs que d’autres– On peut utiliser simultanément plusieurs modèles

de graines • Approcher les 100% de sensibilité.• PatternHunter II

Page 33: Algorithmes de filtrage

8. Alignement de génomes entiers• Comparaison de génomes entiers permet de:

– Identifier les séquences codantes dans les 2 espèces– Localiser les facteurs de transcription et les signaux de

régulation– Comprendre les mécanismes et l’histoire de l’évolution

génomique– Similarités et différences dans l’ordre des gènes

• Smith-Waterman, et même FASTA ou BLAST trop lents et pas adaptés à la comparaison de génomes entiers.

• Améliorer sensibilité et temps de calcul, sans empirer la sélectivité

Page 34: Algorithmes de filtrage

Alignement de l’homme et de la souris par BLASTZ (Schwartz et al. 2003)

1. Supprimer les répétitions propre à chaque espèce2. Trouver tous les 12-mers espacés identiques, à une ``transition’’ près,

dans les deux génomes. 1. Étendre chaque paire de 12-mers dans les deux directions (sans gaps),

jusqu’à ce que le score chute en dessous d’un certain seuil2. Si l’alignement (sans gaps) trouvé dépasse un seuil (disons 300)

1. Étendre l’alignement en autorisant les gaps (programmation dyn.)2. Garder l’alignement si le score dépasse un seuil (disons 5000)

3. Entre chaque paire d’alignements, refaire l’étape 2. avec des scores moins contraignants. Par exemple, 7-mers (match exact), seuils plus faibles (par exemple 2000 avec et sans gaps)

4. Rétablir les vraies positions des alignements trouvés (étape 1.)

Page 35: Algorithmes de filtrage

Paramètres utilisés

• Matrice de substitution:

• Gap de taille k pénalisé par un poids de 400+30k• Score d’un alignement multiplié par une valeur entre 0 et 1 en fonction

de la nature des séquences (biais des nucléotides)• Les seuils doivent être très élevés pour atteindre une spécificité

raisonnable (au moins 3000 pour les alignements avant gap)• 12-mers espacé (19 positions): 1110100110010101111 (Ma et.al 2002)• Autoriser une transition: (A-G, G-A, C-T, T-C)

A C G T A 91 -114 -31 -123 C -114 100 -125 -31 G -31 -125 -100 -114 T -123 -31 -114 91