Empezando por las limitaciones de la parsimonia
Al final del M27, mencionamos la limitación de la parsimonia: el fenómeno de la "atracción de ramas largas" (long branch attraction). La máxima verosimilitud (Maximum Likelihood, ML) supera esta limitación desde un punto de vista estadístico. Define explícitamente un modelo evolutivo y busca el árbol que maximiza la probabilidad de los datos observados bajo ese modelo.
En esta sección, repasaremos la jerarquía de modelos de sustitución evolutiva, el algoritmo de poda de Felsenstein, el uso práctico de IQ-TREE y las métricas modernas de confianza en los árboles, como SH-aLRT y UFBoot. Este es el punto culminante y el estándar práctico del tercer episodio sobre filogenias de Micro Tier.
Jerarquía de modelos de sustitución evolutiva
La sustitución en las secuencias de ADN se expresa como un proceso estocástico, definido por una matriz de tasas Q.
JC69 (Jukes-Cantor): Todas las tasas de sustitución son iguales. 1 parámetro.
Q = \begin{pmatrix} - & \alpha & \alpha & \alpha \\ \alpha & - & \alpha & \alpha \\ \alpha & \alpha & - & \alpha \\ \alpha & \alpha & \alpha & - \end{pmatrix}
K80 (Kimura): Diferencia entre transiciones y transversiones. 2 parámetros.
HKY85: Transiciones/transversiones + frecuencias de nucleótidos desiguales. 5 parámetros.
GTR (General Time Reversible): 6 tasas de sustitución + frecuencias de nucleótidos. 9 parámetros. El más flexible.
GTR+Γ: GTR + heterogeneidad de tasas por sitio (distribución gamma). Es el estándar en la práctica.
GTR+Γ+I: Proporción de sitios invariantes (+I). Para datos extremadamente heterogéneos.
La opción -m TEST de IQ-TREE selecciona automáticamente el modelo óptimo. En la práctica, ya no es necesario elegir los modelos manualmente.
Verosimilitud del árbol = Probabilidad de la MSA observada
Dado un árbol T, longitudes de rama b y un modelo evolutivo M, la verosimilitud de la MSA observada X es:
L(T, b, M) = P(X | T, b, M) = \prod_{\text{site } i} P(\text{column}_i | T, b, M)
Se asume que cada columna es independiente. Al aplicar el logaritmo:
\log L = \sum_i \log P(\text{column}_i | T, b, M)
El problema radica en calcular la probabilidad de una columna, P(columna | T, b, M). Dado que los estados de los nodos internos son desconocidos, se deben sumar todas las combinaciones posibles de estados ancestrales. El enfoque directo requiere un tiempo exponencial, igual al número de estados elevado a la potencia del número de nodos internos, lo cual es inviable.
El algoritmo de poda de Felsenstein reduce este problema a un tiempo polinómico.
Poda de Felsenstein — La estructura similar al Forward-Backward de HMM
En M19 aprendimos el Forward de HMM. La poda (pruning) sobre un árbol es su extensión.
Para cada nodo v y cada estado x, se define la verosimilitud condicional L_v(x):
L_v(x) = P(\text{observaciones del subárbol bajo } v \mid \text{estado de } v = x)
Hoja: si el carácter observado es x, L_leaf(x) = 1; de lo contrario, 0.
Nodo interno (hijos c1, c2, longitud de rama b1, b2):
L_v(x) = \left[ \sum_{y} P(x \to y | b_1) L_{c_1}(y) \right] \times \left[ \sum_{y} P(x \to y | b_2) L_{c_2}(y) \right]
P(x → y | b) es la probabilidad de que el estado x cambie a y durante la longitud de rama b. Derivado del modelo evolutivo M (exponencial de Q).
En la raíz:
P(\text{column}) = \sum_x \pi(x) L_{\text{root}}(x)
π(x) es la probabilidad del estado inicial (frecuencia de equilibrio).
Este cálculo es O(N × K²) para cada columna. N es el tamaño del árbol, K es el número de estados (ADN=4, proteínas=20). Si cada columna se procesa de forma paralela e independiente, incluso los MSA a gran escala son viables en la práctica. Si el Forward de HMM acumula probabilidades a lo largo del eje temporal, la poda de Felsenstein acumula probabilidades a lo largo del eje del árbol. La misma estructura de DP.
Optimización de la longitud de la rama
Se optimiza la longitud de la rama b manteniendo fija la topología del árbol. Se deriva la log-verosimilitud con respecto a cada b y se converge mediante el método de Newton o la búsqueda de la sección áurea (golden section search). Tras optimizar cada rama, se procede a optimizar la siguiente. Se repiten múltiples iteraciones. Esta parte es el núcleo de la optimización numérica en las herramientas prácticas.
Búsqueda de la topología del árbol
La longitud de las ramas es de tiempo polinómico, pero la topología del árbol en sí es NP-completa, al igual que en grandes ML. Las herramientas prácticas utilizan búsquedas heurísticas.
- NNI (Nearest Neighbor Interchange): Intercambio de ramas vecinas.
- SPR (Subtree Pruning and Regrafting): Podar un subárbol y reinsertarlo en otra posición.
- TBR (Tree Bisection and Reconnection): Dividir el árbol en dos partes y reconectarlas.
La característica de IQ-TREE es la búsqueda paralela de múltiples árboles iniciales + perturbación del árbol (tree perturbation). Esto evita la trampa de los óptimos locales.
Ejecución de IQ-TREE — Estándar práctico
# Instalaciónwget https://github.com/iqtree/iqtree3/releases/download/v3.0.0/iqtree-3.0.0-Linux.tar.gztar xzf iqtree-3.0.0-Linux.tar.gz./iqtree3-3.0.0-Linux/bin/iqtree3 --version
# Ejecución básica (selección automática del modelo + árbol ML + bootstrap)iqtree3 -s my_msa.fasta -m TEST -B 1000 -T AUTO
# Explicación de las opciones# -s: MSA de entrada# -m TEST: selección automática del modelo evolutivo (o especificar directamente -m GTR+G)# -B 1000: 1000 réplicas bootstrap de UFBoot# -T AUTO: selección automática de hilos de CPUArchivos de salida principales:
*.treefile: Árbol de máxima verosimilitud en formato Newick*.iqtree: Informe de ejecución (resumen del modelo seleccionado, verosimilitud y bootstrap)*.log: Registro detallado
Indicadores modernos de confianza: UFBoot y SH-aLRT
Aunque M26 introduce el bootstrap estándar, IQ-TREE utiliza dos indicadores más recientes.
UFBoot (Ultrafast Bootstrap): Minh et al. 2013. Reestimación RELL (RandomELL) que es de 10 a 100 veces más rápida que el bootstrap estándar. La interpretación de los valores difiere ligeramente del bootstrap estándar: UFBoot ≥ 95 es el umbral de confianza (equivalente al 70 del bootstrap estándar).
SH-aLRT (Shimodaira-Hasegawa approximate Likelihood Ratio Test): Prueba de razón de verosimilitud aproximada para determinar si cada rama es estadísticamente significativa. SH-aLRT ≥ 80 es el umbral de significancia.
Las ramas que cumplen con ambos indicadores se consideran "bien soportadas". En la práctica, al dibujar el árbol, se muestran ambos valores juntos.
Ejemplo de visualización parcial
Si dispone del archivo de árbol, puede visualizarlo con iTOL(https://itol.embl.de/) o FigTree. También es posible utilizar la biblioteca de Python ete3.
# Cargar el árbol con ete3 y mostrar el bootstrapfrom ete3 import Tree
t = Tree("my_tree.treefile", format=1)for node in t.traverse(): if not node.is_leaf(): # El valor de UFBoot está en el atributo support node.name = f"{node.support:.0f}"print(t.get_ascii(show_internal=True))¿Por qué utilizar la máxima verosimilitud en lugar de la parsimonia?
Tres ventajas clave.
- Evitar la atracción de ramas largas: El modelo evolutivo reduce probabilísticamente las coincidencias aleatorias.
- Posibilidad de realizar pruebas estadísticas: Se puede evaluar la razón de verosimilitud entre dos árboles (prueba SH, prueba AU).
- Prueba del reloj molecular: Permite incluir o excluir explícitamente el supuesto del reloj molecular.
La desventaja es el coste computacional. Si la parsimonia es O(N × K), la máxima verosimilitud es O(N × K² × número de iteraciones de la longitud de la rama). En la práctica, cientos de secuencias se procesan en minutos en un portátil; miles o decenas de miles requieren servidores.
Complejidad
- Verosimilitud por columna: O(N × K²)
- Verosimilitud del MSA completo: O(N × K² × L). L es el número de columnas.
- Optimización de la longitud de la rama: Varias iteraciones por cada rama.
- Búsqueda de la topología del árbol: Recálculo de la verosimilitud en cada movimiento NNI/SPR.
La paralelización de IQ-TREE es excelente; con 32 núcleos, 1000 secuencias × 500 columnas se resuelven en horas.
Mapeo computacional: la versión probabilística del algoritmo de programación dinámica en árboles
El algoritmo Forward de HMM de M19, la parsimonia de M27 y el algoritmo de poda de Felsenstein de esta sección comparten exactamente el mismo esquema.
- Algoritmo Forward de HMM: Acumulación de probabilidades a lo largo del eje temporal.
- Parsimonia: Acumulación del coste mínimo en el árbol (mínimo).
- Algoritmo de poda de Felsenstein: Acumulación de probabilidades en el árbol (suma).
El mismo esquema se adapta a diferentes contextos. Cambiar el mínimo por la suma y el tiempo por un árbol es suficiente para que el dominio del algoritmo cambie por completo. Si esta intuición se consolida, los algoritmos de nuevos dominios se podrán analizar y comprender rápidamente utilizando este esquema familiar.
Evaluación en Rosalind
Rosalind no tiene problemas directos de árboles de máxima verosimilitud, pero al revisar BA10G (Baum-Welch), se confirma que es otra aplicación del mismo esquema que el algoritmo de poda de Felsenstein.
Ramificaciones hacia la siguiente sección
- Siguiente sección (M29): Teoría de la coalescencia: Derivación filogenética mediante inversión temporal. Introducción a la genética de poblaciones.
- Última sección (M30): Modelo de Wright-Fisher: Proceso estocástico por generación. Modelo estadístico de la evolución neutra.
- Ampliación: BEAST/BEAST2: Filogenia bayesiana. Probabilidades previas y muestreo MCMC. Complementario a IQ-TREE.
Para profundizar más
- Felsenstein (1981), Evolutionary trees from DNA sequences: A maximum likelihood approach, J Mol Evol — Artículo original del algoritmo de poda.
- Minh, Nguyen, von Haeseler (2013), Aproximación ultrarrápida para el bootstrap filogenético, MBE — artículo original de UFBoot.
- Nguyen, Schmidt, von Haeseler, Minh (2015), IQ-TREE: un algoritmo estocástico rápido y eficaz para estimar filogenias de máxima verosimilitud, MBE — artículo original de IQ-TREE.
- Felsenstein Inferencia filogenética — texto estándar. Los capítulos 16 a 18 son clave para la máxima verosimilitud.
- Tutorial de IQ-TREE:
http://www.iqtree.org/doc/— todas las opciones prácticas. - UC Berkeley BIDS — conferencia sobre máxima verosimilitud del profesor Yun S. Song.
Utilicemos IQ-TREE para seleccionar entre 30 y 100 homólogos de nuestro gen de interés y construir un árbol filogenético. Comparar la topología con un árbol de parsimonia (creado en MEGA) permitirá consolidar esta intuición práctica.