Bioinformatique :
Les arbres phylogénétiques : construction et interprétation

Après avoir discuté des alignements multiples (MSA), il s'avérait logique de vous présenter l'étape suivante : la construction d'arbres phylogénétiques. Je précise que je ne parlerai ici que de phylogénie moléculaire.

Le but de la phylogénie est de comprendre les relations de parenté, de retracer l’historique évolutif d’un gène, d’une famille de gènes ou d’une espèce. Les arbres phylogénétiques sont une très bonne manière de schématiser et d'appréhender ces relations rapidement. Leur interprétation est également assez aisée du moment que l'on connait leur nomenclature. Avant de vous expliquer celle-ci, je me pencherai donc d'abord sur comment les réaliser.

Arbre phylogénétique : définition / petit rappel

Willi Hennig. Crédit : Wikipédia (CC-by-SA 3.0)

Willi Hennig. Crédit : Wikipédia (CC-by-SA 3.0)

Historiquement, les premières personnes ayant démocratisé la visualisation sous forme d'arbre sont les généalogistes et les naturalistes. De plus, Charles Darwin les réutilisa allègrement en 1859 dans son ouvrage devenu référence De l'origine des espèces. Mais si l'on cherche le précurseur historique, c'est en réalité Willi Hennig, père de la cladistique, qui a réussi à démocratiser les arbres phylogéniques.

Comme en généalogie où les arbres sont utilisés pour visualiser les relations de parenté, les arbres sont un très bon moyen de faire ressortir l'évolution d'une ou plusieurs espèces.

Attention, cela ne veut absolument pas dire que généalogistes et évolutionnistes utilisent les arbres de la même manière : ils se servent juste du même moyen de visualisation. Nous découvrirons plus loin comment interpréter un arbre phylogénique.

Comment générer un arbre phylogénique ?

Avant de générer un arbre phylogénique, il faut savoir ce que l'on cherche à voir/à montrer et se poser les bonnes questions. La première de ces questions est de savoir si la visualisation en arbre est la meilleure pour nos données. En effet, cela ne sert à rien de vouloir construire un arbre si les séquences que l'on a en main sont trop éloignées en terme d'évolution. Mais si la réponse est oui, il faut alors considérer le degré de précision désiré : cherche-t-on à obtenir une phylogénie rigoureuse ou simplement à 'se faire une idée' sur nos données ? En effet, en fonction des besoins, plusieurs méthodes de génération d'arbres employant différents algorithmes existent et peuvent être utilisées.

S'appuyer sur des méthodes connues

Outils. Crédit : zzpza sur Flickr (CC-by 2.0)

Outils. Crédit : zzpza sur Flickr (CC-by 2.0)

Voici un aperçu de ces méthodes. J'aurai pu faire le choix de toutes les détailler mais la taille de l'article aurait été conséquente et tout n'aurait pas forcément été traité. Il faudrait un article sur chaque méthode pour bien saisir les subtilités de chacune d'entre elles. Cela viendra peut-être un jour, mais en attendant je vous laisse vous contenter de cette liste avec un petit résumé pour chaque méthode et un tableau récapitulatif en fin de listing :

la méthode UPGMA (Unweighted Pair Group Method with Arithmetic Mean) est une méthode dite de distance, c'est-à-dire une méthode basé sur les similarités entre paires de séquences. Elle a vite été délaissée au profit de sa cousine (NJ) qui est plus adaptée aux études phylogéniques moléculaires.

- la méthode du Neighbour Joining (Neighbor Joining- NJ) : c'est aussi une méthode de distance, elle a l'avantage d'être vraiment rapide. En général, elle est utilisée pour faire des arbres de plusieurs milliers de séquences.

- la méthode du maximum de vraisemblance (Maximum Likelihood- ML) : c'est une méthode dite de caractère(s), elle repose sur un ou plusieurs caractères à étudier. Il s'agit d'une méthode probabiliste qui nécessite un modèle d’évolution. Le choix de ce modèle est crucial pour la qualité de l’arbre obtenu. On dit qu'il convient de l'utiliser à partir du moment où le nombre de caractères analysés est supérieur à la moitié du nombre de séquences analysées, sinon la reconstruction est considérée comme incorrecte. Elle est souvent décrite comme étant la meilleure méthode, c'est-à-dire la plus efficace pour trouver l'arbre le plus proche de la réalité. Son désavantage se situe au niveau des temps de calculs qui sont extrêmement longs (il m'est arrivé d'avoir des jobs tournant sur le cluster pendant plusieurs semaines pour des fichiers contenant plusieurs centaines de séquences).

