Volver a la lista

Teoría de la Coalescencia: Una perspectiva de retroceso en el tiempo desde la genética de poblaciones

¿Por qué rastrear el árbol filogenético hacia atrás en el tiempo? Desde el teorema de coalescencia de Kingman hasta la simulación práctica con msprime y la estimación del tamaño efectivo de la población.

Avanzado
|
18min
|
Verificado (2026-07-20)
population geneticscoalescentancestral recombination graph
Progreso0/120 (0%)

Invertir la perspectiva facilita el problema

En M26~M28, el árbol filogenético se dibujó como un árbol de evolución "desde el pasado hacia el presente". Comenzando con un ancestro común y mediante especiación, aparecen las hojas. Esta perspectiva es intuitiva, pero computacionalmente costosa.

La teoría coalescente invierte la perspectiva. Comenzando desde las hojas actuales y remontando el tiempo, se rastrea probabilísticamente el momento en que los linajes se fusionan (evento de coalescencia). Este enfoque, establecido por Kingman(J Appl Prob 1982), simplifica enormemente muchos problemas de la genética de poblaciones.

En esta sección se aprende la teoría fundamental del coalescente y el uso práctico de la herramienta msprime. Es la primera parte de las dos últimas lecciones de Micro Tier (Genética de Poblaciones §M.6.29·30).

El teorema de coalescencia de Kingman

En una población ideal de tamaño N con apareamiento aleatorio, se rastrean k linajes. Al retroceder una generación en el tiempo, la probabilidad de que dos linajes compartan el mismo padre es

P(coalesce in 1 generation)(k2)1NP(\text{coalesce in 1 generation}) \approx \binom{k}{2} \cdot \frac{1}{N}

Combinación de 2 entre k × probabilidad de que dos linajes tengan el mismo padre, 1/N.

Al escalar el tiempo generacional por N (τ = t/N), el tiempo de espera entre eventos de coalescencia sigue una distribución exponencial.

TkExp((k2))T_k \sim \text{Exp}\left( \binom{k}{2} \right)

El tiempo medio de espera hasta la siguiente coalescencia con k linajes restantes es (2 / k(k-1)) × N generaciones. Cuanto mayor es k, más rápido ocurre la coalescencia, y a medida que k disminuye, el tiempo de espera se alarga drásticamente.

Tiempo total hasta el ancestro común (TMRCA):

E[TMRCA]=k=2n2Nk(k1)=2Nk=2n1k(k1)=2N(11n)E[T_{\text{MRCA}}] = \sum_{k=2}^{n} \frac{2N}{k(k-1)} = 2N \cdot \sum_{k=2}^{n} \frac{1}{k(k-1)} = 2N \cdot \left(1 - \frac{1}{n}\right)

n = número de linajes muestrales. Aunque n aumente, TMRCA converge a 2N. Un resultado sorprendente: no importa cuántos linajes se muestreen, el tiempo hasta el ancestro común no aumenta significativamente. La mayor parte de la evolución ocurre durante largos periodos de espera entre un pequeño número de linajes.

¿Por qué es útil?

La inversión de perspectiva genera tres grandes ventajas:

  1. Eficiencia computacional: Solo se rastrea hacia atrás en el tiempo. Se ignoran completamente los ancestros que no están presentes en la muestra actual. Es mucho más rápido que las simulaciones hacia adelante.
  2. Analizable estadísticamente: La distribución de tiempos de coalescencia es una distribución de probabilidad explícita. Permite estimar parámetros (tamaño efectivo de la población N_e) a partir de datos observados.
  3. Simulaciones reproducibles: permite verificar mediante simulaciones si los datos observados se ajustan a algún escenario demográfico.

Estos tres elementos son la base de la mayoría de las herramientas cuantitativas de la genética de poblaciones actuales (msprime, PopSizeABC, dadi, SLiM).

Tamaño efectivo de la población: real vs. genético

El modelo de coalescencia asume una población "ideal": apareamiento aleatorio, ausencia de superposición de generaciones y proporción equitativa de sexos. Las poblaciones reales siempre se desvían de estas suposiciones.

