• Aucun résultat trouvé

Alignement de séquences (suite)

N/A
N/A
Protected

Academic year: 2022

Partager "Alignement de séquences (suite)"

Copied!
16
0
0

Texte intégral

(1)

Alignement de séquences (suite)

Nadia El-Mabrouk

(2)

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

b e

[ ] [ ]

a e

[ ]

a e

a e

[ ] [ ]

a e b e

[ ]

b e

[ ]

a e

[ ]

a e

[ ]

a e

[ ] [ ]

a e

[ ]

a e

b e

[ ] [ ]

b e

[ ]

b e a e

[ ]

b e

[ ]

[ ]

b b

[ ]

b b

[ ]

b b

[ ]

a a

[ ]

a a

[ ]

a b

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

S

T

(3)

|S| = m, |T| = n.

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

D(i,j): Valeur maximale d’un chemin de q= (0,0) 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));

Te j

[ ]

Si

[ ]

e

Te j

[ ]

Tj

Si

[ ]

(4)

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

On note l (q) l’étiquette d’un état q.

(5)

Expression régulière

A

C

T

T

G A

C

T

T

G A

C

T

T

G

A

T

e e

[ ] [ ]

A e

C e

[ ]

T e

]

[ [

T e

]

G e

] [

e e

[ ]

e e

[ ]

e e

[ ] [ ]

e e

e e

[ ]

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

(0,q)

(m, f)

(6)

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

A A

[ ]

e A

[ ]

C A

[ ]

e C

[ ]

e e

[ ] [ ]

A e

C e

[ ]

T e

]

[ [

T e

]

G e

] [

e e

[ ]

e e

[ ]

e e

[ ] [ ]

e e

e e

[ ]

(0,q)

(m, f)

(7)

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

A A

[ ]

e A

[ ]

C A

[ ]

e C

[ ]

e e

[ ] [ ]

A e

C e

[ ]

T e

]

[ [

T e

]

G e

] [

e e

[ ]

e e

[ ]

e e

[ ] [ ]

e e

e e

[ ]

(0,q)

(m, f)

(8)

• Correspondance bijective entre les alignements de S avec les mots de L(R) et les chemins de q= (0,0) à 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));

Si

[ ]

e

l(q)e

[ ]

l(q)e

[ ]

l(q)Si

[ ]

l(q)e

[ ]

(9)

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

Si

[ ]

e

l(q)e

[ ]

l(q)e

[ ]

l(q)Si

[ ]

l(q)e

[ ]

(10)

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

Si

[ ]

e l(q)e

[ ]

l(q)e

[ ]

l(q)Si

[ ]

l(q)e

[ ]

(11)

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;

Si

[ ]

e l(q)e

[ ]

l(q)e

[ ]

l(q)Si

[ ]

l(q)e

[ ]

(12)

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

2

) en temps et en espace.

– Algorithme de Hirschberg: stratégie « Diviser pour Reigner ». O(n

2

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

(13)

Conclusion

• Alignement local de deux séquences S et T (|S| ≈ |T| = n)

– Valeur de similarité seulement.

– Algorithme de programmation dynamique en

O(n

2

) en temps et en espace.

(14)

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

3

) en temps et en espace.

– Dans le cas d’une pondération affine, algorithme

en O(n

2

).

(15)

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.

(16)

Conclusion

• Alignement d’un texte S avec une expression régulière R (|S|≈|R| = n)

Algorithme de programmation dynamique en O(n

2

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

Références

Documents relatifs

[r]

Nous lisons toutes sortes de contes merveilleux ou autres, mais nous aimons surtout la lecture d'un livre entier ; nous suivons un héros tout au long de ses

5 Exercice 6 (2 points) : Pour déterminer le prix d’un nouveau jus de fruit, une société réalise deux marchés tests dans deux grandes surfaces (A et B) de clientèle

Dans cette représentation, si le vide est physique, il est nécessairement matière : où l'on retrouve l'intuition profonde de Descartes, non plus formulée en termes ontologiques,

Hurtderivative work: Roberto Segnali all'Indiano — Milky_Way_2005.jpg, Domaine public, https://commons.wikimedia.org/w/index.php?curid=10765485.. Voisinage galactique original

Qu’il s’agisse des images géographiques et urbaines globales (cartographie, aménagement), des images bidimensionnelles (peintures murales, graffitis, panneaux

Si nous supposons espace et temps individualisés d'une manière quel- conque, à un point substantiel en repos correspond comme ligne de l'univers une parallèle à l'axe des t, à un

• 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