alignement de séquences (suite)

16
Alignement de séquences (suite) Nadia El-Mabrouk

Upload: brynn-osborne

Post on 02-Jan-2016

35 views

Category:

Documents


2 download

DESCRIPTION

Alignement de séquences (suite). Nadia El-Mabrouk. Graphe d’édition pour l’alignement de séquences. T. [. e. ]. [. e. ]. [. e. ]. q. b. a. a. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. [. a. ]. a. b. a. e. e. e. e. S. [. e. ]. [. e. ]. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Alignement de séquences (suite)

Alignement de séquences(suite)

Nadia El-Mabrouk

Page 2: Alignement de séquences (suite)

Graphe d’édition pour l’alignement de séquences

b a a

0 1 2 3

a 1 1 1 2

b 2 1 2 2

q

f

1

2

be[ ] a

e[ ]ae[ ]

ae[ ] a

e[ ]be[ ]

be[ ] a

e[ ] ae[ ]

ae[ ]

ae[ ] a

e[ ]

be[ ] b

e[ ] be[ ]

ae[ ]

be[ ]

b[ ]bb[ ]b

b[ ]b

a[ ]aa[ ]a

a[ ]b

Graphe orienté, dont les arêtes sont étiquetées.

S

T

Page 3: Alignement de séquences (suite)

|S| = m, |T| = n.• Correspondance bijective entre les alignements de S avec T et

les chemins de = (0,0) q à = f (m,n).• D(i,j): Valeur maximale d’un chemin de = (0,0)q au sommet

(i,j) . Trouver la valeur maximale D(m,n) d’un chemin de = q(0,0) à = f (m,n).

D(0,0) = 0;Pour j = 1 à n faire

D(0,j) = D(0,j) + v( );Pour i=1 à m faire{ D(i,0) = D(i-1,0) + v ( );

Pour j=1 à n faire D(i,j) = max {D(i-1,j) + v( ) , D(i,j-1) + v ( ), D(i-1,j-1)+ v ( )}

}Retourner (D(m,n));

Tj

e[ ]Sie[ ]

Tj

e[ ] Tj

Si[ ]

Page 4: Alignement de séquences (suite)

Expression régulière• Aligner S = « AT » avec R = « (A|C)T(T|G) »

A

C

T

T

G

q f

On note Q l’ensemble des états de l’automateOn note l(q) l’étiquette d’un état q.

Page 5: Alignement de séquences (suite)

Expression régulière

A

C

T

T

G

A

C

T

T

G

A

C

T

T

G

A

T

ee[ ] A

e[ ]Ce[ ]

Te][ T

e][Ge][

ee[ ]

ee[ ]

ee[ ] e

e[ ]ee[ ]

• Aligner (A|C)T(T|G) avec AT

(0, )q

(m, )f

Page 6: Alignement de séquences (suite)

Expression régulière• Aligner S = « AT » avec R = « (A|C)T(T|G) »

A

C

T

T

G

A

C

T

T

G

A

C

T

T

G

A

T

AA[ ] e

A[ ]CA[ ]

eC[ ]

ee[ ] A

e[ ]Ce[ ]

Te][ T

e][Ge][

ee[ ]

ee[ ]

ee[ ] e

e[ ]ee[ ]

(0, )q

(m, )f

Page 7: Alignement de séquences (suite)

Expression régulière• Aligner S = « AT » avec R = « (A|C)T(T|G) »

A

C

T

T

G

A

C

T

T

G

A

C

T

T

G

A

T

AA[ ] e

A[ ]CA[ ]

eC[ ]

ee[ ] A

e[ ]Ce[ ]

Te][ T

e][Ge][

ee[ ]

ee[ ]

ee[ ] e

e[ ]ee[ ]

(0, )q

(m, )f

Page 8: Alignement de séquences (suite)

• Correspondance bijective entre les alignements de S avec les mots de L(R) et les chemins de = (0,0) q à = f (m,n).

D(0, q) = 0;Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )};

Pour i=1 à m faire{ D(i, q) = D(i-1, q) + v ( ); Pour q in Q-{q} en ordre topologique faire { D(i,q) = max t q {D(i,t) + v( )};

Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )};

} Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠ )q q {D(i,t) + v( )};

}Retourner (D(m,f));

