• Aucun résultat trouvé

Dans cette section, nous introduisons la notion d’arche. Dans un premier temps, nous donnons la d´efinition des arches. Nous montrons ensuite un alignement entre s´equences sous le mod`ele sse en utilisant les arches. Enfin nous discutons de l’ordre des op´erations induit par les arches dans l’alignement que nous calculons.

4.2.1

D´efinition

Regardons pas `a pas l’exemple artificiel d’´evolution du mˆeme minisatellite dans deux individus ; ceci est montr´e `a la figure 4.1.

L’alphabet des variants est {a, b, c, d, e}. L’´etat ancˆetre a la carte aaaaa. Les cartes r´esultantes chez les individus 1 et 2 sont r = aeaaa et s = aaabbcbddba. Un alignement de ces deux cartes est donn´e `a la figure 4.2.

Chez l’individu 2, le variant b est amplifi´e cinq fois. Ces variants amplifi´es subissent ensuite d’autres amplifications et mutations. Cela r´esulte en une sous-chaˆıne dans laquelle les variants proviennent du mˆeme variant ancˆetre, qui est appel´e la graine de la sous-chaˆıne. Nous pouvons d´elimiter cette sous-chaˆıne par le fait que les variants `a ses extr´emit´es sont

4.2. Arches Individu 1 ´ Ev´enement S´equence a a a a a mutation a e a a a 1 2 3 4 5 Individu 2 ´ Ev´enement S´equence a a a a a mutation a a a b a 5*amplification a a a b b b b b b a mutation a a a b b c b b b a mutation a a a b b c b d b a amplification a a a b b c b d d b a 1 2 3 4 5 6 7 8 9 10 11

Fig. 4.1 – Exemple d’´evolution d’un minisatellite chez 2 individus.

identiques. Dans notre exemple, la sous-chaˆıne de s[4..10] = bbcbddb a pour graine le b de la position 4. Pendant l’´evolution de cette sous-chaˆıne, le variant final `a chaque position n’apparaˆıt pas dans l’ordre de la s´equence (gauche-droite ou inversement) : `a un moment donn´e, la position 8 a toujours l’´etat ancˆetre b et pas son ´etat final d, tandis que la position 10 a d´ej`a son ´etat final, un b. Par cons´equent, de telles sous-chaˆınes peuvent ˆetre obtenues par plusieurs s´eries d’op´erations, mais la solution optimale sera d´ependante de l’ordre de ces op´erations. Si nous calculons incr´ementalement l’alignement pour des pr´efixes de plus en plus longs, comme cela est fait dans les algorithmes d’alignement classiques, c’est-`a- dire en ajoutant une op´eration `a la fois, nous ne pouvons pas trouver l’ordre optimal des ´ev´enements. Pour notre exemple de sous-chaˆıne, si la position 6 devient d’abord un c, il n’est pas possible d’obtenir un b `a la position 7 par une amplification. Ainsi, pour retrouver la s´erie optimale d’op´erations qui conduit `a une telle sous-chaˆıne, nous devons la consid´erer comme un tout et non pas variant apr`es variant. Cela nous m`ene `a la notion d’arche. D´efinition 22 (Arche) Soit s une carte de longueur n et i, j deux entiers tels que 1 ≤ i < j ≤ n. La sous-chaˆıne s[i..j] est une arche de s si et seulement si s[i] = s[j].

Dans une arche, nous diff´erencions les variants externes ou extr´emaux, qui par d´efinition sont identiques, de tous les autres, que nous appelons internes. Tous les variants d’une arches ne sont pas forc´ement identiques, et une arche peut contenir r´ecursivement d’autres arches, appel´ees arches internes. La graine d’une arche interne peut ˆetre diff´erente de la graine de l’arche qui l’englobe, comme dd dans bbcbddb. En effet, une fois qu’une position interne a ´et´e mut´ee, elle peut subir une amplification, qui va cr´eer une arche interne.

4.2.2

Alignement et arches

Nous montrons ici un alignement sous le mod`ele sse qui prend en compte les arches des s´equences. La figure 4.2 montre un exemple d’un tel alignement. Cet alignement peut se lire de la mani`ere suivante :

Chapitre 4. Alignement avec amplification et contraction sous le mod`ele sse \ ( \ ( \ \ ] ] − − − − − − 1 2 3 4 5 6 7 8 9 10 11 c d d a a a a a a a a b b b b e f r s

Fig. 4.2 – Alignement des cartes des individus 1 et 2 de la figure 4.1. L’arche bbcbddb et ses arches internes sont repr´esent´ees par des arcs en dessous de s. Dans la ligne du milieu, ’|’, ’]’, ’\’, ’(’ repr´esentent respectivement un appariement exact, une mutation, une amplification et une AM.

2. Le a `a la position 4 de r est mut´e en b ; 3. Ce b est ensuite amplifi´e cinq fois ; 4. Le b de la position 6 est mut´e en c ; 5. Le b de la position 8 est mut´e en d ;

6. Enfin, le d de la position 8 est amplifi´e une fois.

L’ordre des ´ev´enements est important, l’´ev´enement 3 ne peut pas se produire avant le 2, de mˆeme l’´ev´enement 6 ne peut pas se produire avant le 5. Les ´ev´enements 4 et 5 sont interchangeables mais doivent se produire apr`es le 3. L’´ev´enement 1 peut se placer n’importe o`u.

Dans l’alignement de la figure 4.2, on peut voir qu’aucune position correspondant `a l’arche bbcbddb de s existe dans r `a l’exception de la position de la graine. Pour imiter l’´evolution, nous voulons aligner une arche de s avec un seul variant de r, celui `a la position originale de la graine.

Nous pouvons voir l’arriv´ee d’une arche comme un seul ´ev´enement ´evolutif avec une fonction de coˆut sp´ecifique. Selon le sens dans lequel on observe l’´evolution, de s `a r ou de r `a s, nous nommons cette ´ev´enement compression d’arche ou g´en´eration d’arche. Dans notre approche par programmation dynamique, les g´en´erations/compressions d’arche sont vues comme une seule op´eration qui exprime une d´ependance entre deux cases non adjacentes de la matrice de programmation dynamique (voir figure 4.4, page 89).

La g´en´eration et la compression d’arche sont sym´etriques. Sous l’hypoth`ese H1, celle que nous avons choisie, la g´en´eration d’arche correspond `a une s´erie d’amplifications et de mutations qui donne naissance `a la sous-chaˆıne associ´ee `a partir du variant graine (sous l’hypoth`ese H2, ce serait une s´erie d’amplifications et d’insertions). Sym´etriquement, la compression sous H1 est une s´erie de contractions et de mutations qui « rembobine » la sous-chaˆıne en sa graine.

Supposons que l’on veuille g´en´erer une arche dans s. Comme la g´en´eration n’implique pas de caract`ere de r, son coˆut optimal peut ˆetre calcul´e ind´ependamment de r. Nous

4.3. Algorithme d’alignement