Utilisation des phylogénies - desdevises
Transcription
Utilisation des phylogénies - desdevises
Master UPMC / SDUEE / SEP 4US24 - Adaptation et phylogénie Responsable de l’UE : Yves Desdevises Travaux Dirigés Tout d’abord, si ce n’est pas déjà fait, téléchargez et installez les logiciels à partir de la page web du cours (http://desdevises.free.fr/Adaphyl). Vous pouvez bien sûr utiliser les logiciels pour effectuer d’autres analyses que celles décrites ici, ou d'autres logiciels de votre choix. Prenez votre temps et n’hésitez pas à consulter l’aide des logiciels fournis. 1. Analyse comparative : caractères quantitatifs Contrastes indépendants Logiciels : Mesquite + PDAP - Vous aurez besoin de données quantitatives et du (des) arbre(s) construit(s) à partir des données moléculaires. o Il faut utiliser un fichier de données quantitatives correspondant aux hypothèses à tester : taille, taille/hauteur, âge, profondeur, régime alimentaire, grégarité, … Utilisez pour cela les mesures faites en TP, les fiches FAO, et la base de données FishBase (http://www.fishbase.org/search.cfm?lang=French). - Si ce n’est déjà fait, le module PDAP doit être installé dans Mesquite. Pour cela, démarrez Mesquite et choisissez File puis Available to Install or Update. Si PDAP:PDTREE apparaît, sélectionnez-le. Sinon, sélectionnez Check Now for Notices/Installs... puis entrez l’URL http://mesquiteproject.org/pdap_mesquite/install.xml puis cliquez sur Install. - Mesquite peut-être utilisé pour entrer les données continues directement ou pour importer un fichier texte (File ➙ Include File…). Pour entrer les données, aller dans Characters, puis New Empty Matrix, choisissez Continuous Data, et entrez les données pour chaque taxon. - Pour calculer les contrastes pour les variables, il cliquer sur l’arbre pour activer le Tree Window, puis aller dans Analysis:Tree ➙ New Chart for Tree ➙ PDAP Diagnostic Chart. Le diagramme montre les valeurs absolues des contrastes indépendants contre leurs variances. Pourquoi fait-on cela ? - Un nouveau menu est apparu, PDAP.Chart, dans lequel vous pouvez choisir les analyses à effectuer. Pour une régression des contrastes d’une variable contre l’autre, choisissez Y Contrasts vs. X Contrasts (positivized). La fenêtre en haut à gauche donne les détails des résultats de l’analyse. Notez que pour toutes les analyses, l’onglet Text donne des informations intéressantes, notamment les significativités, corrélations, pente, … 1/9 12/04/16 - Si vous désirez exporter les contrastes pour des analyses dans d’autres logiciels de statistiques (R, XLStat,…), à partir de la fenêtre Y Contrasts vs. X Contrasts (positivized), choisissez PDAP.Chart ➙ Generate File of Independent Contrasts (FIC). Les contrastes non standardisés des deux variables sont dans les colonnes 3 (X) et 4 (Y), leur variance dans la colonne 5. Régression phylogénétique PGLS Logiciels : R + ape + phytools + maps (via Packages et données ➙ Installateur de Packages) - Il vous faut un fichier de données en format texte avec tabulations, par exemple Taxa PBCV1 PBCVAR158 PBCVFR483 PBCVNY2A … Col1 300 300 300 300 Col2 3 3 3 3 et un arbre en format Phylip (= Newick), par exemple ((PBCV1:0.375974,(CbV01:0.347976,PgV16T:0.326225):0.450608):0.12 0194,(HcV:2.471584,… - Estimation du signal phylogénétique λ avec R et phytools : library(phytools) data=read.table(file.choose(),sep="\t",header=T,row.names=1) tree=read.tree(file.choose()) Col1=data[,1] Col2=data[,2] names(Col1)=rownames(data) names(Col2)=rownames(data) phylosig(tree, Col1, method="lambda", test=TRUE, nsim=999) [pour Col1, ajoutez des lignes équivalentes pour les autres caractères éventuels] Cette procédure teste par ML la valeur de λ estimé (LogL) contre un modèle où λ = 0 (pas de signal, LogL0). - Calcul des régressions PGLS avec différents modèles (BM (= FIC), OU, et λ (Pagel)) à l’aide de R et ape. Cette procédure effectue les 3 analyses (pour la régression linéaire Col1 = f(Col2), à adapter à votre cas) et présente les résultats dans un seul graphique avec les AIC des 3 modèles : library(ape) library(nlme) data=read.table(file.choose(),sep="\t",header=T,row.names=1) tree=read.tree(file.choose()) bm.tree = corBrownian(phy = tree) bm.pgls = gls(Col1 ~ Col2, correlation = bm.tree, data) summary(bm.pgls) ou.tree = corMartins(1,phy = tree) ou.pgls = gls(Col1 ~ Col2, correlation = ou.tree, data) 2/9 12/04/16 summary(ou.pgls) pag.tree <- corPagel(1,phy = tree) pag.pgls = gls(Col1 ~ Col2, correlation = pag.tree, data) summary(pag.pgls) plot(data$Col2, data$Col1, pch = 1, xlab = "Col2 (unit)", ylab = "Col1 (unit)") abline(bm.pgls, col = "red") abline(ou.pgls, col = "blue") abline(pag.pgls, col = "green") legend(x = "bottomright", legend = c(paste("bm.pgls, AIC = ", round(AIC(bm.pgls),2)), paste("ou.pgls, AIC = ", round(AIC(ou.pgls), 2)), paste("pag.pgls, AIC = ", round(AIC(pag.pgls), 2))), lty = 1, col = c("red", "blue", "green")) Interprétez les résultats en utilisant la sortie de R et le graphique. Régression sur les vecteurs propres phylogénétiques (PVR) et partitionnement de la variation Logiciels : R + ape + Installateur de Packages) nlme + vegan (via Packages et données ➙ - Comme précédemment, il vous faut un arbre et des données liées à l’hypothèse à tester. Il va falloir effectuer des analyses statistiques et des tests de significativité, ce qui suppose de vérifier la normalité des données, ou d’utiliser des tests par permutations (ce que fait vegan ici). - La procédure ci-dessous calcule la matrice de distance patristique à partir de l’arbre, en extrait les coordonnées principales (PC) puis vous montre les valeurs propres associées ainsi que les valeurs correspondantes « aléatoires » issues du modèle du bâton brisé (broken stick) afin que vous sélectionniez les PC qui représenteront la phylogénie. La partition est ensuite réalisée à partir de ces PC (3 ici, à réajuster dans les commandes si besoin). Le test du modèle global est réalisé par (200) permutations, comme précédemment sur la régression linéaire Col1 = f(Col2) : library(ape) library(nlme) library(vegan) tree=read.tree(file.choose()) md=cophenetic.phylo(tree) pc=pcoa(md) pc P=pc$vectors[,c("Axis.1","Axis.2","Axis.3")] data=read.table(file.choose(),sep="\t",header=T,row.names=1) Y=data$Col1 X=data$Col2 varpart(Y,X,P) rda(Y,X,P) rda=rda(Y,X,P) anova(rda, step=200, perm.max=200) mod=varpart(Y,X,P) plot(mod) 3/9 12/04/16 Interprétez les résultats en utilisant la sortie de R et le graphique. 2. Evolution corrélée de caractères discrets et optimisation de caractères Evolution corrélée de caractères discrets Logiciel : Mesquite - Il vous faut un arbre et des données discrètes comme des variables morphologiques (p. ex. sparmorpho). Mesquite requiert des fichiers en Nexus (arbres et données) mais il peut importer de nombreux formats. - Lancez Mesquite. Importez sparmorpho. Liez l’arbre moléculaire phylomol.tre (en Nexus) à sparmorpho (File ➙ Link File) et ouvrez-le (Taxa&Trees ➙ New Tree Window et suivez les instructions). Attention, les taxons doivent avoir exactement les mêmes noms dans les deux fichiers. Une autre façon de procéder est de construire un fichier Nexus unique en collant l’arbre (e.g. phylomol.tre) après la matrice de caractères (p. ex. sparmorpho). - Vous pouvez modifier la forme de l’arbre par Display ➙ Tree Form - La corrélation entre des caractères binaires peut être testée dans Mesquite avec plusieurs méthodes. Une fois qu’une matrice de caractères est chargée et un arbre associé ouvert Taxa&Trees ➙ New Tree Window ➙ Stored Trees, les méthodes suivantes peuvent être utilisées : o Comparaisons par paires (Pairwise comparisons) (Maddison 2000) par Analysis:Tree ➙ Pairwise Comparison. Vous devez choisir la façon dont les paires indépendantes sont sélectionnées. o Un test en ML (Pagel 1994, ex-Discrete) par Analysis:Tree ➙ Correlation Analysis. Dans la première fenêtre, vous pouvez indiquer le nombre de permutations du test de significativité en LRT (e.g. 100 or 1000), mais il est possible de le faire dans une seconde étape. L’hypothèse nulle est la non-corrélation des caractères. Optimisation de caractères Logiciels : Mesquite - Mesquite peut optimiser des caractères discrets (par parcimonie et ML) et continus (parcimonie). o Optimisez des caractères morphologiques sur la phylogénie moléculaire avec la méthode de votre choix Analysis:Tree ➙ Trace Character History. Particulièrement pour une optimisation en ML, choisissez l’option Drawing ➙ Tree Form ➙ Balls & Sticks o La même chose peut être effectuée avec des caractères continus par parcimonie par moindres carrés, avec les mêmes commandes. Les caractères continus et binaires peuvent être placés dans un même fichier, avec les arbres phylogénétiques. 4/9 12/04/16 3.1 Datation moléculaire Logiciels : MEGA 6 ou 7, Suite BEAST (+ BEAUTi, TRACER, FigTree, TreeAnnotator) Avec MEGA 6 : - Chargez un alignement (.meg). Vous pouvez également sélectionner l’alignement à l’étape suivante. Il vous faut un arbre correspondant en format Newick - Choisissez Clocks ➙ Compute TimeTree - Sélectionnez l’arbre puis Open et répondez Yes à la question posée. - Il faut ensuite définir un/des points de calibrations, éventuellement en entrant des bornes minimum-maximum : o Vous pouvez le faire dans le Calibration Editor via New, puis sélectionnez les taxons descendant du nœud à calibrer (Taxon A et Taxon B), nommez cette calibration et éventuellement le nœud (MRCA) et entrez au moins une borne correspondant au temps de divergence (Min et/ou Max). Sauvez la calibration (Save Changes) o Vous pouvez aussi cliquer sur le nœud à calibrer dans le Tree Explorer (le nœud se marque par un losange) puis choisir Compute ➙ Add Calibration, et entrer les mêmes informations que précédemment dans le Calibration Editor. o Recommencez pour chaque point de calibration disponible. - Cliquer sur Next Step… - Vous pouvez choisir différentes contraintes d’horloge moléculaire via Clock Stringency, par exemple All Clocks - Choisissez le modèle correspondant à vos données, et cliquer Compute - Les résultats sont visibles dans le Tree Explorer Avec la suite BEAST : BEAST utilise un format d’entrée complexe (xml) mais BEAUTi est un logiciel convivial qui sert à élaborer ces fichiers xml. Ceux-ci peuvent toujours être modifiés par la suite avec un éditeur de texte. Vous pouvez trouver des tutoriels détaillés sur le site de BEAST (http://beast.bio.ed.ac.uk), qui sert à de nombreux types d’analyses - Il s’agit d’estimer la date des événements de spéciation définis en fonction de points de calibrations. Vous pouvez utiliser la phylogénie moléculaire des Sparidae et des points de calibration au hasard. Vous pouvez trouver des estimations de divergences connues sur http://www.timetree.org. Utilisez par exemple la divergence estimée entre Boops et Dicentrarchus, 145 MA, et/ou celle entre Gadidae et Sparidae estimée à 165 MA - Vous n’avez pas besoin d’entrer un arbre prédéfini (mais c’est possible), car l’espace des arbres est exploré par MCMC. BEAST utilise un format d’entrée complexe mais BEAUTi permet d’élaborer ces fichiers à l’aide d’une interface graphique. Ces fichiers peuvent ensuite être modifiés pour des analyses spécifiques. TRACER, TreeAnnotator et FigTree permettent de lire et d’interpréter le fichier de sortie. 5/9 12/04/16 - Ouvrez BEAUTi et chargez votre (ou vos) fichier(s) de séquences en Nexus en cliquant sur + en bas à droite. Il est possible d’utiliser plusieurs gènes : pour cela il faut créer des fichiers Nexus contenant les différents alignements (p. ex. un pour le 16S, un pour le cytb. Les taxons doivent être rigoureusement les mêmes) - Dans l’onglet Taxon sets, créez les ensembles de taxons correspondants aux points de calibration. Créez un ensemble (set) en cliquant sur + et définissez à l’aide des fenêtres de droite les espèces qui y sont incluses (Included Taxa). Nommez chaque ensemble avec un nom clair (p. ex. Boops-Dicent). - Dans l’onglet Site Models, appliquez le modèle correspondant le mieux à vos séquences (utilisé pour la phylogénie). Il est possible d’appliquer plusieurs modèles si vous avez concaténé les séquences de plusieurs gènes : dans ce cas, il faut préalablement cliquer sur Unlink Clock Models dans l’onglet Data Partitions - Dans l’onglet Clock Models, cliquez sur le modèle correspondant à vos séquences, choisissez: Lognormal Relaxed Clock (Uncorrelated) et cochez Estimate - Dans l’onglet Trees, choisissez Speciation: Yule Process - C’est par l’onglet Priors que vous devez indiquer les points de calibration des ensemble créés. Choisissez le tmrca (time for most recent common ancestor) correspondant à un ensemble donné de taxons, cliquez sur le Prior correspondant et entrez la valeur choisie ainsi que le modèle de distribution de cette valeur. Par exemple, choisissez Normal, indiquez la valeur connue (e.g. 145 pour Boops-Dicent) comme moyenne (mean) et 20 comme écart-type (Stdev), reflétant l’incertitude associée à cette valeur. Pour les valeurs à estimer, laissez le Prior sur None (Tree Prior Only) - Dans l’onglet MCMC, définissez le nombre de générations nécessaires à l’analyse (Length of chain: e.g. 1000000) et la fréquence d’échantillonnage (Log parameters every:). Vous pouvez donner un nom à votre analyse dans File name stem - Quand tout est entré correctement, cliquez sur Generate BEAST File… en bas à droite. - Ouvrez BEAST, sélectionnez votre fichier xml (Choose File…) et cliquez sur Run - Quand l’analyse est terminée, ouvrez le fichier [nom].log avec TRACER par File ➙ Import Trace File…, et visualisez les dates estimées, ainsi que leur intervalle de confiance, en cliquant sur les tmrca correspondants dans la colonne de gauche. - Ouvrez le fichier .trees avec TreeAnnotator. Souvenez-vous que le burnin s’applique aux arbres sauvés, pas au nombre de générations. Sauvez un fichier .tre - Ouvrez le fichier .tre avec FigTree pour visualiser le chonogramme avec les âges aux nœuds, via Node Bars et Node Labels, afin de montrer les valeurs moyennes ou les intervalles de confiance à 95 % (height_95%_HPD). 3.2 Cophylogénie Logiciels : CopyCat, Jane, TreeMap 1.0 et 3 Il vous faut une phylogénie de parasites associés aux hôtes dont vous avez élaboré une phylogénie. Les Sparidae sont parasités par les parasites du genre Lamellodiscus (plathelminthes monogènes). Des séquences d’ADNr 18S partiel sont disponibles pour les espèces parasitant les Sparidae de Méditerranée. Ces séquences sont dans le fichier Lamello18S.nex. Elaborez un arbre 6/9 12/04/16 phylogénétique à l’aide de ces séquences et sauvegardez-le. Méthode de congruence globale Il vous faut 3 fichiers : la phylogénie des hôtes, la phylogénie des parasites, le fichier d’association (AssocLamSpar.txt). Les noms des taxons dans les différents fichiers doivent être rigoureusement identiques. Les arbres peuvent être en format Phylip. Le fichier d’association mentionne sur chaque ligne le parasite puis l’hôte associé, séparés par une tabulation. Des parasites généralistes doivent être répétés. Voilà un exemple : L_ignoratus L_ignoratus L_mormyri … D_sargus D_vulgaris L_mormyrus - Allez directement au second onglet Configuration and Execution of Parafit - Sélectionnez le nombre de permutations (999 par exemple) à la Step 2 - Vous pouvez choisir la méthode de corrections pour les valeurs propres négatives, cependant elles ne doivent pas être produites en utilisant un arbre, mais peuvent l’être si vous partez de distances génétiques brutes. - Sélectionnez le fichier d’associations à l’aide du bouton correspondant (Step 3) - Choisissez (Step 4) Create Distance Matrix From Host Tree - Faites de même pour l’arbre des parasites. - Cliquez sur Validate! à la Step 6 - Cliquez sur Start Local Analysis à la Step 7 (si celle-ci ne démarre pas, trouver le fichier Jar exécutable ParafitWrapper (normalement dans defaultwdir) et doublecliquez dessus). - Allez au troisième onglet pour voir les résultats. - Sélectionnez la matrice de distance pour les parasites (Step 1) : c’est la matrice sélectionnée par défaut, mais sinon elle devrait être placée dans le nouveau dossier ID_[X] (généralement dans defaultwdir), et être appelée [Nom].parasites.dist - Faites de même pour ma matrice des hôtes [Nom].hosts.dist (Step 2). - Sélectionnez (Step 3) la sortie de Parafit Hostpara.out (attention à renommer les fichiers de sortie successifs). - Cliquez sur Evaluate Parafit Results (Step 4), et interprétez les résultats. Méthodes basées sur les événements Avec Jane : - Pour utiliser Jane, ouvrez le même fichier Nexus (File ➙ Open Tree), en Solve Mode, définissez les coûts des événements par Settings ➙ Set Costs, et la distance maximum de transfert d’hôtes par le même menu (Set Host Switch Distance Limit, en nombre de nœuds séparant les hôtes). Population size et Number of Iterations 7/9 12/04/16 sont des paramètres de l’algorithme (plus ces nombres sont grands, plus la recherche est efficace mais plus elle est longue). - Une fois que les solutions sont calculées, ouvrez-les en cliquant sur les lignes correspondantes. - Pour tester la significativité des reconstructions, il faut passer en Stat Mode, choisir un nombre de reconstructions par Sample Size (par exemple 999 en ajoutant la valeur observée (Include original problem instance)) et paramétrer à nouveau l’algorithme génétique. L’histogramme et la fenêtre Statistics permettent d’interpréter les résultats. TreeMap 3 (téléchargeable à http://sites.google.com/site/cophylogeny/) est encore en cours de développement, on ne peut garantir un fonctionnement optimal sur tous les systèmes. Voici comment l’utiliser : - Ouvrez le fichier TreeMap3b1234.jar [version du 14 avril 2011, prenez la plus récente] - TreeMap (et Jane) utilisent des fichiers d’entrée spéciaux en Nexus. Utilisez le fichier LamSpar.nex comme modèle pour créer le vôtre. - Ouvrez ce fichier (tanglegram) par File ➙ Open tanglegram - Vous pouvez le modifier de diverses façon à l’aide du menu Display options et « démêler » au mieux le tanglegram à l’aide du bouton Untangle - Dans le menu Analysis, vous pouvez trouver la meilleure façon d’associer les deux arbres (Solve the tanglegram, qui permet de paramétrer l’algorithme utilisé), de modifier les coûts des événements (Event costs), et de tester si ces reconstructions sont significatives (Statistical tests ➙ estimate significance). Attention, le test peut être très lourd en calculs ! Il est également possible d’utiliser un test heuristique (Heuristic Search), plus rapide mais moins précis, et de tester la corrélation des distances entre hôtes et parasites des paires qui cospécient (Distance Correlations) Avec TreeMap 1.0 (toujours utile mais ancien, ne fonctionne que sous OS pré-X (Mac) et Windows) : - Démarrez TreeMap. TreeMap (et Jane) utilisent des fichiers d’entrée spéciaux en Nexus, que vous pouvez créer via File ➙ New - TreeMap des arbres résolus et enracinés en format Nexus or Phylip, que vous pouvez importer à l’aide des boutons appropriés, puis éditer les associations. Une autre manière de procéder consiste à créer un fichier d’entrée en prenant comme modèle les fichiers d’exemple de TreeMap - TreeMap montre le Tanglegram (les clades peuvent pivoter), une Reconstruction qui ajuste les deux arbres sans événements de transfert, une fenêtre Branch Lengths montrant les copaths pour les paires qui cospécient, et une fenêtre Histogram. Les différentes options des menus sont actives en fonction de la fenêtre au premier plan. La fenêtre Histogram vise à estimer si le nombre de cospéciations pour la reconstruction observée est significativement plus élevé que pour des arbres aléatoires. L’histogramme donne la distribution sous l’hypothèse nulle - Les reconstructions optimales, maximisant le nombre de cospéciations et incluant des transferts, peuvent être calculées à l’aide d’une recherche heuristique (générant une seule reconstruction) 8/9 12/04/16 ou exacte (très long ! Pour les cas simples) par le menu Reconstruction menu, en plaçant la fenêtre Reconstruction au premier plan - La significativité du nombre maximum de cospéciations calculé par TreeMap peut être estimée par le menu Randomisation menu en plaçant la fenêtre Reconstruction au premier plan. Vous pouvez randomiser l’arbre des hôtes, des parasites, ou les deux, ce qui peut donner des résultats différents. Utilisez l’option proportional-to-distinguishable pour générer le nombre d’arbres aléatoires de votre choix (e.g. 100, 1000). Le résultat apparaît dans la fenêtre histogram - La randomisation des branches vise à estimer (dans la fenêtre Branch Lengths) la significativité de la corrélation observée entre les copaths (pour les arbres additifs) ou si on le souhaite les temps de coalescence (à choisir dans le menu View). Seules les paires qui cospécient sont comparées, donc cela dépend de la reconstruction. 9/9 12/04/16