- la méthode du maximum de parcimonie  (Maximum Parcimony) : elle est très appréciée car rapide en temps de calcul, mais pas aussi précise que sa cousine (ML). Comme souvent donc, on gagne du temps de calcul mais on perd de la précision.

D'autres méthodes apparaissent régulièrement comme celles basées sur de l'apprentissage artificiel (via un réseau de neurones comme ici ou par exemple) ou encore de l'inférence bayésienne comme  dans le logiciel MrBayes qui est très utilisé. Néanmoins, les méthodes principalement utilisées restent la NJ et la ML.

Quand utiliser ces méthodes ?

Crédit : Yoann M. (CC-by-SA 3.0)

Toutes les méthodes énoncées plus haut peuvent (et je dirais même doivent) être complétées par un bootstraping (bootstrap). Il s'agit d'un dérivé des simulations de Monte-Carlo, qui consiste à échantillonner les positions de l'alignement pour relancer la construction phylogénétique de façon itérative puis de comparer les résultats obtenus après 10, 100, 5000 répétitions. Il s'agit ici d'estimer la robustesse d'une phylogénie. Vous pourrez ainsi voir apparaître entre chaque branche de votre arbre une valeur de bootstrap (de 0 à 100%) traduisant le nombre de fois où cette branche a été retrouvée au fil des répétitions et juger ainsi de leur crédibilité. On dit en général qu'une valeur en dessous de 95 n'est pas à prendre en compte. Suivant les cas, on pourra revoir ce seuil (cut-off) à la baisse et bien souvent on se contentera d'un bootstrap d'environ 70 (plus ou moins).

Il faudra donc retenir ceci : vous devrez sélectionner votre méthode en fonction de vos données et de vos besoins. De même, le facteur temps peut rentrer en jeu : peut-être vous demandera-t-on d'être plus rapide que précis dans un premier temps. Vous privilégierez alors la méthode NJ à défaut de la ML qui serait pourtant plus pertinente.

Mon petit conseil dans ce cas là : lancez les deux générations d'arbres avec les deux méthodes différentes en même temps, vous obtiendrez le résultat NJ en premier et pourrez vous débrouiller grossièrement avec. Puis, lorsque le ML sera fini, vous pourrez très bien comparer vos deux arbres (avec le magnifique TreeJuxtaposer par exemple) et avoir un résultat plus proche de la réalité.

 Le fichier d'entrée (input)

Pour obtenir un bel arbre final, il est important de s'assurer tout d'abord de la qualité de l'alignement que l'on fourni en entrée. Il est donc primordial de vérifier que votre alignement est bien réalisé. Sans cela, votre arbre n'en sera que de plus mauvaise qualité et vos interprétations le seront donc également.

Vérifiez donc que ce que vous avez aligné (ADN ou acides aminés) est assez similaire et que l'alignement de ces séquences signifie bien quelque chose. En d'autres termes : si vous alignez des séquences codant pour l'insuline chez le chameau avec des séquences liées à la production de venin chez les serpents, ne soyez pas étonnés de ne rien apprendre... 🙂

Encore une fois, j'insiste mais c'est utile, posez-vous les bonnes questions : mon alignement est-il assez bon (j'entends par là qu'il faut que les séquences aient suffisamment de similarité pour qu'on puisse supposer un lien d'homologie entre elles) ? Les espèces/gènes/protéines étudiés sont-ils proches, très proches ou je n'en sais absolument rien ? Un arbre m'apportera-t-il les réponses à mon problème ?

Les formats de fichiers existants (output)

Deux formats de fichiers prédominent dans la génération d'arbres phylogénique : le Nexus et le Newick. Que ce soit autant pour l'un que pour l'autre, les deux types de formats ne sont pas forcément très digestes quand on se plonge dedans. J'ai par ailleurs une petite préférence pour le Newick. Même si au final le choix revient bien souvent au logiciel que l'on utilise pour visualiser l'arbre et à sa capacité à lire l'un ou l'autre.

Le Nexus est organisé en blocs. Chaque bloc commence de la sorte "begin <nom du bloc>;" et fini par "end;". En voici un exemple :

Et voici ce que donne l'arbre avec iTOL

Le Newick pour sa part ne possède pas cette organisation en blocs et peut être écrit sur une seule et même ligne (parfois donc très longue).

