- Dataset
- Pregunta analítica
- Metodología
- Hallazgos principales
- Fundamento científico y metodológico
- Rigor de reporte científico
- Código testeado:
enigma_diversity/ - Estructura del repositorio
Pregunta: ¿qué variables fisicoquímicas explican la diversidad bacteriana de un pozo de agua subterránea, y qué tan distintas son las comunidades entre pozos?
Resultado en una frase: en 67 pozos, la diversidad bacteriana correlaciona más fuerte con metales poco monitoreados (aluminio, cadmio, potasio, cobre, litio, sodio) que con las variables clásicas (pH, Fe, Mn, U) — hallazgo con implicación directa para rediseñar un panel de monitoreo ambiental.
Análisis de diversidad bacteriana (16S rRNA V4) en 67 pozos de agua subterránea, usando datos reales de secuenciación masiva y su relación con variables fisicoquímicas ambientales.
Aborda una pregunta clásica de ecología microbiana — qué factores ambientales explican la composición de una comunidad — con un flujo de datos completo en Python: desde el diagnóstico de datos faltantes hasta la interpretación biológica del resultado.
| Fuente | ENIGMA Study — Zenodo, DOI: 10.5281/zenodo.1455792 |
| Datos | Tabla de OTUs (abundancias bacterianas, 16S rRNA V4) + metadatos ambientales (pH, metales, gases disueltos, conductividad, etc.) |
| Autoría del dataset | Duvallet, C. (2018). OTU table: Ecosystems and Networks Integrated with Genes and Molecular Assemblies (ENIGMA). Zenodo. Publicado bajo licencia CC BY 4.0 |
| Muestras | 67 pozos de agua subterránea, rarefaccionados a una profundidad común de 10,000 lecturas/pozo |
¿Cuáles variables fisicoquímicas del agua subterránea (pH, metales, conductividad, gases disueltos) están asociadas con la diversidad bacteriana de cada pozo, y qué tan distintas son las comunidades entre pozos?
- Carga y diagnóstico: alineación de tabla de OTUs y metadatos ambientales por pozo; documentación de valores faltantes (13 variables ambientales, hasta 83.6% en
po4_mgl). - Diversidad alfa: riqueza de OTUs, Shannon, Simpson y Chao1 por pozo.
- Diversidad beta: matriz de distancias Bray-Curtis + ordenación PCoA.
- Asociación ambiental: correlación de Spearman entre diversidad Shannon y variables fisicoquímicas.
- Interpretación biológica de cada resultado, limitaciones y recomendaciones para monitoreo ambiental futuro.
- Los 67 pozos muestran variabilidad considerable en las cuatro métricas de diversidad alfa — no explicada por diferencias en profundidad de secuenciación (ya rarefaccionada).
- La mayoría de los pares de pozos presentan disimilitud media-alta en composición bacteriana (Bray-Curtis); el PCoA solo explica 17.6% de la varianza total (PC1: 10.3%, PC2: 7.3%), señal de que la estructura de las comunidades es compleja y no se reduce a 2 ejes.
- Las correlaciones más fuertes con la diversidad Shannon no fueron con las variables clásicamente monitoreadas (pH, Fe, Mn, U), sino con aluminio, cadmio, potasio, cobre, litio y sodio — hallazgo que sugiere ampliar el panel de monitoreo ambiental de estos pozos.
Python (pandas, NumPy, SciPy) · Matplotlib/Seaborn · Plotly · Bray-Curtis/PCoA
Cada métrica se implementó siguiendo su formulación estándar en ecología microbiana, no una aproximación genérica:
- Chao1: versión sesgo-corregida
S_obs + F1(F1-1) / (2(F2+1)), el estándar actual (es la versión por defecto en QIIME2 y mothur). Chao1 es apropiado aquí porque los datos son una tabla de OTUs clásica, no ASVs — un artículo reciente en The ISME Journal (Deng, Umbach & Neufeld, 2024) advierte que Chao1/ACE no deben usarse sobre datos de ASVs (p. ej. salidas de DADA2) porque estos pipelines eliminan los singletons por defecto, invalidando el supuesto estadístico del estimador. Cita original: Chao, A. (1984). Nonparametric estimation of the number of classes in a population. Scandinavian Journal of Statistics, 11, 265–270. - Shannon y Simpson: fórmulas estándar (Shannon-Wiener; índice de Simpson invertido, 1-D).
- Bray-Curtis: Bray, J.R. & Curtis, J.T. (1957). An Ordination of the Upland Forest Communities of Southern Wisconsin. Ecological Monographs, 27, 325–349.
- PCoA: doble-centrado de Gower sobre distancias al cuadrado (Gower, J.C. (1966). Some distance properties of latent root and vector methods used in multivariate analysis. Biometrika, 53, 325–338) — el mismo algoritmo que usa
skbio.stats.ordination.pcoa. La varianza explicada se calcula solo sobre autovalores positivos, igual que la implementación de referencia de scikit-bio; además, antes de filtrar por positividad se aplanan a cero los autovalores numéricamente insignificantes (ruido de punto flotante ~1e-15), tal como haceskbiointernamente connp.isclose, para evitar ejes espurios en matrices de distancias de baja dimensión. - Limitación metodológica reconocida: Bray-Curtis + PCoA sobre abundancias relativas no corrige por la naturaleza composicional de los datos de microbioma. Gloor et al. (2017), Microbiome Datasets Are Compositional: And This Is Not Optional (Frontiers in Microbiology, 8, 2224), recomienda transformación CLR + distancia de Aitchison como alternativa más rigurosa. Se documenta como una mejora futura, no como una corrección silenciosa — es una discusión activa en el campo, no un error.
Este proyecto se autoevaluó contra las guías STREAMS (Standards for Technical Reporting in Environmental and host-Associated Microbiome Studies — Kelliher et al. 2025, Nature Microbiology), el estándar vigente para reporte técnico de estudios de microbioma ambiental. Ver STREAMS_checklist.md para el detalle ítem por ítem, incluyendo qué partes corresponden al dataset original (muestreo, extracción, secuenciación) y cuáles son mi contribución directa (análisis, reproducibilidad, resultados, discusión).
Las funciones de diversidad alfa (Chao1, Shannon, Simpson) y de ordenación (PCoA) viven en un paquete Python separado del notebook, con pruebas unitarias en tests/:
pip install -r requirements.txt
pytest -q # 9 pruebas — Chao1, Shannon, Simpson, PCoAEsta separación existe por una razón concreta, no solo por estilo: la implementación original de Chao1 en el notebook tenía un error de fórmula (detectado y corregido durante la auditoría de este proyecto — usaba F1² / (2·F2 + 1) en vez de la versión sesgo-corregida F1(F1-1) / (2(F2+1))). tests/test_diversity.py incluye una prueba de regresión que falla explícitamente si esa fórmula incorrecta vuelve a aparecer. De la misma forma, tests/test_ordination.py verifica el PCoA contra un caso con solución analítica conocida (puntos colineales), lo que llevó a encontrar y corregir un segundo problema numérico (ejes espurios por ruido de punto flotante, ver sección anterior).
├── README.md
├── STREAMS_checklist.md # Autoevaluación contra el estándar de reporte STREAMS (2025)
├── requirements.txt # Dependencias Python (pip install -r requirements.txt)
├── analisis_diversidad_microbiana_ENIGMA.ipynb # Notebook completo (18 secciones: intro → metodología → resultados → resumen ejecutivo)
├── enigma_diversity/ # Paquete Python: Chao1, Shannon, Simpson, PCoA (testeado)
│ ├── __init__.py
│ ├── diversity.py
│ └── ordination.py
├── tests/ # Pruebas unitarias (pytest), incluye regresión del bug de Chao1
│ ├── test_diversity.py
│ └── test_ordination.py
├── enigma.metadata.txt # Metadatos ambientales por pozo
└── otu_table_resampled_updated_r.txt # Tabla de OTUs (16S rRNA V4)