Sie[ ]

l(q)e[ ]

l(q)e[ ]

l(q)Si[ ]

l(q)e[ ]

Page 9: Alignement de séquences (suite)

Recherche de R dans S à k erreurs près

D(0, q) = 0;Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )};

Pour i=1 à m faire{ D(i, q) = D(i-1, q) + v ( ); Pour q in Q-{q} en ordre topologique faire { D(i,q) = max t q {D(i,t) + v( )};

Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )};

} Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠ )q q {D(i,t) + v( )};

}Retourner (D(m,f));

Sie[ ]

l(q)e[ ]

l(q)e[ ]

l(q)Si[ ]

l(q)e[ ]

Page 10: Alignement de séquences (suite)

Recherche de R dans S à k erreurs près

D(0, q) = 0;Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )};

Pour i=1 à m faire{ D(i, q) = max {0, D(i-1, q) + v ( )}; Pour q in Q-{q} en ordre topologique faire { D(i,q) = max t q {D(i,t) + v( )};

Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )};

} Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠ )q q {D(i,t) + v( )};

}Retourner (D(m,f));

Sie[ ]

l(q)e[ ]

l(q)e[ ]

l(q)Si[ ]

l(q)e[ ]

Page 11: Alignement de séquences (suite)

Recherche de R dans S à k erreurs près

D(0, q) = 0;Pour q in Q-{q} en ordre topologique faire D(0,q) = max t q {D(0,t) + v( )};

Pour i=1 à m faire{ D(i, q) = max {0, D(i-1, q) + v ( )}; Pour q in Q-{q} en ordre topologique faire { D(i,q) = max t q {D(i,t) + v( )};

Si l(q) ≠ e alors D(i,q) = max {max {D(i,q), D(i-1,q) + v( ), maxt q {D(i-1,t) + v( )};

} Pour q in Q-{q} en ordre topologique faire D(i,q) = max {D(i,q), maxt (≠ )q q {D(i,t) + v( )};

}Retourner toutes le positions i telles que (D(i,f)) ≤ k;

Sie[ ]

l(q)e[ ]

l(q)e[ ]

l(q)Si[ ]

l(q)e[ ]

Page 12: Alignement de séquences (suite)

Conclusion

• Alignement global de deux séquences S et T (|S| ≈ |T| = n)– Distance d’édition (Levenshtein) ou valeur de similarité.– Algorithme de programmation dynamique en O(n2) en

temps et en espace.– Algorithme de Hirschberg: stratégie « Diviser pour

Reigner ». O(n2) en temps et O(n) en espace.– Optimisation en temps: calculer la table autour d’une

bande. Temps et espace O(kn) où k est la distance d’édition.

Page 13: Alignement de séquences (suite)

Conclusion

• Alignement local de deux séquences S et T (|S| ≈ |T| = n)– Valeur de similarité seulement.– Algorithme de programmation dynamique en

O(n2) en temps et en espace.

Page 14: Alignement de séquences (suite)

Conclusion

• Généralisation de l’alignement local/global aux « gaps »– Plutôt que de considérer chaque « indel »

séparément, les regrouper en « gaps ».– Dans le cas d’une pondération quelconque des

« gaps », algorithme O(n3) en temps et en espace.– Dans le cas d’une pondération affine, algorithme

en O(n2).

Page 15: Alignement de séquences (suite)

Conclusion

• Recherche d’une séquence S dans une séquence T à k erreurs près (|S|=m, |T| = n, m << n)– Distance d’édition (Levenshtein) ou valeur de

similarité.– Algorithme de programmation dynamique en

O(mn) en temps et en espace.

Page 16: Alignement de séquences (suite)

Conclusion

• Alignement d’un texte S avec une expression régulière R (|S|≈|R| = n)– Algorithme de programmation dynamique en O(n2)

en temps et en espace.

• Recherche d’une expression régulière R dans un texte S à k erreurs près (|S|= n, |R| = m, n>>m)– Algorithme de programmation dynamique en O(mn)

en temps et en espace.