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
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
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 là 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 ?
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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#NEXUS Begin trees ; Translate 1 gene_A, 2 gene_B, 3 gene_C, 4 gene_D, 5 gene_E, 6 gene_F, 7 gene_G, 8 gene_H, 9 gene_I, 10 gene_J ; tree PAUP_1 = [&U] (1,((2,3),((((4,10),(5,8)),(6,9)),7))); END ; |
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 :
1 2 3 4 |
(((seq_A :0.28006,seq_B :0.22089):0.40998,(seq_C :0.32304, (seq_D :0.58815,((seq_E :0.5807,seq_F :0.23569):0.03586, seq_G :0.38272):0.06516):0.03492):0.14265):0.63594,(seq_H :0.65866, seq_I :0.38791):0.32147,seq_J :0.57336); |
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 ?
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 🙂
Laisser un commentaire