Alignement multiple de séquences Thierry Lecroq Université de Rouen
Problème Aligner k séquences x 0, x 1,, x k-1 de manière optimale. 2
Interêts biologiques Inférer des relations d évolution d entre espèces Déduire des similarités s de fonction ou de structure entre des séquences s de nucléotides ou d acides aminés Trouver des caractéristiques ristiques communes à une famille de protéines ou de séquences s d ARN. d 3
Représentation de familles de séquences Séquence consensus : séquence s de longueur n contenant, à chaque position, le symbole le plus fréquent à la même m me position dans l alignementl Matrice consensus : matrice card A n contenant la fréquence d apparition d de chaque symbole à chaque position de l alignementl Motif : expression rationnelle décrivant d l ensemblel des séquences s ou une partie particulièrement rement conservée 4
Matrice consensus alignement a c g t a c a c t a g g c g c c g a c g C 0 0,75 0 0,25 C 1 0 0,75 0,25 C 2 0,25 0 0,5 C 3 0 0,75 0 C 4 0 0 0,25 t 0 0 0 0 0,5-0 0 0,25 0,25 0,25 5
Alignement d une séquence avec une matrice consensus Généralisation de l alignement l de 2 séquencess Exemple a a c - c g C 0 - C 1 C 2 C 3 C 4 6
Soient Sub une matrice de substitution et M une matrice consensus. Le score de l appariement l entre le symbole x[i] de la séquence s x et de la colonne C j de la matrice M est : score(x[i], ],C j ) = Σ Sub(x[i], ],a) M(a,C j ) a 7
La valeur d un d alignement est alors égal à la somme des scores des appariements : T(x,M) ) = Σ score(x[i], ],C j ) i,j 8
Exemple Sub a c g t - M C 0 C 1 C 2 C 3 C 4 a 2-3 -1-3 -1 a 0.75 0 0,25 0 0 c -3 2-3 -1-1 c 0 0,75 0 0,75 0 g -1-3 2-3 -1 g 0,25 0,25 0,5 0 0,25 t -3-1 -3 2-1 t 0 0 0 0 0,5 - -1-1 -1-1 0-0 0 0,25 0,25 0,25 9
a a c - c g C 0 - C 1 C 2 C 3 C 4 10
Programmation dynamique T(i,j) ) = valeur de l alignement l optimal entre x[0.. [0..i]] et C[0.. [0..j]] : T(i,-1) = Σ score(x[k], ],-) T(-1, (-1,j)) = Σ score(-,c k ) T(i-1, -1,j-1)-1) + score(x[i], ],C j ) T(i,j) ) = max T(i-1, -1,j)) + score(x[i], ],-) T(i,j-1) + score(-,c j ) 11
Complexité calcul d une d case de la table de programmation dynamique (hors initialisations marginales) : O(card A) calcul de la table : O(card A x n) 12
Score SP Étant donné un alignement multiple A, l alignement induit pour deux séquences s x i et x j est la restriction de l alignement l à ces 2 séquences. Les appariements de 2 sont ignorés. 13
Fonction de score SP SP : sum of pairs Le score d un d alignement A est la somme des scores des alignements induits pour toutes les paires de séquences. s 14
Exemple x 1 x 2 x 3 a a g a a a a t a a t g c t g g g En considérant la distance d édition d dition : d(x 1,x 2 ) = 4, d(x 1,x 3 ) = 5, d(x 2,x 3 ) = 5 donc SP(A) ) = 14 15
Complexité Pb : étant donné k séquences, trouver un alignement multiple avec un score SP minimal. Il a été prouvé que ce problème est NP-dur. Généralisation de l algorithme l de programmation dynamique pour l alignement l de 2 séquences s : avec k séquences de longueur commune n,, algorithme en O(n k ) : inapplicable dès d s que k > 5 et n 100. 16
Heuristique pour l alignement multiple avec score SP But : produire un «bon» alignement multiple en temps polynomial. Bon alignement : indiquer le taux d erreur d avec un alignement optimal. 17
Soit X un ensemble de séquences s et T un arbre dont chaque nœud n est étiqueté par une séquences de X. Un alignement A de X est dit consistant avec T si, pour tout couple de séquences s (x( i,x j ) reliées es par une arête de T,, l alignement l induit pour (x( i,x j ) a un score optimal. 18
Alignement consistant avec un arbre La notion d alignement d consistant est très s liée à l arbre considéré. Deux séquences s non adjacentes ont, en général, g un score induit supérieur à d(x i,x j ). Théor orème Un alignement A de X consistant avec un arbre T peut être produit en temps polynomial. 19
Méthode Étape 0 Choisir 2 séquences s quelconques adjacentes dans l arbre et former un alignement de score d(x i,x j ). Étape 1 Choisir une séquence s x non encore alignée, adjacente à une séquence s x i déjà alignée. Soit x i la séquence s correspondant à x i dans l alignement (avec des -). 20
Étape 1 (suite) Former un alignement optimal entre x et x i, avec la règle r supplémentaire qu un un appariement formé de deux trous a un score nul. Soit x la séquence s correspondant à x dans l alignement de x avec x i. 21
Étape 1 (suite) Si aucun nouveau trou n est n inséré dans x i alors rajouter x à l alignement déjà d existant. Si un ou plusieurs trous ont été rajoutés s aux positions j dans x i alors rajouter des trous aux positions j dans toutes les séquences s de l alignement. l Répéter l étape l 1 jusqu à ce que l alignement l contienne toutes les séquences s de X. 22
Complexité On calcule k-1 alignements optimaux de 2 séquences. Si les séquences s sont de longueur m : O(km²) 23
Alignement SP par la méthode de «l étoile centrale» Séquence centrale Une séquence s x c X est dite centrale si la valeur M = Σ i d(x c,x i ) est minimale parmi toutes les séquences de X. 24
Arbre étoile (center star) Arbre T c de k nœuds, chaque nœud n est étiqueté par une séquence s distincte de X,, la racine de l arbre est x c, et toutes les arêtes de T c sont adjacentes à x c. x 1 x 0 x 3 Exemple X = { x 0, x 1, x 2, x 3, x 4, x 5 } x 2 x 4 x 5 25
Notations A c : alignement consistant avec T c s(x i,x j ) : valeur de l alignement l de x i et x j induit par l alignement A c (s(x i,x j ) d(x i,x j ) et s(x c,x i ) = d(x c,x i )) s(a) ) : valeur de l alignement l A (s(a c ) = Σs(x i,x j )) A* * : un alignement optimal de X d*( *(x i,x j ) : valeur de l alignement l de x i et x j induit par l alignement A* * (d(a*)( = Σd (x i,x j )) On suppose que d vérifie l inl inégalité triangulaire 26
On veut montrer que s(a c ) est inférieur au double de la valeur d un d alignement optimal : s(a c ) 2s(A*) 27
Lemme 1 s(x i,x j ) s(x i,x c ) + s(x c,x j ). Preuve s(x i,x j ) s(x i,x c ) + s(x c,x j ) = d(x i,x c ) + d(x c,x j ) d(x i,x j ) par l inl inégalité triangulaire. 28
Théor orème 2 s(a c )/s(a*) 2(k-1)/ -1)/k < 2. Pour k = 3 : s(a c ) 4/3 s(a*) Pour k = 6 : s(a c ) 1,666 s(a*) 29
Complexité Trouver la séquence s centrale : O(k²m²) Produire un alignement A c consistant avec T c : O(km²) 30
Programmation dynamique avec scrutage en avant Pour l alignement l de 2 séquencess : dès d s que T(i,j) ) est calculé,, les valeurs de T(i,j+1), T(i+1,j) ) et T(i+1,j+1) sont mises à jour. Graphe d éditiond dition : les sommets du graphe sont toutes les paires (i,j( i,j). Les arcs relient (i,j( i,j) à (i,j+1), (i+1,( +1,j) ) et (i+1,j+1). Le poids p(v,w) ) d un d arc (v,w)( ) est le coût t de l opération d édition d dition (insertion, suppression ou substitution) qui fait passer de v à w. 31
Notons r(w) ) la valeur provisoire de T(w). Après s le calcul de T(v) ) on met à jour r(w) ) avec min{ r(w), T(v) ) + p(v,w) ) }. La valeur T(w) ) est la valeur r(w) ) obtenue après que tous les voisins de w aient été considérés. s. 32
algo Carillo-Lipman(x,m,y,n x,m,y,n) f ENFILER(f,, (0,0)) tantque f faire (i,j) DÉFILER( FILER(f) T(i,j) r(i,j) si j+1 < n alors ENFILER(f,, (i,j( i,j+1)) r(i,j+1) min { r(i,j+1), T(i,j) ) + Ins(y[j]) } si i+1 < m alors ENFILER(f,, (i+1( +1,j)) r(i+1,j) min { r(i+1,j), T(i,j) ) + Sup(x[i]) } si i+1 < m et j+1 < n alors ENFILER(f,, (i+1( +1,j+1)) r(i+1,j+1) min { r(i+1,j+1), T(i,j) ) + Sub(x[i], ],y[j])]) } 33
Pour 3 séquences s x, y et z de longueur n,, le graphe d édition dition a n 3 sommets et 7n7 3 arcs. On veut éviter un certain nombre d opd opérations par case, et surtout, éviter de considérer toutes les cases. On note d xy (i,j)) la valeur de l alignement l optimal de x[i....n-1] et y[j....n-1]. On définit d de façon analogue d xz (i, i,l) ) et d yz (j,l). Toutes ces valeurs peuvent être calculées en O(n²). 34
Le score SP pour les séquences s x[i....n-1], y[j....n-1] et z[l....n-1] est inférieur à d xy (i,j)+d xz (i, i,l)+ )+d yz (j, j,l). Supposons que l on l connaisse la valeur t d un alignement multiple «suffisamment bon» (par exemple, l alignement A c consistant avec l arbre l étoile). Observation clef : pour une case (i,j,( i,j,l), si T(i,j, i,j,l)+ )+d xy (i,j)+d xz (i, i,l)+ )+d yz (j, j,l) ) > t alors (i,j,( i,j,l) ) ne peut appartenir à aucun chemin optimal. 35
Aucun scrutage en avant n est n nécessaire n pour une telle case. Plus important, certaines cases ne sont jamais introduites dans la file f,, et ne sont donc jamais considérées. Cet algorithme réduit r considérablement le nombre de cases à considérer. 36
Séquences consensus Mot de Steiner Étant donné un ensemble X de k séquences et une autre séquence s y (appartenant ou non à X), l erreur consensus de y relativement à X est la valeur E X (y)) = Σ i d(x i,y). Un mot de Steiner est un mot s* qui minimise la valeur E X (s* s*). 37
Un mot de Steiner reflète les caractéristiques ristiques communes aux séquences s de X : séquences consensus. Il n y n y a pas de méthode m exacte de calcul du mot de Steiner mais il existe des méthodesm d approximation. 38
Lemme 2 Il existe x X tel que E(x)/ )/E(s*) 2 2/k < 2. Théor orème 3 E(x c )/E(s*) 2-2/k. Preuve Lemme 2 et E(x c ) = Σ d(x c,x i ) E(y) ) par définition de x c. 39
Étant donné un alignement A de X,, le caractère re consensus de A à la colonne j est le caractère re a qui minimise la somme des distances de a à chaque caractère re de la colonne. On note g(j) cette somme minimale à la colonne j. La séquence s consensus de A est la séquence s x A obtenue en concaténant nant les caractères res consensus de chaque colonne de A. 40
Pour la distance d édition, d dition, le caractère re consensus est le caractère re le plus fréquent de la colonne (peut être un trou). Une façon naturelle d évaluer d la pertinence d und alignement A est de considérer sa séquences consensus x A et de calculer l erreur l consensus Σ i d(x A,x i ). Erreur d alignement d de x A = Σ j g(j). 41
Alignement multiple optimal relativement à la séquence consensus : alignement A dont la séquence consensus présente une erreur d alignement minimale. 42
Méthode itérative À chaque étape, on rajoute de nouvelles séquences à l alignement courant : on crée e un nouvel alignement en fusionnant 2 alignements de sous-ensembles X 1 et X 2 de X. La différence entre les méthodes m dépend d de l ordre d insertion d des séquences, s et de la façon d effectuer l alignement. l 43
Exemple Calculer tous les alignements 2 à 2 Choisir l alignement l formé des 2 séquencess dont la distance d édition d dition est minimale À chaque étape, choisir la séquence s (non encore alignée) dont la distance d édition d dition avec une des séquences s de l alignement l courant est minimale Rajouter cette séquence s à l alignement 44
Cette méthode m peut être vue comme un alignement consistant avec un arbre de recouvrement minimal (minimal spanning tree,, arbre formé du sous-ensemble d arcs le moins coûteux maintenant une seule composante connexe). Il y a plusieurs arbres de recouvrement possibles donc plusieurs alignements. Prim ou Kruskal 45
Clustering Cette méthode m d alignement d multiple est très s liée à la façon de choisir les alignements à fusionner. Dans quel ordre choisir les sous-alignements pour former des alignements plus grands? Les méthodes classiques de clustering sont toutes utiles pour résoudre r un tel problème. La méthodem à utiliser dépend d des données biologiques. 46
Variantes Plutôt t que de se baser sur l alignement l de 2 séquences, considérer la distance d éditiond dition «moyenne» avec toutes les séquences s des alignements. Par exemple, aligner deux matrices consensus. Si plus de temps de calcul est permis, commencer par calculer les distances 2 à 2 entre tous les alignements déjà d obtenus et garder le meilleur. 47
CLUSTALW (Thompson, Higgins & Gibson 1994) Calcul des scores d alignement d de chaque paire de séquences. s Convertir les scores d alignement d en distance d évolution d en utilisant le modèle de Kimura. Construire un arbre par une méthode m de distance «Neighbour-Joining». Utiliser cet arbre pour choisir les séquences s à incorporer dans l alignement multiple. Choisir les plus petites distances à chaque étape. L algorithme L effectue trois types différents d alignement : entre 2 séquences, s entre une séquence s et une matrice consensus ou entre 2 matrices consensus. 48
La matrice de substitution est choisie en fonction de la similarité entre les séquences s comparées : séquences très s proches : BLOSUM80 séquences éloignées : BLOSUM50 Différents scores pour les brèches, selon le type des résidus r supprimés s et la position des brèches. 49
Algorithme de Barton-Stenberg Problème des méthodes m décritesd : l alignementl produit est directement lié aux séquencess choisies. Les alignements partiels obtenus ne sont jamais modifiés. Amélioration : après s avoir obtenu un premier alignement multiple, retirer certaines séquencess de l alignement l et les réaligner r avec la matrice consensus de l alignement l multiple restant. 50
L algorithme Calculer tous les alignements 2 à 2 Choisir l alignement l de score maximal. Considérer la matrice consensus de l alignement l obtenu. À chaque étape, choisir une paire de séquences s x i et x j de score maximal, où o une seule des 2 séquences s est dans l alignement l courant. Aligner la nouvelle séquence avec la matrice consensus de l alignementl courant. Mettre à jour la matrice consensus. Recommencer cette étape jusqu à ce que toutes les séquences soient dans l alignement. l 51
L algorithme (suite) Retirer la séquence s x 0 et la réaligner r avec la matrice consensus de l alignement l restant. Recommencer cette étape avec toutes les autres séquences s x 1,x 2,,x k-1. Répéter le processus un nombre fixé de fois ou jusqu à ce que le score de l alignementl converge. 52
Calcul des scores Pour chaque paire de séquences, s les symboles sont permutés s aléatoirement, atoirement, les séquences s ainsi obtenues sont alignées, et le score (similarité) ) d alignement d est calculé. Effectuer le processus précédant une centaine de fois par paire de séquences s et calculer moyenne et déviation. Score sd(x i,x j ) : score d alignement d des 2 séquencess divisé par la déviation d calculée e pour les 2 séquences. s 53
Intuitivement, si x i et x j contiennent des structures non-aléatoires atoires liées à la fonction de la protéine, alors le score d alignement d de x i et x j doit être beaucoup plus grand que celui des permutations de x i et x j. Il a été empiriquement démontrd montré que ce score est une bonne mesure de la qualité de l alignement. l 54
Alignement par points d ancrage Basée e sur la recherche de motifs communs aux séquences. 55
Rechercher un motif commun à l ensemble ou une partie des séquences s (suffisamment long et fréquent) Décaler les séquences s de telle sorte à aligner les occurrences du motif Le problème est alors subdivisé en 2 sous-problèmes : aligner l ensemble l des préfixes des séquences s à gauche du motif d un d côté c et l ensemble l des suffixes des séquences s à droite du motif 56
Recommencer récursivement r avec chacun des 2 sous- problèmes Les séquences s ne contenant pas le motif sont alignées sépars parément, par une méthode m utilisant le score SP et les 2 alignements ainsi obtenus sont ensuite fusionnés Lorsque les séquences s ne contiennent plus de «bons» motifs, elles sont alignées par une méthodem utilisant le score SP. 57
Plusieurs méthodes m existent pour la recherche (extraction) exacte ou approchée e de motifs. L utilisation des arbres de suffixes est fréquente. 58