Tamaño efectivo de la población (N_e): es el tamaño efectivo que representa cuán grande se comporta una población real desde la perspectiva de la coalescencia.

La población humana real es de 8 mil millones, pero N_e ≈ 10.000. Esto se debe a que factores como los cuellos de botella, la expansión, la selección natural y la proporción desigual de sexos reducen significativamente la diversidad genética real. Estimar N_e a partir de los datos genéticos permite reconstruir la historia demográfica (cuello de botella, expansión, migración).

Estimador de Watterson:

θ^W=San,an=i=1n11i\hat{\theta}_W = \frac{S}{a_n}, \quad a_n = \sum_{i=1}^{n-1} \frac{1}{i}

S = número de sitios segregantes observados, n = tamaño de la muestra. Se obtiene N_e a partir de la relación θ = 4 N_e μ (μ es la tasa de mutación por generación).

msprime: el estándar en simulaciones de coalescencia

msprime, de Kelleher et al. (PLoS Comput Biol 2016), es la herramienta estándar para las simulaciones de coalescencia. Es una biblioteca de Python y puede generar millones de árboles genealógicos en cuestión de segundos.

python
# pip install msprime
import msprime
# Simulación sencilla — Ne=10000, 10 muestras, tasa de mutación 1e-8, longitud 10 Mb
ts = msprime.sim_ancestry(
samples=10,
recombination_rate=1e-8,
sequence_length=10_000_000,
population_size=10_000,
random_seed=42,
)
ts = msprime.sim_mutations(ts, rate=1e-8, random_seed=42)
print(f"Trees: {ts.num_trees}")
print(f"Sites: {ts.num_sites}")
print(f"Total branch length: {ts.first().total_branch_length:.1f}")
# Topología del primer árbol
print(ts.first().draw_text())

La estructura de datos Tree Sequence es la ventaja decisiva de msprime. Es una estructura de datos que rastrea continuamente los linajes observados a lo largo de las coordenadas, almacenando comprimidos el genoma completo (decenas de miles de árboles).

Simulación de escenarios demográficos

msprime puede expresar incluso modelos demográficos complejos. Por ejemplo: escenario de cuello de botella (bottleneck) → expansión (expansion).

python
demography = msprime.Demography()
demography.add_population(name="modern", initial_size=100_000)
demography.add_population_parameters_change(
time=500, # Hace 500 generaciones
population="modern",
initial_size=1_000 # Cuello de botella: reducción a 1000 individuos
)
demography.add_population_parameters_change(
time=2000, # Hace 2000 generaciones
population="modern",
initial_size=10_000 # Tamaño anterior al cuello de botella
)
ts = msprime.sim_ancestry(
samples={"modern": 20},
demography=demography,
recombination_rate=1e-8,
sequence_length=1_000_000,
random_seed=42,
)
print(f"TMRCA: {ts.first().tmrca(0, 1):.0f} generations")

Se expresan y validan escenarios reales como el cuello de botella fuera de África en humanos o la expansión poblacional específica de los europeos, de la siguiente manera.

Datos observados vs simulación — Marco ABC

