660 likes | 791 Views
Alignement de séquences biologiques. Nadia El- Mabrouk. Inspiré de: An introduction de Bioinformatics Algorithms – www.bioalgorithms.info Neil C. Jones and Pavel A. Pevzner. Motivation.
E N D
Alignement de séquencesbiologiques Nadia El-Mabrouk Inspiré de: An introduction de Bioinformatics Algorithms – www.bioalgorithms.info Neil C. Jones and Pavel A. Pevzner
Motivation • Identification des gènes: Est-ce qu’un ORF est un gène? S’il existe un gène similaire dans un autre organisme, alors de forte chance que l’ORF représente un gène. • Déduire la fonctionnalité d’un gène grâce à sa similarité avec un gène de fonction connue. • Regrouper les gènes en familles d’homologues. • Étudier l’évolution des espèces...
Alignement global/ local - Recherche • Alignment Global • Alignement local— trouver des régionsconservées • Recherche– trouver la position d’un gène --T—-CC-C-AGT—-TATGT-CAGGGGACACG—A-GCATGCAGA-GAC | || | || | | | ||| || | | | | |||| | AATTGCCGCC-GTCGT-T-TTCAG----CA-GTTATG—T-CAGAT--C tccCAGTTATGTCAGgggacacgagcatgcagagac |||||||||||| aattgccgccgtcgttttcagCAGTTATGTCAGatc tcccagtTATGTCAGGggacacgagcatgcagagac ||| ||||| TAT-TCAGG
Exemple • Un alignement de séquence réalisé par ClustalW entre deux protéines humaines. http://fr.wikipedia.org/wiki/Alignement_de_s%C3%A9quences
Modèle sous-jacent: mutations ponctuelles Exemple: Substitution de caractères Séquenceancestraleinconnue ACG G C G I I A C G A G ACG GCG X Y Séquencesobservées Séquencesobservées
T A G T C C A T T G A A T C G Alignement global 2 séquencesvet w: v : m = 8 w : n = 7 Alignement: matrice 2 * k( k > m, n ) v -- T G A T -- C T G A w C -- -- T G C A T A -- 1 mismatch 4 matches 2 insertions 3deletions An introduction de Bioinformatics Algorithms – www.bioalgorithms.info
T A T G C C T A G T A A T C G Alignement global v : m = 8 Un alignement de v et w est une matrice A de 2 lignes et k colonnes, avec k ≥ max (n,m) telle que • Pour tous 1 ≤i ≤2et 1 ≤j ≤k, A[i,j] est dans {A,C,G,T,-}; • v (respectivement w) est obtenu en concaténant, dans l’ordre, les lettres {A,C,G,T} de la 1ère (respec. la 2ème) ligne de A; • Il n’existe aucune colonne j telle que A[1,j]=A[2,j]=“-”. w : n = 7
A T A T A T A T T A T A T A T A Alignement sans indels- Distance de Hamming Deuxséquences d’ ADN vet w : v : w: • Distance de Hamming : dH(v, w) = 8 • C’est beaucoup, bienque les séquencessoienttrèssimilaires. An introduction de Bioinformatics Algorithms – www.bioalgorithms.info
A T A T A T A T T A T A T A T A Alignement avec indels Endécalantd’uneseule position: v : -- w: -- • La distance d’éditionou de Levenshtein(1966) • D(v, w) = 2. • D(v, w) = MIN d’opérationélémentaires pour transformer v en w An introduction de Bioinformatics Algorithms – www.bioalgorithms.info
Distance d’édition versus Hamming Dist. de Hamming compare toujours i-èmelettre de vet i-èmelettre de w V = ATATATAT W= TATATATA Dist. de Hamming: D(v, w)=8 Calculer distance de Hamming:trivial.
Distance d’édition versus Hamming Dist. d’édition peut comparer i-èmelettreof vet j-èmelettre de w Dist. de Hamming compare toujours i-èmelettre de vet i-èmelettre de w V = - ATATATAT V = ATATATAT Un seul shift et tout s’aligne W= TATATATA W = TATATATA - Dist. de Hamming: Distance d’Édition: D(v, w)=8D(v, w)=2 Calculer Hamming distance Calculer dist. d’édition tâchetrivialetâchenon-triviale Comment trouverqueljva avec queli???
Plus longue sous-séquence commune(LCS)–Alignement ignorant les Mismatches • Étantdonnédeux mots • v = v1v2…vmet w = w1w2…wn • LCS de vet w: séquence de positions dans • v: 1 < i1 < i2 < … < it< m • et dans • w: 1 < j1 < j2 < … < jt< n • telque la iklettre de vestégale à la jklettre de wpour tout 1 ≤ k ≤ t, et testmaximal
0 1 2 2 3 3 4 5 6 7 8 0 0 1 2 3 4 5 5 6 6 7 LCS: Exemple j : v A T -- C -- T G A T C w -- T G C A T -- A -- C i: (0,0) (1,0) (2,1) (2,2) (3,3) (3,4) (4,5) (5,5) (6,6) (7,6) (8,7) positions dansv: 2 < 3 < 4 < 6 < 8 Matches enrouge positions dansw: 1 < 3 < 5 < 6 < 7 Chemindansune grille 2D: Graphed’édition
0 1 2 2 3 3 4 5 6 7 8 0 0 1 2 3 4 5 5 6 6 7 j : v A T -- C -- T G A T C w -- T G C A T -- A -- C i : A T C T G A T C j 0 1 2 3 4 5 6 7 8 i 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
A T -- C -- T G A T C -- T G C A T -- A -- C A T C T G A T C j 0 1 2 3 4 5 6 7 8 i 0 LCS: Trouver un chemin avec un maximum d’arêtes diagonales. T 1 G 2 C 3 A 4 T 5 A 6 C 7
Comment calculer LCS (v,w)? Pour chaquespréfixes: v[1,i] = v1… vide v et w[1,j] =w1… wjde w On considère le dernier caractère de vi et wj . 3 caspossibles • vi et wjsontalignés lcs(v[1,i] ,w[1,j]) = lcs(v[1,i-1], w[1,j-1]) +1 • vin’est pas aligné lcs(v[1,i],w[1,j]) = lcs(v[1,i-1], w[1,j]) • wjn’est pas aligné lcs(v[1,i],w[1,j]) = lcs(v[1,i], w[1,j-1])
lcs (i-1,j) lcs (i,j-1) lcs (i-1, j-1) + 1sivi = wj max lcs (i,j) = Programmationdynamique! Pour résoudre un problème (ici lcs(v,w)),on a besoin de résoudre tous les sous-problèmes (ici lcs(v[1,i] ,w[1,j]) pour tous les i et j). Pour simplifier, notons lcs(i,j) au lieu de lcs(v[1,i] ,w[1,j]) Conditions initiales: lcs (i,0) =lcs (0,j) =0
Graphed’édition/Table de programmationdynamique A T C T G A T C j 0 1 2 3 4 5 6 7 8 i 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 (i-1,j) (i-1,j-1) C 3 +1 +0 A (i,j-1) (i,j) +0 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
Graphed’édition/Table de programmationdynamique j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
A T -- C -- T G A T C -- T G C A T -- A -- C j A T C T G A T C i 0 1 4 6 7 2 3 5 8 0 T 1 G 2 C 3 A 4 T 5 A 6 C 7
A T G T C C T A G T A A T C G Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] j=7 v : m = 8 w : n = 7 i=6
T A T G C C T A T G A A T Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Vjestimpliquédans un indel: j=7 v : w : i=6
A T G T C C T A G T A A T - Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Vjestimpliquédans un indel: j-1=6 [ ] v : w : i=6
T A T G C C T A T G A A T Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Wiestimpliquédans un indel: v : w : j=7 i=6
- T A T G C C T A T G A T A Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Wiestimpliquédans un indel: v : w : j=7 [ ] i-1=5
T A T G C C T A T G A A T Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Vi et Wisontalignés: v : w : j=7 i=6
A T G T C C T A G T A A T Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,j] et w[1,i] • 3 caspossibles: • Vi et Wisontalignés: v : w : j-1=6 [ ] i-1=5
D (i-1,j) +1 D (i,j-1)+1 D (i-1, j-1) + 1sivi≠ wj D (i-1, j-1) sivi = wj D (i,j) = max Distance d’édition • D(i,j) = MIN d’erreurs (substitutions, insersions, suppressions) entre v[1,i] et w[1,j] Conditions initiales: D (i,0) =i; D(0,j) =j
G T C A G G T C 1 2 2 3 4 5 6 A 2 2 3 2 3 4 5 3 2 3 3 3 4 4 T A 4 3 3 3 4 4 5 4 4 4 4 3 4 5 5 4 5 5 4 4 4 6 5 5 6 5 4 5 C - A G T T - C A A G G T - G G - T
distEdit(v,w) fori 1 to n D(i,0) i for j 1 to m D(0,j) j fori 1 to n forj 1 to m D(i-1,j) +1 D(i,j) max D(i,j-1)+1 D(i-1, j-1) if vi = wj D(i-1, j-1) + 1, if vi≠ wj “ “ ifD(i,j)= D(i-1,j) bi,j “ “ ifD(i,j)= D(i,j-1) “ “ otherwise return (D(n,m), b) Algorithme { { {
Complexité • Temps constant pour chaquechaquei,javec 1≤i≤n et 1≤j ≤m • Temps proportionnel à O(nm) pour remplire la table de nlignes et mcolonnes. • Complexitéenespace: égalementO(nm).
Distance d’édition avec pondération des opérations • On peutassocier un score à chaqueopération: • d pour une insertion/délétion • r pour une substitution • e pour un match • d>0, r>0 et e≥0. Engénérale=0. • Il fautque r<2d, sinonjamais de substitutions. • Relations de récurrence: D(i,0) = i x d; D(0,j) = j x d D(i,j) = min [D(i,j-1)+d, D(i-1,j)+d, D(i-1,j-1)+p(i,j)] où p(i,j) = e si vi = wj et p(i,j) =r sinon.
Distance d’éditiongénéralisée • Le score d dépend des caractères. Par exemple, remplacer une purine par une pyrimidine plus coûteux que remplacer une purine par une purine • Relations de récurrence: D(i,0) = S1≤k≤id(vi ,-); D(0,j) = S1≤k ≤jd(-,wj) D(i,j) = min [D(i,j-1)+ d(-,wj), D(i-1,j)+d(vi ,-), D(i-1,j-1)+d(vi ,wj)] • Si d est une distance, alors D est une distance (séparation, symétrie et inégalité triangulaire)
Similarité entre deuxséquences • Plutôt que de mesurer la différence entre deux séquences, mesurer leur degré de similarité • P(a,b): score de l’appariement (a,b): Positif si a=b et ≤0 sinon. V(i,j): valeur de l’alignement optimal de v[1,i] et w[1,j] • Relations de récurrence: V(i,0) = S1≤k ≤iP(vi ,-); V(0,j) = S1≤k ≤jP(-,wj) V(i,j) = max [V(i,j-1)+P(-,wj), V(i-1,j)+P(vi ,-), V(i-1,j-1)+P(vi ,wj)] • Ça s’appelle: Algorithme de Needleman-Wunch.
Score simple • Lorsque mismatches pénalisés par –μ, indels pénalisés by –σ, et matches gratifiés d’un +Ɛ, le score d’un alignement est: Ɛ(#matches) – μ(#mismatches) – σ (#indels) • Exemple: Ɛ =2; μ = σ = 1; v -- T G A T -- C T G A w C -- -- T G C A T A -- 1 mismatch 4 matches 2 insertions 3deletions Score = 2x4-1x6=2
Alignement local: Algorithme de Smith-Waterman • Alignement global: Plus long chemin entre (0,0) et (n,m). • Alignement local: Plus long chemin entre n’importe quelles arêtes (i,j) et (i’, j’) du graphe d’édition. • Quelle mesure de distance/similarité? • Distance d’édition: Alignement vide! Pas de sens. • Mesure de similaritéavec scores négatifs
Alignement local: Exemple Input : Deux séquences v, w et une matrice de scores de similarité d. Output : Trouver deux facteurs de v et w dont le score de similarité est maximal parmi tous les facteurs possibles. Local alignment Global alignment
Pourquoi faire de l’alignement local? • Deux gènes dans deux espèces peuvent être similaires sur de courtes régions, mais dissimilaires dans l’ensemble. • Exemple: • Les gènes Homeobox ont une courte région appelée « homeodomain » très conservées. • Un alignement global ne trouverait pas cette région.
Solution directe En temps O(n4): Il y a n x n arêtes dans le graphe d’éditions n2 arêtes sources et n2arêtes cible. Calculer la valeur de similarité maximale d’un chemin prend un temps O(n2). Local alignment Global alignment
Solution directe En temps O(n4): Il y a n x n arêtes dans le graphe d’éditions n2 arêtes sources et n2arêtes cible. Calculer la valeur de similarité maximale d’un chemin prend un temps O(n2).
Solution: Parcours gratuits Yeah, a free ride! Vertex (0,0) The dashed edges represent the free rides from (0,0) to every other node. An introduction de Bioinformatics Algorithms – www.bioalgorithms.info
Seulesdifférences avec l’alignement global. Réinitialisation à 0. Possibilitéd’arrivée à chaque arête par un parcoursgratuit! Alignement local: Récurrences • La plus grandevaleurV(i,j)est le score du meilleuralignement local. • Récurrences: V(i,0) = V(0,j) = 0 0 V(i,j) = max V(i-1,j-1) + δ(vi , wj) V(i-1,j) + δ(vi , -) V(i,j-1) + δ(-, wj) {