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

Documents pareils