TLEM2011_ejercicio_ML - Centro de Ciencias Genómicas

Anuncio
20 Enero, 2011
Taller Latinoamericano de Evolución Molecular 2011
Centro de Ciencias Genómicas, UNAM
Prof. Susana Magallón
CRITERIOS DE OPTIMIZACION II – MAXIMA VEROSIMILITUD
EJERCICIO 1: Identificación de modelo de sustitución de mejor ajuste.
OBJETIVO: Identificar los modelos de sustitución que mejor describan a los datos, usando la
técnica de modelo promedio y el Criterio de Información de Akaike (Akaike Information
Criterion, AIC), en el programa JModelTest.
JModelTest identifica al modelo de mejor ajuste a los datos, y además, proporciona una
lista de los modelos, ordenada por su ajuste a los datos, incluyendo el valor de –lnL, y el
porcentaje (absoluto y acumulado) del peso que les corresponde. Esto permite identificar un
intervalo de confianza de modelos que explican adecuadamente los datos. JModelTest
implementa cinco diferentes criterios de selección de modelo. En éste ejemplo, usaremos el AIC.
El paquete de JModelTest incluye además del ejecutable del programa, los ejecutables de
Phyml y Consense, que se usan para calcular árboles durante la selección de modelos.
JModelTest requiere de una matriz de datos alineados, en formato fasta, phylip o nexus
(aunque yo he tenido problemas para que acepte archivos nexus).
Antes de empezar:
i. Bajar de la red el programa JModelTest de la siguiente dirección:
http://darwin.uvigo.es/software/jmodeltest.html. Para bajarlo, tendrás que registrarte. JModelTest
(v0.1.1) está optimizado para MacOS X Intel, pero hay ejecutables para correrlo en MacOS X
PPC, Windows y Linux.
ii. Utilizarás la base de datos llamada TLEM2011_ML.PHYLIP. Esta contiene las secuencias de
cuatro genes del cloroplasto que codifican proteínas, para 30 plantas con semilla.
Ejemplo de comandos:
1. Abrir JModelTest. Haz doble click en jModelTest.jar. Esto abrirá una consola con
información del programa, y un menú en la parte superior.
2. Carga el archivo con el alineamiento. En el menú superior: File > Load DNA
Alignment. Ahí podras buscar entre las carpetas y seleccionar el archivo alineado. Por
ejemplo, para éste ejercicio, puedes cargar el archivo TLEM2011_ML.PHYLIP (pero se tarda
mucho), o alguno de los ejemplos que vienen en el paquete (primate-mtDNA.nex).
3. Selección de modelos y cálculos de verosimilitud. En el menú superior: Analysis >
Compute likelihood scores. Aparecerá una nueva ventana, en la que seleccionarás el
grupo de modelos entre los cuales elegir (11); si consideras cambios en las frecuencias de las
bases (si); si consideras cambios entre sitios (si tanto a sitios invariables [I], como a
distribución gamma [G] – dando cuatro categorías de sustitución bajo la curva de la distribución
1
20 Enero, 2011
[4]).; y permitiendo que se optimice un árbol de ML con cada modelo evaluado (ML
optimized). Presiona Compute Likelihoods. En pantalla, aparecerán los parámetros
estimados bajo cada uno de 88 modelos, incluyendo los valores asociados de verosimilitud del
árbol optimizado.
4. Selección y promediado de modelos. En el menú superior: Analysis > Do AIC
calculations … . Aparecerá una nueva ventana, en la que seleccionarás los detalles para la
selección de modelo con AIC. Si el numero de taxa es pequeño, selecciona Use AICc
correction (Nota que en el cuadro derecho debes indicar el número de caracteres en el
alineamiento). Para identificar cuales parámetros son de mayor relevancia, selecciona
Calculate parameter importances. Selecciona Do model averaging. Si deseas
la línea de comandos para análisis en PAUP*, selecciona Write PAUP* block. Presiona Do
AIC calculations. En la pantalla aparecerá (a) el modelo seleccionado; (b) la línea de
comandos para PAUP*; (c) una tabla de incertidumbre de modelos, con los modelos ordenados
por su valor de AIC, las diferencias de AIC entre los modelos, y sus pesos relativos y
acumulativos. Los pesos acumulativos pueden ser usados para identificar un intervalo de
confianza de modelos con buen ajuste. Por ejemplo, estimar filogenias usando todos los modelos
que acumulen ≥0.95 del peso.
5. Filogenia promediada: Obtener una filogenia promediada de los árboles optimizados en cada
modelo. En el menú superior: Analysis > Model-averaged phylogeny. Aparecerá
una ventana para especificar los detalles del análisis. Elige el criterio con el que se obtuvieron los
pesos (AIC o AICc); y que se construya un árbol de consenso estricto (Strict). También,
puedes elegir que el intervalo incluya sólo el 95% del peso (deslizando la flecha). La filogenia
promediada aparece tanto en formato NEXUS como en pantalla.
6. Guardar los resultados. En el menú superior: Results > Show results table. Y para
guardar los resultados: Edit > Save console.
EJERCICIO 2: Estimación de un árbol de ML usando PAUP*.
OBJETIVO: Estimar un árbol filogenético con Máxima Verosimilitud, usando PAUP*
(http://paup.csit.fsu.edu/).
Utilizarás la base de datos en el archivo TLEM2011_4G.nex.
Antes de empezar:
Debes de haber identificado previamente el (los) modelo(s) con mejor ajuste a los datos con
JModelTest (o algún otro método). Para el ejemplo en clase, utilizaré uno de los modelos
seleccionados por el AIC, para los datos completos (1as, 2as y 3as posiciones del codón). El
modelo seleccionado tiene los siguientes parámetros:
Model selected: GTR+I+G
-lnL = 45108.6406
K
= 10
AIC = 90237.2812
2
20 Enero, 2011
Base frequencies:
freqA =
0.2879
freqC =
0.1767
freqG =
0.2085
freqT =
0.3268
Substitution model:
Rate matrix
R(a) [A-C] =
1.7172
R(b) [A-G] =
5.8815
R(c) [A-T] =
0.4083
R(d) [C-G] =
1.0687
R(e) [C-T] =
7.2395
R(f) [G-T] =
1.0000
Among-site rate variation
Proportion of invariable sites (I) =
Variable sites (G)
Gamma distribution shape parameter =
0.4963
1.1438
NOTAS SOBRE PAUP* - al final.
Demostración: Utilizaré la base de datos completa (1as, 2as, y 3as posiciones).
Ejercicio 2A. Estimar un árbol de ML calculando todos sus parámetros, especificando sólo el
modelo de mejor ajuste para los datos (GTR+I+G). Abrir la ventana de PAUP*, y usar los
siguientes comandos:
EXECUTE TLEM2011_4G.nex;
EXCLUDE trimends;
OUTGROUP Ophioglossum;
SET criterion=likelihood;
LSET nst=6 basefreq=estimate rmatrix=estimate rates=gamma
shape=estimate pinvar=estimate clock=no;
HSEARCH START=stepwise ADDSEQ=random NREPS=1 SWAP=tbr;
SAVETREES FILE=TLEM2011_4G_ML1.phylo BRLENS=yes;
LSCORES 1 /
Ejercicio 2B. Estimar un árbol de ML especificando los valores de parámetros del modelo
proporcionados por Modeltest:
EXECUTE TLEM2011_4G.nex;
EXCLUDE trimends;
OUTGROUP Ophioglossum;
SET criterion=likelihood;
LSET NST=6 BASEFREQ=(0.2879 0.1767 0.2085) RMATRIX=(1.7172 5.8815
0.4083 1.0687 7.2395) RATES=gamma SHAPE=1.1438 PINVAR=0.4963
CLOCK=no;
HSEARCH START=stepwise ADDSEQ=random NREPS=1 SWAP=tbr;
SAVETREES FILE= TLEM2011_4G_ML2.phylo BRLENS=yes;
LSCORES 1 /
3
20 Enero, 2011
Ejercicio 2C. Iniciar búsqueda a partir de una topología estimada con máxima parsimonia. Antes
de empezar, es necesario tener disponible la topología derivada de máxima parsimonia. Para este
ejemplo, el archivo con el árbol de parsimonia se llama TLEM2001_4G_MP.clado. (* al final,
pongo los comandos para estimar un árbol de parsimonia).
[Paso 1: Estimar longitudes de rama y parámetros del modelo de sustitución en una topología
derivada de parsimonia]
EXECUTE TLEM2011_4G.nex;
EXCLUDE trimends;
GETTREES file= TLEM2011_4G_MP.clado from=1 to=1;
OUTGROUP Ophioglossum;
SET criterion=likelihood;
LSET nst=6 basefreq=empirical rmatrix=estimate rates=gamma
shape=estimate pinvar=estimate clock=no;
LSCORES 1 /;
[Resultado:
-ln L
45071.99871
Base frequencies:
A
0.287716
C
0.176462
G
0.209165
T
0.326656
Rate matrix R:
AC
1.71833
AG
5.78970
AT
0.41006
CG
1.05500
CT
7.19187
GT
1.00000
P_inv
0.497916
Shape
1.175414 ]
[Paso 2: Estimar topología y longitudes de rama indicando los valores de los parámetros del
modelo]
EXECUTE TLEM2011_4G.nex;
EXCLUDE trimends;
OUTGROUP Ophioglossum;
SET criterion=likelihood;
LSET nst=6 basefreq=(0.2878 0.1765 0.2092) rmatrix=(1.7183 5.7897
0.4101 1.0550 7.1919) rates=gamma shape=1.1754 pinvar=0.4979
clock=no;
HSEARCH start=stepwise addseq=random nreps=1 SWAP=tbr;
SAVETREES file= TLEM2011_ML3.phylo brlens=yes;
LSCORES 1 /
4
20 Enero, 2011
[Paso 3: Usar el árbol (topología y longitudes de ramas) estimado en el paso 2 para estimar
nuevamente parámetros del modelo de sustitución. Continuar los ciclos hasta que los pasos no
lleven a cambios notables en la topología ni en los valores de los parámetros. En estudios
empíricos, es necesario llegar al paso 2, o al 4].
EXTRA: Comandos para estimar un árbol con parsimonia (búsqueda heurística).
EXECUTE TLEM2011_4G.nex;
EXCLUDE trimends;
OUTGROUP Ophioglossum;
SET criterion=parsimony; [es el método default, así que no es
necesario especificarlo, a menos de que previamente hayan fijado
set criterion=likelihood]
SET maxtrees=1000 increase=auto;
PSET mstaxa=polymorph gapmode=missing;
HSEARCH start=stepwise addseq=random nreps=10 swap=tbr;
SAVETREES file= TLEM2011_4G_MP.clado;
NOTAS SOBRE PAUP*
· Para obtener una lista de los comandos de PAUP*, teclea “help”.
· Para obtener una breve descripción de cada comando, teclea “help commands”.
· Para obtener una explicación un poco mas detallada del uso de cada comando, y sus defaults,
teclea “<nombre_del_comando> ?”.
· Para obtener una descripción detallada de cada comando, sus opciones y uso, consulta el manual
de PAUP*.
EJERCICIO 3: Estimación de un árbol de ML y valores de apoyo bootstrap usando
RAxML*.
OBJETIVO: Estimar un árbol filogenético con Máxima Verosimilitud y valores de apoyo de
clados con bootstrap, usando RAxML*.
Utilizarás la base de datos en el archivo TLEM2011.phy.
RAxML (Randomized Axelerated Maximum Likelihood) es un programa para llevar a
cabo análisis filogenéticos de máxima verosimilitud que involucra un algoritmo rápido, y está
diseñado para el análisis de bases de datos muy grandes (muchos taxa y datos). El programa es
gratuito; existe en versiones para Mac (G5 e Intel), Windows y Linux; y se obtiene aquí:
http://icwww.epfl.ch/~stamatak/index-Dateien/Page443.htm . La versión mas actualizada es
RAxML v7.0.4. En ese mismo sitio puedes obtener el manual (Manual v7.0.4), así como links a
muchos sitios útiles con tutoriales y guías de instalación.
Existen dos servidores donde puedes correr tus análisis (ve el Manual v7.0.4) – SIN
EMBARGO, para los ejercicios de clase, vamos a llevar a cabo los ejercicios en nuestras
5
20 Enero, 2011
computadoras! Además, vale la pena que te familiarices con los comandos ántes de correr un
análisis en algún servidor público.
Antes de empezar:
· Pon la carpeta con el archivo ejectuable de RAxML, y los archivos asociados, en el escritorio, o
en un sitio al que puedas tener acceso mediante una trayectoria. Coloca dentro de esa carpeta tu
archivo de datos, así como archivos asociados (e.g., archivo de particiones:
dataxgenes.txt.reduced).
· RAxML funciona totalmente mediante la línea de comandos. Los comandos aparecen enlistados
en el Manual – mismo que debes leer cuidadosamente ántes de hacer cualquier análisis. Existen
unos cuantos comandos fundamentales (es decir, sin éstos, el programa no corre), y el resto son
opcionales. Esto último NO quiere decir que son irrelevantes!
· El archivo de datos (el alineamiento) debe estar en formato PHYLIP relajado. Esto consiste en
un archivo de texto simple que en el primer renglon tiene el numero de taxa, separado por un
espacio del número de caracteres. En los renglones subsecuentes deben venir los datos. Cada
renglon debe iniciar con el nombre de un taxón (máximo 256 caracteres) separado por un espacio
de la secuencia de datos. Luego debe haber un “return”, y en el siguiente renglón, debe estar el
nombre del segundo taxón, separado por al menos un espacio de la secuencia, etc.
Ejercicio 3A: Estimar un árbol de verosimilitud con valores de apoyo bootstrap, usando los taxa
y datos del archivo TLEM2011.phy. Este archivo es el mismo que usamos previamente
(TLEM2011_4G.nex), pero está en formato phylip. Abre una terminal en tu computadora, y
sitúate en la carpeta de RAxML (resulta mas fácil si nombras “raxml” a esa carpeta). Recuerda
que en esa carpeta, ademas del ejecutable y los archivos de RAxML, tiene que estar tu archivo de
datos, y cualquier otro asociado.
(a) Revisar si RAxML puede leer tu archivo de datos. Teclea:
./raxmlHPC –f c –m GTRCAT –s TLEM2011.phy –n testTLEM00
Si tu alineamiento contiene sitios no informativos (e.g., una columna que sólo contenga ?, -, N,
etc.) RAxML los excluirá, generando un nuevo archivo sin estos sitios, y tiene la extensión .red.
El nuevo archivo sin sitios informativos se llama TLEM2011.phy.reduced, y es el que
vamos a usar en éste análisis.
(b) Correr un análisis en el que obtengamos simultáneamente un árbol de ML y valores asociados
de bootstrap, obtenidos con “rapid Bootstrap”. Teclea:
./raxmlHPC –f a –s TLEM2011.phy.reduced –x 12345 –# 10 –m
GTRGAMMA –n testTLEM01
(Nota importante: Para el ejercicio en clase, llevaremos a cabo un número muy pequeño de
réplicas bootstrap, pues la finalidad es demostrar cómo funciona el programa. Sin embargo, para
6
20 Enero, 2011
un análisis “en serio”, debes correr un número muy alto de réplicas bootstrap. Es decir, debes
usar algo así como -# 1000 o mas.)
RAxML generará los siguientes archivos:
· RAxML_bestTree.testTLEM01 – contiene el árbol de máxima verosimilitud encontrado.
· RAxML_bipartitions.testTLEM01 – contiene el árbol de verosimilitud con valores de
apoyo bootstrap en sus ramas.
· RAxML_bootstrap.testTLEM01 – contiene los árboles generados en las búsquedas
bootstrap.
· RAxML_info.testTLEM01 – contiene información sobre el análisis que llevaste a cabo.
El archivo con información puede ser leído en cualquier editor de texto. Los archivos que
contienen árboles (i.e., los primeros tres) pueden ser abiertos en cualquier programa que permita
visualizar árboles (- no hay muchos). Un programa muy útil es FigTree (FigTree v1.3.1),
disponible en http://tree.bio.ed.ac.uk/software/figtree/ .
(c) Ver el los archivos con árboles en FigTree v1.3.1.
No hay manual para FigTree – pero no resulta necesario. Abre los archivos con árboles
producidos por RAxML. En File > Open, selecciona el archivo que quieras visualizar (e.g.,
RAxML_bipartitions.testTLEM01), y explora todo lo que puedes hacer. Repite File >
Open y abre y explora los otros archivos.
Ejercicio 3B: Estimar un árbol de verosimilitud con valores de apoyo bootstrap, especificando
un outgroup, diferentes particiones de datos, e iniciando búsquedas a partir de un árbol al azar (en
lugar de uno de parsimonia).
./raxmlHPC –f a –s TLEM2011.phy.reduced –x 12345 -# 10 –n
testTLEM02 –d –m GTRGAMMA –o Ophioglossum –q
dataxgenes.txt.reduced
Fin: Ve los resultados en FigTree.
Lista de softwares a utilizar en éstos ejercicios:
JModelTest: http://darwin.uvigo.es/software/jmodeltest.html
PAUP*: http://paup.csit.fsu.edu/
RAxML: http://icwww.epfl.ch/~stamatak/index-Dateien/Page443.htm
FigTree: http://tree.bio.ed.ac.uk/software/figtree/
Algunas referencias:
Posada, D. and T.R. Buckley. 2004. Model selection and model averaging in phylogenetics:
advantages of the AIC nad Bayesian approaches over likelihood ratio tests. Systematic
Biology 53:793-808.
Posada, D. 2008. jModelTest: Phylogenetic model averaging. Molecular Biology and Evolution.
25:1253-1256.
Stamatakis, A. 2006. RAxML-VI-HPC: maximum likelihood-based phylogenetic analyses with
thousands of taxa and mixed models. Bioinformatics 22:2688-2690.
7
Descargar