Voici un exemple d'un fichier représentant un arbre au format Newick :

Et voici ce que donne l'arbre avec iTOL 

Vous remarquerez sur ce dernier la présence d'une information en plus : la longueur des branches. Nous verrons comment l'interpréter plus loin.

Les logiciels utilisés pour la création d'arbres phylogéniques

Vous savez maintenant que l'on obtient un arbre à partir d'un alignement qui a du sens, qu'il existe plusieurs méthodes de génération d'arbres et que le format de sortie du fichier (output) n'est pas unique. Bien, maintenant il serait donc temps de s'intéresser à quel programme choisir.

Comme vous pouvez vous en douter, cela dépendra premièrement de la méthode que vous souhaiterez employer mais aussi du format de fichier que vous désirerez en sortie (des convertisseurs existent).

Les logiciels permettant de générer des arbres phylogéniques sont légions (et pour la plupart tous référencés sur cet excellent site). Je ne vais donc pas refaire ce travail d'énumération mais plus vous orienter sur mes préférés pour chaque méthode. Je vous invite bien entendu à discuter de ces choix en commentaire si vous le désirez.

Intéressons-nous donc d'abord aux méthodes dites de distances (généralement la méthode NJ pour la plupart) :

- quicktree , rapide et efficace. Il fait parfaitement le boulot. Gère très bien les grandes quantités de séquences. Rien à redire.

- MEGA (aussi utilisable en ML), un des pionniers en la matière. Déjà bien décrit à la fin de cet article, je reste sur mes positions et ne vous le conseille que pour des tout petits jeux de données...et encore.

- Paup* (aussi utilisable en ML), payant. Je ne l'ai jamais utilisé mais on en entend assez souvent parler.

- PHYLIP (aussi utilisable en ML), également un des vieux de la vieille. A fait ses preuves.

- BioNJ se combine à Paup ou/et PHYLIP. De bons retours également.

Puis pour les méthodes dites de caractères (ML, Parcimonie) :

- RaXML (ou RaXMLGUI pour ceux/celles préférant les clics), mon préféré car il offre un grand nombre d'options possibles et fournit de très bons résultats. Essayez-le !

- PHYML, au cas où RaXML ne vous aurait pas entièrement convaincu.

- PAML, fait le boulot également.

- Porn* pour son nom, j'avoue ne jamais l'avoir essayé 🙂

Au final il se pourrait également que vous fassiez votre choix en fonction des logiciels déjà installés sur votre machine ou votre cluster. Je pense qu'il faut surtout en essayer deux ou trois et comparer les résultats obtenus avec vos jeux de données avant d'en choisir un pour votre workflow habituel.

Comment visualiser son arbre ?

Question... Crédit : Tsahi Levent-Levi sur Flickr (CC-by 2.0)

Question... Crédit : Tsahi Levent-Levi sur Flickr (CC-by 2.0)

