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