Approximate Bayesian Computation (ABC):

  1. Muestreo aleatorio de candidatos de parámetros demográficos (N_e, tasa de migración, momento del cuello de botella, etc.)
  2. Simulación coalescente para cada conjunto de parámetros
  3. Medición de qué tan cerca están las estadísticas resumen de los resultados de la simulación (Watterson θ, Tajima's D, etc.) de los valores observados
  4. Conservación de los parámetros de las simulaciones cercanas como distribución posterior

ABC es un marco que permite la estimación de parámetros sin una función de verosimilitud explícita. La simulación coalescente proporciona el material base.

Grafo Recombinante Ancestral (ARG)

Como extensión del coalescente, al incluir recombinación se obtiene un grafo en lugar de un árbol. La topología del árbol varía ligeramente para cada posición del genoma, y lo que representa todo esto como un único grafo es el ARG.

La reconstrucción de ARG es actualmente un campo muy activo. Los algoritmos tsinfer + tsdate (Kelleher et al.) han construido ARGs a escala de UK Biobank (cientos de miles de individuos). Con este único ARG es posible realizar análisis integrados de GWAS, demografía y señales de selección natural.

Coalescente vs Filogenia — Diferencias de perspectiva

Árbol filogenético (M26~M28)Coalescente
DirecciónPasado → PresentePresente → Pasado
SujetoEspecies · GenesIndividuos dentro de una población
Escala temporal100 millones ~ 1 mil millones de años1 millón ~ 100 mil años
ModeloModelos de sustitución evolutiva (JC/GTR)Modelos demográficos (N_e, migración, cuello de botella)
Herramientas representativasIQ-TREE, RAxMLmsprime, SLiM
Estructura de datos resultanteÁrbol binarioSecuencia de árboles · ARG

Ante los mismos datos, ambas perspectivas responden a preguntas diferentes. El árbol filogenético aborda la relación, mientras que el coalescente aborda la historia.

Mapeo CS — El poder de la simulación inversa

El caso emblemático del concepto de algoritmos inversos tratado en DryBench.

  • Hacia adelante: requiere simulaciones a gran escala (tamaño real de la población)
  • Hacia atrás: rastrea solo las genealogías relacionadas con la muestra (tamaño de la muestra)

Hacia adelante debe simular todas las rutas, incluso aquellas con probabilidad extremadamente baja de llegar a la muestra. Hacia atrás, al comenzar desde la muestra ya observada, permite una simulación precisa sin pérdida de probabilidad. Este cambio de perspectiva genera un orden de magnitud en la eficiencia computacional.

El mismo principio aparece por todas partes. El muestreo posterior de la inferencia bayesiana (seguir data → prior en lugar de prior → data), el buffer de repetición del aprendizaje por refuerzo (aprender solo trayectorias que tuvieron valor) e incluso la eliminación de código muerto en los compiladores (seguir la alcanzabilidad hacia atrás). El pensamiento inverso es una herramienta poderosa para los algoritmos.

Evalúate en Rosalind

Rosalind no tiene problemas directos de coalescencia, pero puedes familiarizarte con los cálculos de probabilidad mediante problemas relacionados como WFMD y EBIN de genética de poblaciones.

Ramas hacia el siguiente capítulo — Finalización del Micro Tier

  • El siguiente y último (M30): Modelo de Wright-Fisher — Proceso estocástico por generación. La contraparte directa de la coalescencia. Modelo estadístico de la deriva neutra.
  • Posteriormente: Fase B — Sistema S1 Tier (Pipeline de NGS) — 25 capítulos sobre el pipeline práctico desde FASTQ hasta la detección de variantes.

Si quieres profundizar más

  • Kingman (1982), The coalescent, Stochastic Processes and their Applications — El artículo original. Corto pero esencial.
  • Hudson (2002), Generating samples under a Wright-Fisher neutral model of genetic variation, Bioinformatics — Herramienta ms. Estándar de la generación anterior de msprime.
  • Kelleher, Etheridge, McVean (2016), Efficient coalescent simulation and genealogical analysis for large sample sizes, PLoS Comput Biol — Artículo original de msprime.
  • Tutorial de msprime: https://tskit.dev/msprime/docs/latest/tutorial.html — Práctica en Python.
  • Harvard HST.508 — Curso sobre teoría de la coalescencia (con subtítulos completos).
  • Wakeley Coalescent Theory: An Introduction — Texto estándar. Derivación matemática.

Simulemos un ejemplo de expansión posterior a un cuello de botella con msprime y extraigamos el SFS (Espectro de Frecuencia de Sitios). Verificar visualmente en qué parte del SFS queda la huella estadística del cuello de botella es la verdadera práctica de este capítulo.

💬 Preguntas y comentarios

0 comentarios

Puedes publicar sin iniciar sesión. Los comentarios de invitados no pueden editarse ni eliminarse después.

0/2000

Cargando...