• 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

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

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