• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

Partager "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"

Copied!
40
0
0

Texte intégral

(1)

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

(2)

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)

3

(4)

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 -

(5)

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

(6)

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

1

s

2

· · · s

m

de taille m et T = t

1

t

2

· · · t

n

de 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 ).

(7)

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

(8)

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

(9)

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

j

p(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

(10)

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.

(11)

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

(12)

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

j

et p(i, j ) = r sinon.

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

t

Exemple:

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

21

(22)

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

e

Score d’un alignement de taille l contenant k trous et q espaces:

l

X

i=1

P (s

i

, t

i

) − kW

t

− qW

e

Exemple:

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

e

(23)

Pond´ 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

(24)

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 )]

(25)

T

j

S

i G(i,j)

E(i,j)

F(i,j) k

k

25

(26)

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

2

n + mn

2

)

(27)

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

e

V (0, j) = E (0, j) = −W

t

− jW

e

Relations 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

e

F (i, j ) = max[F (i − 1, j ), V (i − 1, j ) − W

t

] − W

e

Complexit´ e: O(mn)

27

(28)

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

(29)

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

(30)

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?

(31)

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

r

l’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

(32)

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)].

(33)

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

(34)

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

r

et T

r

.

• Trouver la valeur maximale V (m/2, k) + V (m/2, n − k) , → k

−→ temps O(n).

• Produire le chemin L

m/2

en 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]

(35)

Procedure OP T A(l, l

0

, r, r

0

);

D´ ebut

h = (l

0

− l)/2;

Trouver k

, k

1

, k

2

et 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

(36)

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

er

niveau 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−1

sous-probl` emes.

Chaque sous-probl` eme a m/2

i−1

lignes et un nombre variables de colonnes. Mais chaque sous-probl` eme a des colonnes

distinctes des autres ⇒ Au plus cnm/2

i−1

Th´ 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.

(37)

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

(38)

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)

(39)

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

(40)

2. Nombre d’erreurs non sp´ ecifi´ e:

S et T deux s´ equences, et k

valeur d’un alignement optimal (k

non connu, mais petit).

“Deviner” la valeur de k

en appliquant l’algorithme pour nombre d’erreurs born´ e avec diff´ erentes valeurs de k

Commencer avec k = 1, et doubler k jusqu’` a obtenir un alignement global de valeur ≤ k .

Complexit´ e: Soit k

0

la plus grande valeur de k utilis´ ee. k

0

≤ 2k

. Complexit´ e totale en temps et en espace:

O(k

0

m + k

0

m/2 + k

0

m/4 + · · · + m) = O(k

0

m) = O(k

m)

Références

Documents relatifs

 Heuristique pour le score SP: Algorithme garanti d’obtenir un alignement dont le score est au plus deux fois plus élevé que le score d’un alignement optimal....

– Optimisation en temps: calculer la table autour d’une bande.. Temps et espace O(kn) où k est

– choisir une paire de séquences de score max, tq exactement une des séquences est dans l’alignement partiel obtenu. – Aligner la nouvelle séquence avec la matrice consensus

Famille de matrices correspondant à différentes distances évolutives entre les séquences : PAM120 et BLOSUM80 : estimation des fréquences de substitution entre acides aminés pour

• les listes ordonnées sont ensuite parcourues pour identifier les k-mers qui sont trouvés dans deux ou plusieurs séquences mais qui apparaissent au plus une fois dans chacun

• donc si même résultat avec deux modèles, utiliser le plus simple car la variance de la distance augmente avec le nombre de paramètres. • application de la correction Gamma que

En bioinformatique, la comparaison de séquences ADN deux à deux doit permettre de trouver des homologies c’est-à-dire comment les séquences ont muté à travers les espèces

Pour des distances évolutives plus grandes, les probabilités de substitution des acides aminés les uns envers les autres sont estimées et non calculées directement en comparant