Encore une fois, ici, le phylogéniste est confronté à des logiciels par dizaines. Le choix se fera essentiellement sur la capacité de ceux-ci à éditer les arbres affichés (couleurs, longueurs des branches, noms, style d'arbre, etc), sur leur vitesse d’exécution mais aussi sur l'esthétisme final de ceux-ci (un trait noir tout carré et mal fini n'aura aucune chance face à un trait travaillé avec un petit jeu de lumière dessus par exemple). Voici donc une courte présentation de quelques logiciels de visualisation/édition d'arbres :

- Dendroscope (petit tutorial bien fait) donne des résultats assez sympas. Il est libre d'accès (vous devez juste demander l'autorisation symbolique de l'utiliser à l'auteur qui vous renverra gentiment une clé). Encore une fois : l'essayer c'est l'adopter. Je ne vous joindrai pas de captures d'écran, tout est sur le site officiel.

Archaeopteryx, un nom de dinosaure pour un logiciel de visualisation d'arbres évolutifs, quoi de plus normal ? Il ne fait pas partie de mes préférés en raison de son rendu final sur lequel j'aurais pas mal à redire (très années 90) mais se démarque assez sur sa capacité à éditer votre arbre via l'interface. À essayer également.

- Treedyn, pour ne rien vous cacher je ne l'ai jamais utilisé. Mais on m'en a dit que du bien. Apparemment on peut presque faire le café avec. J'attends volontiers vos retours si vous connaissez la bête !

-iToL, ici rien besoin d'installer puisque tout se passe sur le serveur de l'EMBL. Un outil merveilleux autorisant pas mal de choses et qui est très facile à prendre en main. Essayez-le vite !

Comment interpréter ce que l'on voit ?

Il faut d'abord savoir ce que l'on cherche...

Ce n'est donc pas vraiment possible de faire un manuel du parfait petit générateur d'arbres phylogéniques de A à Z.

Nous allons donc voir les différentes choses qui peuvent être traitées à partir d'une visualisation d'arbre.

- L'analyse à partir des valeurs de bootstrap : si vous avez suivi jusque-là, vous savez que la valeur du bootstrap présente sur votre arbre est importante. En effet, plus celle-ci sera élevée, plus la jonction entre les deux branches étudiées pourra être considérée comme robuste.

- L'analyse de la longueur des branches : la longueur des branches horizontales est proportionnelle à la "quantité d'évolution" entre les séquences et leurs ancêtres (unité = nombre de substitutions/site).  Sur un arbre phylogénétique, les ancêtres sont représentés par la jonction des branches (2 branches ou plus). Donc, en gros, plus une branche sera longue plus les séquences correspondantes seront éloignées en terme d'évolution par rapport à son ancêtre et entre elles. En général, l'arbre s'assortit d'une échelle de distance mais vous pouvez bien sûr afficher la longueur (comprise entre 0 et 1 la plupart du temps) sur les branches de l'arbre si c'est vraiment un critère important pour votre étude.

- Arbre enraciné ou arbre non-enraciné : il faut savoir qu'il est particulièrement difficile d'orienter temporellement les différences parmi les séquences et c'est pour cela que beaucoup de méthodes produisent des arbres non-enracinés. Il existe cela dit plusieurs méthodes pour tenter d'enraciner un arbre phylogénique : on peut choisir d'introduire un groupe (une ou plusieurs séquences) externe à ceux étudiés (on sait alors que la branche reliant ce groupe aux autres peut être considérée comme la racine) ou on peut considérer que toutes les lignées ont évolué de la même manière en même temps et se dire que la racine est le point de l'arbre équidistant de toutes les feuilles. À partir de là, vous pourrez alors choisir la visualisation qui correspondra le mieux à votre étude (phylogramme ou cladogramme de plusieurs sortes possibles).

- L'extraction de sous-groupes : parfois, on peut être amené à visualiser des arbres gigantesques. Il peut être intéressant alors de les découper astucieusement en plusieurs parties. Ainsi, vous pourrez peut-être même aller jusqu'à ré-affiner vos alignements en relançant ceux-ci uniquement avec les séquences prises en considération et vous pourrez également affiner votre arbre à partir de vos nouveaux alignements.

J'espère que je ne vous ai pas perdu au fil de ce billet qui je l'espère vous aura permis de comprendre les arbres phylogéniques du début à la fin. Il est évident que je n'ai pas pu tout traiter d'un coup, mais ne vous en faites pas : je reviendrai 🙂

  • À propos de

12 commentaires sur “Les arbres phylogénétiques : construction et interprétation

  1. Excellent résumé, cela ma permis d'avoir une idée claire alors qu'avant je ne distingué plus entre ces tests statistiques. J'aurais aimé lire un petit commentaires sur la signification des valeurs bootstrap, valeur maximum de vraisemblance. Je trouve beaucoup d'auteurs qui utilise dans leurs interprétations ces valeurs alors qu'ils utilisent des arbres de distance génétique ou des Neighbor-joining.

    Je vous prie de fournir des éclaircissement sur ces dans la mesure du possible.

  2. Merci Hocine pour votre commentaire.
    Je pensais avoir été assez clair pour ce qui est du bootstrap. La technique en elle même est très bien expliquée sur le lien que j'ai proposé dans le paragraphe. Je n'ai pas voulu répété la définition qui me semblait difficilement améliorable. Cependant si vous désirez que je vous explique celle-ci par rapport à un cas concret que vous avez à disposition, j'en serai ravi.
    Le bootstrap est très utilisé car très fiable.
    Pour ce qui est du maximum de vraisemblance, comme je l'ai dit dans l'article : tout dépend de ce que vous rechercher à montrer.
    Par contre, je pense que vous vous trompez (ou alors je ne comprend pas ce que vous dites) : il n'est pas possible d'additionner une méthode dite de Maximum de Vraisemblance (ML) avec une méthode dite de Neighbor-Joining (NJ).
    Enfin... oui, dans l'absolu c'est faisable mais ça n'aurait aucun sens.
    Comprenez bien qu'ici on parle d'une méthode de caractère (ML) et d'une méthode de distance (NJ). Ces deux méthodes ne sont pas utilisées pour chercher/trouver les mêmes choses.
    J'espère vous avoir éclairci dans votre questionnement. N'hésitez pas à aller plus loin dans un autre commentaire si ce n'est pas le cas.
    Au plaisir de vous lire !

  3. Merci Yoann pour le commentaire. Après avoir lu les informations du site, je comprend bien que chaque méthode utilise des critères différents, donc l'interprétation est fonction des données. Alors j'ai un problème de langage pour l'interprétation. J'ai construit un arbre basé sur; je vais l'écrire en anglais si vous n'avez pas d'inconvénients; the average distance using the percentage of identité. ce qui n' a rien a voire avec le NJ. Dans ce cas précis est ce que je peux parlé des valeurs bootstrap (relative aux différentes valeurs de la distance génétique qui s'affiche sur l'arbre)entre les différents groupe. De plus, je ne sais pas est ce que vous êtes prêt à m'aider pour l'interprétation de cette arbre. Si oui je vous prie de me faire parvenir votre mail afin je vous fasse part de document.
    Cordialement.

  4. Votre commentaire est assez flou. J'ai l'impression que beaucoup de notions se mélangent malheureusement.
    Vous pouvez m'envoyer un mail à admin[at]bioinfo-fr.net avec votre arbre et la manière dont vous l'avez construit.
    J'essayerai alors de vous aider à comprendre et interpréter ce dernier.

  5. Merci pour le cours. Je soushaite savoir quel est l'astuce pour identifier les sous-groupes dans un arbre phylogénétique.

    • Bonjour Koffié,

      l'identification de sous-groupes dans un arbre est propre à chaque arbre et à chaque élément étudié. Je ne peux donc pas vous fournir de formule miracle : ça n'existe pas.
      Bon courage dans vos interprétations et merci pour votre commentaire.

      • A défaut d'avoir une méthode pour identifier des groupes, vous pouvez essayer d'identifier des phylotypes grâce au logiciel du même nom:
        http://www.phylotype.org
        Attention, en plus de l'arbre au format Newick, il faudra vous munir d'un fichier contenant des annotations relatives aux taxa étudiés.

        • Bonjour Vincent et merci pour ton commentaire.
          Je ne connaissais pas ton logiciel, mais il me semble qu'il est très récent à en jugé la date de la publication.
          Il faudrait donner un exemple de ce que tu appelles "annotations relatives aux taxa étudiés". Rien que sur le site on ne voit pas qu'il faut ça. Un petit tutoriel manque selon moi.
          Je serai heureux d'essayer phylotype pour des études futures quand tout sera bien expliqué 🙂

  6. Slt! Je suis vraiment très satisfait de parcourir ce site et voir ton brillant résumé en ce qui concerne l’interprétation des arbres phylogénétiques qui m'a toujours coûté de la quinine.
    Au fait je suis de la L3 Bio(option Ecologie) mais dans une de nos matières(cladistique)je suis confronté à ces interprétations.
    Ton résumé m'a beaucoup servi,je voudrai si le temps te permet de m'approfondir un peu sur l'analyse du boostrap(non pas sur ce qu'on observe au niveau de l'arbre mais au niveau phylogénétique).
    Grand merci à toi.

    • Bonjour Diallo,
      Merci pour votre commentaire, je suis heureux de savoir que cet article ait pu vous éclairer.
      Pour l'analyse du bootstrap, je pense en faire un article. Donc dès que j'ai un peu de temps je m'y mettrai. Merci pour ton suivi !

  7. Bonjour,
    Merci pour ce tuto qui permet d'avoir une vision plus nette de ce qui se fait en construction d'arbre phylo. J'ai cependant besoin d'un éclaircissement concernant RaXML. Est ce qu'il fait du maximum de parcimonie ? et comment le faire en GUI ?
    Merci d'avance.
    Cédric

    • Bonjour Cédric et merci pour votre commentaire.
      De mémoire RaXML permet bien de faire du maximum de parcimonie mais je ne peux pas vous aider pour la version GUI : je n'utilise que la ligne de commande :/
      Si vous ne trouvez pas votre bonheur avec le GUI voici le manuel de la version "pour barbu" : http://sco.h-its.org/exelixis/oldPage/RAxML-Manual.7.0.4.pdf
      Bonne continuation à vous !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *