• Aucun résultat trouvé

Décomposition des réseaux phylogénétiques

2.3 Reconstruction à partir de clades

2.3.2 Décomposition des réseaux phylogénétiques

SoitCun ensemble de clades sur l’ensembleXde taxons. On définit le graphe d’incom- patibilité deCcomme le grapheIG(C) = (C,{{A,B},A − B6=;, B − A=6 ;, A∩B6=;}), c’est-à-dire que deux sommets sont adjacents si les clades qu’ils représentent se che- vauchent, autrement dit ne peuvent être tous deux contenus dans un même arbre phylogé- nétique. Un exemple de graphe d’incompatibilité est donné en figure 2.18(a) à la page 95.

SoitNun réseau à une couche de réticulation qui contient un ensembleCde clades souples. Comme un clade soupleCpeut être représenté par plus d’un arc dansN, on définit une assignation d’arcscomme une bijection entre chaque clade soupleC∈Cet un arc de spéciation(C)deNqui le représente.

On dit queNest une représentation décomposable deC, ou plus simplement queN

est décomposable, s’il existe une assignation d’arcstelle que pour toute paire de clades souplesA, B∈C, les deux arcs(A)et(B)sont situés dans le même blob deNsi et seule- ment siAetBsont dans la même composante connexe du graphe d’incompatibilitéIG(C). Par définition, les réseaux de clades stricts [Huson et Rupp, 2008] et les réseaux de bi- partitions [Bandelt et Dress, 1992a] sont décomposables. Toutefois, un exemple de Gus- field et al. [2007] illustré en figure 2.15 montre que les réseaux de clades souples ne le sont

GalledClusterContainment(N: réseau à une couche de réticulation surX,C: clade deX) 1. Pour tout élémentfdeXfaire

2. dansC(f)←FAUX ;

3. Pour tout élémentfdeCfaire

4. dansC(f)←VRAI ;

5. appartient←FAUX ;

6. Pour tout arcxdeNfaire

7. inclusion←VRAI ;

8. Pour toute feuillefdeLxfaire

9. Si NON(dansC(f)) alors

10. inclusion←FAUX ;

11. Pour tout sommetrdeR1xfaire

12. Pour toute feuillefdeLxfaire

13. Si NON(dansC(f)) alors

14. inclusion←FAUX ;

15. Si inclusion alors

16. testYr←VRAI ;

17. Pour tout sommetrdeR2xfaire

18. inclus←VRAI ;

19. Pour toute feuillefdeYrfaire

20. Si NON(dansC(f))alors

21. inclus←FAUX ;

22. disjoint←VRAI ;

23. Pour toute feuillefdeYrfaire

24. Si dansC(f)alors

25. disjoint←FAUX ;

26. Si NON(inclus ou disjoint) alors

27. testYr←FAUX ;

28. Si testYr alors

29. appartient←VRAI ;

30. Renvoyer appartient ;

FIGURE 2.14 : L’algorithme GalledClusterContainment qui détermine si C est un clade

souple d’un réseau phylogénétiqueNà une couche de réticulation. Les ensemblesLx,R1x,

R2x, etYrse calculent chacun en tempsO(m)par un simple parcours du graphe orientéN.

pas nécessairement. Il est en effet possible d’économiser parfois un sommet hybride en remplaçant deux blobs, chacun avec deux sommets hybrides, comme dans le réseauN1

de la figure 2.15(ii), par un seul blob avec trois sommets hybrides, comme dans le réseau

N2de la figure 2.15(iii). Toutefois, même si le réseauN2est plus parcimonieux en termes de

nombre de sommets hybrides,N1peut sembler plus approprié du point de vue biologique

en séparant les feuilles deS = {o,a,b,c,d}de celles de S0={o0, a0, b0, c0, d0}dans deux blobs distincts. En effet, N2 renforce la proximité entre les feuilles étiquetéesx et celles

étiquetéesx0, alors qu’aucun des clades parmi ceux fournis en entrée ne fait apparaître ensemble des éléments deSet deS0.

(i) (ii) (iii)

FIGURE2.15 : Un réseau minimum N qui contient les clades souples C ={a}, {b}, {c},

{d}, {o}, {h}, {a,b}, {a,b,h}, {b,h}, {c,d}, {c,d,h}, {a,b,c,d,h}, {a,b,c,d} en utilisant deux sommets hybridesrets(i). Notons que le rôle de l’arc d’hybridationuest de per- mettre que le clade souple{a,b,c,d}soit représenté par l’arc e. Deux copies deNcom- binées en un réseau décomposableN1(ii) nécessitant 4 sommets hybrides pour contenir

tous les clades souples deC, ainsi qu’un second ensemble similaire C0sur les feuilles de

S0={o0, a0, b0, c0, d0, h0}. Un autre réseau N2(iii), non décomposable, qui contient aussi

les clades souples deC∪C0, mais n’a que 3 sommets hybrides. Toutefois, il est de niveau 3 et relie des feuilles assez éloignées, alors que le réseauN1est de niveau 2.

Ainsi, à la fois pour éviter ce problème, et pour des raisons algorithmiques, nous propo- sons de nous limiter à des représentations décomposables. Nous allons donc décomposer la reconstruction de la façon suivante [Gusfield et Bansal, 2005; Huson et al., 2005]. Sup- posons qu’un ensembleCde clades deXest donné en entrée. Nous calculons tout d’abord les composantes connexes deIG(C)(soit de façon naïve en tempsO(|C|2)en construisant le graphe d’incompatibilité, soit directement en temps sous-quadratique [Charbit et al., 2008]).

Puis, pour toute composante connexe non trivialeC0⊆CdeIG(C)on calcule un réseau phylogénétique enracinéN0 pourC0. Finalement tous ces réseaux sont connectés pour devenir les blobs d’un réseauNpourC.

On dit que deux taxonsx, y∈Xsont séparés dansCs’il existe un cladeA∈Ctel que

|{x,y}∩A| = 1. En considérant chaque sous-problèmeC0, on identifie, en les contractant en un seul taxon-représentant, les ensembles de taxons qui ne sont pas séparés par un clade deC0. A la fin de reconstruction du réseau phylogénétique, on remplacera la feuille corres- pondant à chaque taxon-représentant par une multifurcation adjacente à l’ensemble des taxons non séparés qu’il représente.

Ainsi, dans la suite, on considérera qu’un ensembleCde clades surXa les propriétés suivantes :

(P2) Toute paire de taxons deXest séparée dansC.

En effet, notre algorithme traite successivement chaque composante connexe du graphe d’incompatibilité.

Comme expliqué en section 1.4.2, on peut considérer les réseaux à une couche de réti- culation comme un arbre phylogénétique auquel on ajoute des réticulations.

Ainsi, nous allons maintenant procéder en deux étapes pour reconstruire le réseau : – déterminer un ensemble minimalR de feuilles à enlever pour éliminer les conflits

dans les clades, c’est le problème MAXIMUMCOMPATIBLESUBSET,

– attacher avec un nombre minimal d’arcs les taxons impliqués dans des conflits à l’arbre reconstruit sur les clades sans conflits, c’est le problème MINIMUM ATTACH-

MENT.

La première étape sera détaillée en section 2.3.3 et la seconde en section 2.3.4.