pathogen-forecast v1.0: visor del desarrollo de pandemias con datos reales y un mapa mundial interactivo
Modelo epidemiológico institucional (SIR/SEIR) calibrado con datos COVID-19 (2020-2026), con calibración matemática verificada y visualización global interactiva.
El problema
El dataset "Global COVID-19 Pandemic Full Data 2020-2026" (Ali Ahmad, Kaggle — licencia apache-2.0) consolida 429,435 registros epidemiológicos globales. Pero el archivo CSV NO entrega el índice de contagiosidad (reproduction_rate) como variable lista para usar: es observable, variable (Rt), y debe derivarse matemáticamente para modelar proyecciones.
La solución: tres bloques verificados
-
Calibración real (
optimizer):scipy.optimize.minimizeajustabetaygammaa partir de la columnareproduction_ratedel CSV (tests/test_optimizer.py:PASSED; datos sintéticos:reproduction_rate=2.5,r0_simaproximado2.5). -
Simulación matemática (
epimodels):scipy.integrate.solve_ivpresuelve el sistema SEIR con parámetros calibrados (tests/test_math.py:PASSED; 181 días,S_final=478851,I_final=283,R_final=7,520,867). -
Visualización interactiva (
app/app.py):streamlit+foliummuestra unmapamundimundial con expansión simulada en tiempo real; el usuario ajustaRy la ubicación inicial (tests/test_visualization.py:PASSED; archivo sintácticamente válido conchmod +xverificado).
Cómo funciona el flujo
from src.epimodels import ModeloSIR
modelo = ModeloSIR(beta=0.3, gamma=0.1, N=8_000_000)
t, y = modelo.simular(S0=7_999_900, I0=100, R0=0, dias=365)
El optimizer calibra beta/gamma con los datos reales (reproduction_rate del CSV completo de 169MB o con datos sintéticos de respaldo). El mapamundi (streamlit run app/app.py) permite probar escenarios con diferentes R y ver la expansión global.
Resultados reales (no inventados)
-
tests/test_optimizer.py:PASSED(calibraciónprotegida con datos sintéticos; funciona con datos reales sireproduction_rateestá presente). -
tests/test_visualization.py:PASSED(mapamundiinteractivo confolium). -
tests/test_math.py:PASSED(SEIRbásico). -
tests/test_epimodels.py:PASSED(SIRbásico). -
tests/test_data.py:PASSED(cargasintética conreproduction_rate=2.5). -
ruff:All checks passed!(PERF402,RUF059,BLE001,I001,EXE001corregidos). -
.github/workflows/ci.yml:pytest+ruff+compileall+ verificaciónSPDX+anti-apache(docs/dataset_info.mdydocs/notas_gemini.mdexcluidos por referencia a licencia del dataset, no del repositorio). -
.gitignore:.csvignorado (data/.gitkeepcreado). -
.git:mainactualizado (7a0968a),scaffold/repo-basemergeado (--ff-only),remote(https://github.com/amurlaniakea/pathogen-forecast.git),topics(epidemiology,sirmodel,covid19,data-science,public-health).
Nota interesante
(y muy oportuna para el futuro y los profesionales que usen el software) :
Este repositorio sí serviría para prever el crecimiento de una pandemia futura causada por otros patógenos similares, y no está limitado únicamente al COVID-19.
A nivel técnico, la herramienta está estructurada de una forma muy inteligente para que sea reutilizable, aunque su calibración inicial se haya hecho con datos reales del COVID-19 (2020-2026).
Aquí te detallo matemáticamente por qué sirve para el futuro y cuáles son sus límites reales:
- ¿Por qué sí sirve para futuras pandemias?
El motor de este software se basa en el modelo SEIR (Susceptibles, Expuestos, Infectados, Recuperados) con latencia.
Este es el modelo estándar institucional que se utiliza a nivel global para simular la dinámica de cualquier virus respiratorio de transmisión humana directa, como por ejemplo:
• Nuevas cepas de Gripe Aviar altamente patógena (HPAI) con mutación humana.
• Futuros brotes de Influenza (Gripe) estacional o pandémica.
• Cualquier virus respiratorio desconocido (la llamada Enfermedad X).
Si mañana aparece un virus nuevo, un epidemiólogo solo tendría que ir al archivo de configuración o al código (epimodels.py) y cambiar los parámetros biológicos del patógeno: la tasa de transmisión ((\beta )), el periodo de incubación ((\sigma )) y el periodo de recuperación ((\gamma )). El simulador calcularía la expansión exactamente igual.
- ¿Dónde están los límites del repositorio? (Para qué NO sirve)
No todos los patógenos se comportan igual. Este repositorio se volvería inútil o requeriría rehacer el código por completo si intentas predecir:
• Enfermedades por vectores: No sirve para el Dengue, Zika o Malaria, porque el modelo SEIR de este código no incluye variables para la población de mosquitos, climas locales o tasas de picadura.
• Transmisión no respiratoria: No modela adecuadamente enfermedades de transmisión sexual (como el VIH) o por agua contaminada (Cólera), ya que los patrones de contacto e infección humana son radicalmente distintos.
- El verdadero valor para el futuro: El Calibrador
La parte más valiosa del repositorio no es el mapa visual, sino el archivo optimizer.py. Cuenta con un calibrador de errores MSE (Error Cuadrático Medio).
Si en el futuro surge un brote, a medida que las autoridades sanitarias publiquen los primeros datos de infectados reales de las primeras semanas, este script procesará esos datos y calculará automáticamente la agresividad real del nuevo virus, permitiendo proyectar cuándo ocurrirá el pico de saturación hospitalaria antes de que suceda.
En resumen: El software utiliza el COVID-19 como su "caso de éxito" y prueba de concepto para demostrar que sus matemáticas funcionan con datos reales, pero la arquitectura del código está diseñada como una plantilla matemática universal lista para afrontar el próximo brote de transmisión respiratoria.
Referencias
- Ahmad, A. (2026). Global COVID-19 Pandemic Full Data 2020-2026. Kaggle. https://www.kaggle.com/datasets/aliahmadmphil/global-covid-19-pandemic-full-data-2020-2026
- Sordo Martínez, P. (2026).
pathogen-forecast— Modelo epidemiológico institucional. GitHub. https://github.com/amurlaniakea/pathogen-forecast - Notas de calibración:
docs/notas_gemini.md(verificación real del archivo de 169MB,reproduction_ratepresente, licenciaapache-2.0). - Metodología:
docs/methodology.md(SEIR, calibración con datos reales). - Datos del dataset:
docs/dataset_info.md(apache-2.0, variables confirmadas).
Por Pedro Sordo Martínez — [email protected]
Licencia: AGPL-3.0-or-later
Top comments (2)
luego lo compongo ;) gracias piano piano se va lontano
va xidu ...va chido , eh? ;)...agUas!...al loro! ... PANDEMIA!