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

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

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

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

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

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