Plan du cours
I. Introduction
II. Alignement global III. Alignement local
IV. Alignement avec trous;
V. Optimisation en espace: Algorithme de Hirschberg.
VI. Optimisation en temps
1
I. Introduction - Alignement de s´ equences
Alignement global: Deux s´ equences de prot´ eines appartenant ` a la mˆ eme famille, ´ etudes phylog´ en´ etiques
Seq1
Seq2
Alignement local: S´ equences de prot´ eines appartenant ` a des familles diff´ erentes, mais domaines communs (sous-unit´ es fonctionnelles conserv´ ees)
Seq1
Seq2
Recherche de motif:
Seq1
Seq2
3
Distance d’´ edition
Pour comparer deux s´ equences, d´ efinir une distance
Distance naturelle: compter le nombre d’insertions, suppressions et substitutions n´ ecessaires pour passer d’une s´ equence ` a l’autre.
Exemple: S
1= CAT AGT G et S
2= GT CAGGT .
S D M I M I M M D <---- Suite de transformations C A T A G T G M=match; S=substitution;
G T C A G G T I=Insertion; D=suppression
Distance d’´ edition ou de Levenshtein entre S et T : Nombre
minimal d’insertions, suppressions et substitutions n´ ecessaire pour transformer S en T (ou r´ eciproquement).
Une insertion/suppression est repr´ esent´ ee par un blanc ‘-’
C A T - A - G T G
G - T C A G G T -
Mod` ele sous-jacent: Mutations ponctuelles
Sequence ancestrale inconnue
sequences observees B
Exemple: Substitution de caracteres
A
G C G
A C G
G ACG
ACG
CG
A G
5
Programmation dynamique
Pour r´ edoudre un pb, commencer par r´ esoudre tous les sous-probl` emes. Pour ne pas calculer deux fois les mˆ emes sous-probl` emes, conserver les valeurs dans une table
S = s
1s
2· · · s
mde taille m et T = t
1t
2· · · t
nde taille n.
D(i, j): distance d’´ edition entre S[1..i] et T [1..j ]. D d´ efini une
matrice (m + 1) × (n + 1): Matrice de la programmation dynamique.
Exprimer D(i, j ) en fonction des valeurs de D pour des paires
d’index plus petits que (i, j ).
G T C A G G T
C A
G T A
T G
0 1 2 3 4 5 6 7
1 2 3 4 5 6 7
D
D(m,n) (i,j)
(i−1,j−1) (i−1,j)
(i,j−1)
T
S
7
Calculer D(i, j ) ` a partir des trois cases (i − 1, j ), (i, j − 1) et (i − 1, j − 1). En effet, trois alignements possibles:
1. Alignement de S [1..i − 1] et T [1..j ] suivit de (s
i, −) (suppression).
| C A T | A
| G T C A | -
2. Alignement de S [1..i] et T [1..j − 1] suivit de (−, t
j) (insertion).
| C A T A | -
| G T C | A
3. Alignement de S [1..i − 1] et T [1..j − 1] suivit de (s
i, t
j) (substitution ou identit´ e).
| C A T | A
| G T C | A
Remplissage de la table
Conditions initiales:
D(i, 0) = i pour tout i, 0 ≤ i ≤ m D(0, j) = j pour tout j , 0 ≤ j ≤ n Relation de r´ ecurrence: i, j > 0
D(i, j ) = min[D(i − 1, j) + 1, D (i, j − 1) + 1, D(i − 1, j − 1) + p(i, j )]
p(i, j ) = 0 si s
i= t
jp(i, j ) = 1 sinon (substitution)
Complexit´ e: Pour remplir chaque case du tableau, examiner 3 cases. Il y a O(mn) cases. Donc complexit´ e en temps O(mn)
9
Trouver un alignement optimal
Au cours du remplissage de la table, garder des pointeurs: de
(i − 1, j) ` a (i, j ) si D(i, j ) = D(i − 1, j) + 1; de (i, j − 1) ` a (i, j ) si D(i, j ) = D(i, j − 1) + 1; de (i − 1, j − 1) ` a (i, j ) si
D(i, j ) = D(i − 1, j − 1) + p(i, j ).
Ou, pointeurs implicites: effectuer un test ` a chaque case.
Un alignement optimal: commencer ` a la case (m, n) et suivre les pointeurs jusqu’` a la case (0, 0).
Une case peut contenir plusieurs pointeurs. Plusieurs alignements
optimaux possibles.
C
0 1 2 3 4 5
0 1 2 3 4
G
A G
T G
T C
C
0 1 2 3 5
1 2 3 4
4
0 1 2 3 4
1 1 2 3
2 2 2
3 3
1
1 2
2 2 2
Alignement r´ esultant:
T - C G C
T A C G G
11
Distance d’´ edition avec pond´ eration des op´ erations Associer un score ` a chaque op´ eration
→ d pour insertion/suppression
→ r pour substitution
→ m pour match
d > 0, r > 0 et e ≥ 0. En g´ en´ eral e = 0
Il faut que r < 2d, sinon jamais de substitutions Relations de r´ ecurrence:
D(i, 0) = i × d D(0, j) = j × d
D(i, j ) = min[D(i, j − 1) + d, D(i − 1, j) + d, D(i − 1, j − 1) + p(i, j )]
p(i, j ) = e si s
i= t
jet p(i, j ) = r sinon.
Distance d’´ edition g´ en´ eralis´ ee
Le score δ d´ epend des caract` eres. Par exemple, remplacer une purine par une pyrimidine plus coˆ uteux que remplacer une purine par une purine.
Relations de r´ ecurrence:
D(i, 0) = X
1≤k≤i
δ(s
k, −), D(0, j) = X
1≤k≤j
δ(−, t
k)
D(i, j ) = min[D(i, j − 1) + δ(−, t
j), D(i − 1, j ) + δ(s
i, −),
D(i − 1, j − 1) + δ(s
i, t
j)]
Si δ est une distance, alors D est une distance
13
Similarit´ e entre deux s´ equences
Plutˆ ot que de mesurer la diff´ erence entre deux s´ equences, mesurer leur degr´ e de similarit´ e
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 S [1..i] et T [1..j ].
V (i, 0) = X
1≤k≤i
P (s
k, −), V (0, j ) = X
1≤k≤j
P (−, t
k)
V (i, j ) = max[V (i, j − 1) + P (−, t
j), V (i − 1, j) + P (s
i, −), V (i − 1, j − 1) + P (s
i, t
j)]
Algorithme de Needleman-Wunch
pam-blosum.jpg (JPEG Image, 641x391 pixels) http://www.pdg.cnb.uam.es/fabascal/COMPLU_VERANO_03/DIA-1...
1 of 1 08/18/04 11:11
15
Recherche approch´ ee d’un motif Motif P de taille m, s´ equence T de taille n, entier k .
Trouver toutes les occurrences de P dans T ` a k erreurs pr` es
D(i, j ) G T C A G G T
0 0 0 0 0 0 0 0
C 1
A 2
T 3
• Initialiser la premi` ere ligne ` a 0
• Mˆ eme relation de r´ ecurrence que pour l’alignement de s´ equences.
• Rechercher ` a la ligne m toutes les cases contenant des valeurs
≤ k .
• Suivre les pointeurs jusqu’` a la premi` ere ligne.
II. Alignement local - Algorithme de Smith-Waterman Similarit´ e locale entre deux s´ equences: Valeur maximale d’un
alignement entre deux facteurs des deux s´ equences.
Exemple: Score de 2 pour match et -1 pour mismatch ou espaces.
CAGCAC[TT-GGAT]TCTCGG TAGT[TTAGG-T]GGCAT
17
Relations de r´ ecurrence:
V (i, 0) = 0, V (0, j) = 0 pour tout i, j
V (i, j ) = max[0, V (i − 1, j − 1) + P (s
i, t
j), V (i − 1, j ) + P (s
i, −), V (i, j − 1) + P (−, t
j)]
R´ einitialisation de la r´ ecurrence (0): Permet d’ignorer un nombre quelconque de caract` eres en d´ ebut de s´ equences.
• Remplire la table
• Rechercher une case c contenant la valeur maximale
• D´ emarrer ` a la case c et suivre les pointeurs jusqu’` a aboutir ` a une case de valeur 0.
Variante: Trouver toutes les paires de facteurs dont la valeur de
l’alignement optimal d´ epasse un certain seuil
III. Consid´ erer les gaps (trous)
Gap: Suite maximale de blancs dans l’une des deux s´ equences align´ ees. Possiblement r´ eduit ` a un seul espace.
c t t t a a c - - a - a c c - - - c a c c c a t - c
Contient 4 gaps, 7 espaces, 5 match et 1 mismatch.
Score particulier pour les trous: influence la distribution des espaces d’un alignement optimal.
19
Quelques motivations biologiques
• Fragments impliqu´ es dans une mutation de longueurs variables (crossing-over, erreurs de r´ eplications, insertion d’ADN par
r´ etro-virus, translocations...)
• Etudes phylog´ ´ en´ etiques: la pr´ esence des mˆ emes trous dans les s´ equences tr` es significatif
• Deux prot´ eines similaires ` a beaucoup d’endroits, mais contenant certains domaines diff´ erents
• cDNA: ne contient que les exons d’un g` ene. Retrouver le g` ene
correspondant ` a un cDNA en l’alignant avec l’ADN
Mod` eles de pond´ eration
Pond´ eration constante: Score d’un gap ind´ ependant de sa taille;
Constante W
t. De plus, P (a, −) = P (−, a) = 0.
Score d’un alignement entre S et T contenant k trous:
l
X
i=1
P (s
i, t
i) − kW
tExemple:
C T T T A A C - - A A C C - - - A A C C C T T C
Score = 3P (C, C ) + 2P (A, A) + P (A, A) + 2P (A, T ) − 2W
t21
Pond´ eration affine: G´ en´ eralisation de la pond´ eration constante.
Mod` ele de pond´ eration le plus utilis´ e W
t: initiation d’un trou
W
e: extension d’un trou
Score d’un trou de taille q: ω(q) = W
t+ qW
eScore d’un alignement de taille l contenant k trous et q espaces:
l
X
i=1
P (s
i, t
i) − kW
t− qW
eExemple:
C T T T A A C - - A A C C - - - A A C C C T T C
Score = 3P (C, C ) + 2P (A, A) + P (A, A) + 2P (A, T ) − 2W
t− 5W
ePond´ eration convexe: Chaque espace suppl´ ementaire est moins p´ enalis´ e que le pr´ ec´ edent
Exemple: Score d’un gap de taille q, ω(q) = W
t+ log
e(q)
Pond´ eration quelconque: Fonction quelconque de la taille du gap.
23
Recherche d’un alignement optimal - Pond´ eration quelconque
Trois alignements possibles de S [1..i] et T [1..j ]:
1. Alignement de S [1..i] et T [1..j − 1] suivit de (−, t
j).
2. Alignement de S [1..i − 1] et T [1..j ] suivit de (s
i, −).
3. Alignement de S [1..i − 1] et T [1..j − 1] suivit de (s
i, t
j).
E (i, j ): valeur maximale d’un alignement de type 1.
F (i, j ): valeur maximale d’un alignement de type 2.
G(i, j ): valeur maximale d’un alignement de type 3.
V (i, j ): max[E(i, j ), F (i, j ), G(i, j )]
T
jS
i G(i,j)E(i,j)
F(i,j) k
k
25
Conditions initiales:
V (i, 0) = F (i, 0) = −ω (i); V (0, j) = E(0, j) = −ω(j ) Relations de r´ ecurrence:
G(i, j ) = V (i − 1, j − 1) + P (s
i, t
j) E (i, j ) = max
0≤k≤j−1[V (i, k) − ω (j − k)]
F (i, j ) = max
0≤k≤i−1[V (k, j ) − ω(i − k)]
Valeur optimale: V (m, n)
Variante: Ignore les espaces terminaux. Dans ce cas, V (i, 0) = 0 et V (0, j) = 0. Valeur optimale: une case du tableau contenant la
valeur maximale
Complexit´ e: 0(m
2n + mn
2)
Recherche d’un alignement optimal - Pond´ eration affine Score d’un gap croˆıt de fa¸ con constante apr` es l’initiation du gap Conditions initiales:
V (i, 0) = F (i, 0) = −W
t− iW
eV (0, j) = E (0, j) = −W
t− jW
eRelations de r´ ecurrence:
V (i, j ) = max[E (i, j ), F (i, j ), G(i, j )]
G(i, j ) = V (i − 1, j − 1) + P (s
i, t
j)
E(i, j ) = max[E (i, j − 1), V (i, j − 1) − W
t] − W
eF (i, j ) = max[F (i − 1, j ), V (i − 1, j ) − W
t] − W
eComplexit´ e: O(mn)
27
Parall´ elisme
Comment parall´ eliser le calcul d’une table de programmation dynamique? Remplire la table par anti-diagonales
G T C A G G T
C
A
T A
T G
0 1 2 3 4 5 6 7
1
2
3 4
5
6
D
Pour chaque anti-diagonale k, on a besoin des anti-diagonales k − 1 et k − 2.
Observation clef: Chaque case d’une anti-diagonale k est calcul´ ee ind´ ependamment des autres cases de l’anti-diagonale k.
Pour le remplissage d’une anti-diagonale, un processeur peut ˆ etre assign´ e au calcul de chaque case.
Complexit´ e: (en temps) O(n)
29
IV - Optimisation en espace de l’alignement de s´ equences S de taille m, T de taille n.
Valeur d’un alignement global optimal: V (S, T )
Algorithme classique pour l’alignement global: Espace O(mn) Impossibilit´ e de consid´ erer de longues s´ equences d’ADN.
Calcul de V (S, T ) sans alignement: Pour le calcul des valeurs d’une ligne i, on a besoin uniquement de la ligne i − 1. ` A chaque ´ etape, remplir la ligne courante ` a l’aide de la ligne pr´ ec´ edente −→ Espace n´ ecessaire 2m
On peut encore r´ eduire l’espace ` a m + 1
Comment utiliser un espace lin´ eaire pour trouver un alignement,
sans trop augmenter le temps de calcul?
Algorithme de Hirschberg
D.S. Hirschberg, Algorithms for the longest common subsequence problem, J. ACM, 24, pp. 664- 675, 1977
Complexit´ e en espace en O(m) (m ≤ n), et complexit´ e en temps dans le pire des cas doubl´ e % ` a l’algorithme classique pour
l’alignement global, donc, toujours en O(mn).
Id´ ee g´ en´ erale: R´ esoudre une famille de sous-probl` emes par une strat´ egie “divide and conquer”, et combiner les r´ esultats obtenus pour produire l’alignement global.
Notations:
• Pour une s´ equence M , M
rl’inverse de M , i.e., Si t est la taille de M , M
r[i] = M [t − i + 1].
Exemple: M = agctagt, M
r= tgatcga.
• V
r(i, j ): valeur de l’alignement optimal entre S
r[1..i] et T
r[1..j ], i.e entre S [m − i + 1..m] et T [n − j + 1..n]
31
Lemme 1:
V (m, n) = max
0≤k≤n[V (m/2, k) + V
r(m/2, n − k)]
m/2
a c g t a g t − g c g a c a g g t − g t t g c g g c
k Preuve: Pour tout k , V (m, n) =
Optimal
S[1..m/2]
T [1..k]
+ Optimal
S [m/2 + 1..m]
T [k + 1..n]
V (m/2, k) V
r(m/2, n − k)
Notation: k
∗maximise [V (m/2, k) + V
r(m/2, n − k)].
Il existe un chemin optimal L allant de (0, 0) ` a (m, n) qui passe par (m/2, k
∗)
L
m/2: sous-chemin de L qui commence ` a la derni` ere case de la ligne m/2 − 1 de L et fini ` a la 1
ere`case de la ligne m/2 + 1 de L.
m 2 −1
m 2
Lm 2
k2
k1 k*
+1
n
m
33
Lemme 2: k
∗peut ˆ etre trouv´ e en un temps O(mn) et en espace O(m). Mˆ eme complexit´ e pour produire le sous-chemin L
m/2. Preuve:
• Remplir la table pour S et T , mais s’arrˆ eter apr` es la ligne m/2.
Conserver les pointeurs ` a la ligne m/2 −→ temps O(mn), espace O(m). V (m/2, k) connu pour tout k.
• Mˆ eme chose pour S
ret T
r.
• Trouver la valeur maximale V (m/2, k) + V (m/2, n − k) , → k
∗−→ temps O(n).
• Produire le chemin L
m/2en suivant les pointeurs, d’abord de (m/2, k
∗) ` a la case (m/2 − 1, k
1), ensuite de (m/2, k
∗) ` a la case (m/2 + 1, k
2).
Deux sous-probl` emes: Alignement de S [1, m/2 − 1] et T [1..k
1], et
alignement de S [m/2 + 1..m] et T [k
2..n]
Procedure OP T A(l, l
0, r, r
0);
D´ ebut
h = (l
0− l)/2;
Trouver k
∗, k
1, k
2et L
h;
OP T A(l, h − 1, r, k
1); (probl` eme sup´ erieur) Produire L
h;
OP T A(h + 1, l
0, k
2, r
0); (probl` eme inf´ erieur) Fin.
Appel initial: OP T A(1, m, 1, n)
A la sortie de la proc´ ` edure, le chemin L produit est un alignement optimal de S et T .
Valeur V (m, n) obtenue d` es la premier appel de la proc´ edure, i.e.
pour h = m/2.
35
Complexit´ e en temps: On note cpq, au lieu de O(pq ), le temps n´ ecessaire pour remplir une table p × q. c: constante.
• 1
erniveau de r´ ecursion: cmn
• 2
eme`niveau de r´ ecursion, 2 sous-probl` emes:
ck
∗m/2 + c(n − k
∗)m/2 = cnm/2
• i
eme`niveau de r´ ecursion, 2
i−1sous-probl` emes.
Chaque sous-probl` eme a m/2
i−1lignes et un nombre variables de colonnes. Mais chaque sous-probl` eme a des colonnes
distinctes des autres ⇒ Au plus cnm/2
i−1Th´ eor` eme: Complexit´ e en espace en O(m) et complexit´ e en temps
logn
X
i=1
cmn/2
i−1≤ 2cnm
Algorithme classique de l’alignement global en temps cmn.
V - Optimisation en temps - Ne calculer qu’une partie de la table des distances 1. Nombre d’erreurs born´ e: Deux s´ eq. S et T et un entier k.
D´ eterminer si un alignement global optimal de S et T a au plus k erreurs.
Exemples d’applications:
• Comparaison de g` enes homologues, s´ equences tr` es similaires.
• V´ erification d’une nouvelle longue s´ equence avec des fragments d´ eja s´ equenc´ es par d’autres laboratoires: Probl` eme si trop
d’erreurs.
• Construction d’une banque de donn´ ees non redondante, pour accel´ erer la recherche, pour des ´ evaluations statistiques plus significatives. Par exemple, combiner les s´ equences de
nucl´ eotides ou d’acides amin´ es ayant plus de 97% de similarit´ e.
37
Observation: Tout chemin d´ efinissant un alignement contenant moins de k erreurs ne passe par aucune case (i, i + l) ou (i, i − l), avec l > k
⇒ compl´ eter la table dans une bande centr´ ee sur la diagonale principale, d´ etermin´ ee par les deux diagonales +k et −k. Bande qui contient 2k + 1 cases ` a chaque ligne
a c g t a g t g c g a
a g g t g t t g
0 1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 k=3
(m,n)
Si m = n, la taille de la bande peut ˆ etre r´ eduite de moiti´ e
Si (m, n) contient une valeur v < k, alors un alignement optimal avec v erreurs existe. Alignement trouv´ e en suivant les pointeurs de (m, n) ` a (0, 0).
R´ eciproquement, si un alignement optimal avec moins de k erreurs existe, alors (m, n) contient une valeur < k.
Si (m, n) contient une valeur plus grande que k, alors cette valeur est sup´ erieure ` a la valeur d’un alignement optimal.
Complexit´ e: en temps et en espace O(km).
39