Skip to content

ebalderasr/BioReact-Lite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BioReact Lite

Simulación de biorreactores con cinética microbiana, modos de operación y control, directamente en tu navegador


→ Abrir la app


Stack Focus Modes Part of


¿Qué es BioReact Lite?

BioReact Lite es una aplicación web de simulación de biorreactores para explorar dinámicas de biomasa, sustrato, producto y volumen bajo distintos modelos cinéticos y modos de operación. Corre completamente en el navegador mediante Pyodide, por lo que el motor numérico en Python se ejecuta del lado del cliente, sin backend y sin instalación local obligatoria.

La app está pensada para docencia, análisis conceptual y experimentación rápida con balances de masa. Permite comparar cultivo batch, fed-batch y continuo, activar formación de producto, introducir inhibición por sustrato o producto y, en quimiostato, probar estrategias de control P, I, D, PI, PD y PID.


¿Por qué importa?

Entender cómo interactúan la cinética de crecimiento, la alimentación y la dilución suele requerir pasar entre apuntes, hojas de cálculo y scripts sueltos. Eso hace más difícil responder preguntas básicas de ingeniería:

  • ¿Cuándo se agota el sustrato en batch?
  • ¿Qué cambia realmente al pasar a fed-batch?
  • ¿En qué condiciones aparece washout en continuo?
  • ¿Qué hace una ganancia Kc negativa sobre el lazo cerrado?
  • ¿Cómo cambia la dinámica si el producto inhibe el crecimiento?

BioReact Lite compacta esas preguntas en una sola interfaz interactiva. Ajustas parámetros, ejecutas la simulación en segundos y ves inmediatamente las trayectorias temporales, el plano de fase, los caudales, la dilución y, cuando aplica, la respuesta del controlador.


Cómo se usa

Cuatro pasos. Sin instalación. Sin notebooks.


Paso 1 — Elige el modo de cultivo

Selecciona Lote (Batch), Lote alimentado (Fed-batch) o Continuo (Chemostat). El diagrama del reactor y los balances visibles se adaptan al modo activo.


Paso 2 — Define la cinética y la formación de producto

Ajusta μmax, Ks, Yxs y, según el modelo, parámetros adicionales como Ki, Kip, kp o kd. También puedes escoger si la formación de producto está ligada al crecimiento, no ligada al crecimiento o desactivada.


Paso 3 — Configura la operación del reactor

Establece condiciones iniciales (X0, S0, P0), volumen de trabajo, flujo de alimentación, concentración de sustrato en la alimentación, horizonte temporal y paso de integración. En fed-batch puedes limitar el volumen máximo; en continuo puedes fijar la dilución base o el sustrato de entrada.


Paso 4 — Activa control y explora resultados

Para quimiostato con cinética Monod o Haldane, puedes habilitar control P, I, D, PI, PD o PID, elegir variable controlada (S, X o P) y actuar sobre D o S_r. La app genera:

  • trayectorias temporales de X, S, P y μ
  • diagrama de fases X–S
  • evolución de volumen, caudal y dilución
  • seguimiento de setpoint y actuador
  • resumen con X final, S final, P final, μ pico, agotamiento y salida final del actuador
  • panel expandible de guía conceptual y análisis de estabilidad

BioReact Lite – simulación temporal y plano de fase


Métodos

BioReact Lite resuelve balances dinámicos de biomasa, sustrato, producto y volumen mediante integración numérica RK4 de paso fijo.

Variables de estado

  • X: biomasa
  • S: sustrato
  • P: producto
  • V: volumen

Cinética de crecimiento

El proyecto implementa siete variantes de μ:

Modelo Expresión / idea
Monod saturación simple por sustrato
Monod con muerte celular Monod con término de decaimiento kd en biomasa
Haldane / Andrews inhibición por sustrato a concentraciones altas
Inhibición competitiva por producto el producto aumenta la saturación aparente
Inhibición no competitiva por producto el producto reduce la μ efectiva
Inhibición lineal por producto penalización lineal con kpP
Inhibición exponencial por producto decaimiento exponencial con acumulación de producto

Formación de producto

La tasa específica de producto q_p puede modelarse como:

  • sin producto
  • ligada al crecimiento: q_p = αμ
  • no ligada al crecimiento: q_p = β

Balances por modo de cultivo

Batch

$$\frac{dX}{dt} = \mu X$$

$$\frac{dS}{dt} = -\frac{\mu X}{Y_{x/s}}$$

$$\frac{dP}{dt} = q_p X$$

$$\frac{dV}{dt} = 0$$

Fed-batch

$$\frac{dX}{dt} = \mu X - \frac{F}{V}X$$

$$\frac{dS}{dt} = -\frac{\mu X}{Y_{x/s}} + \frac{F}{V}(S_r - S)$$

$$\frac{dP}{dt} = q_p X - \frac{F}{V}P$$

$$\frac{dV}{dt} = F$$

Continuo

$$\frac{dX}{dt} = \mu X - DX$$

$$\frac{dS}{dt} = -\frac{\mu X}{Y_{x/s}} + D(S_r - S)$$

$$\frac{dP}{dt} = q_p X - DP$$

Con D > μ, el sistema entra en régimen de washout y la biomasa colapsa.

Control

Cuando el modo es continuous y la cinética es Monod o Haldane, el simulador puede cerrar el lazo sobre una variable medida (S, X o P). El actuador puede ser:

  • D como tasa de dilución
  • S_r como concentración de sustrato en la alimentación

El controlador soporta modos P, I, D, PI, PD y PID, con saturación por límites control_min y control_max. La interfaz también muestra una sección de linealización y estabilidad para interpretar el efecto de Kc sobre la jacobiana y los eigenvalores del sistema.


Funcionalidades

Cero backend El simulador corre completamente en el navegador con Pyodide
Tres modos de operación Batch, fed-batch y continuo en una sola interfaz
Siete modelos cinéticos Desde Monod hasta inhibición por producto y muerte celular
Producto opcional Sin producto, crecimiento-asociado o no asociado
Control en quimiostato P, I, D, PI, PD y PID para Monod y Haldane
Actuadores alternos Manipulación de D o S_r en continuo
Gráficas interactivas Series temporales, plano de fase, volumen/caudales y seguimiento de control
Métricas resumen Valores finales, μ pico, agotamiento de sustrato y salida final del actuador
Guía integrada Explicación expandible de balances, cinética, control y estabilidad
Despliegue estático Puede publicarse directamente en GitHub Pages

Parámetros principales

Microorganismo

  • mu_max
  • Ks
  • Ki
  • Kip
  • kp
  • Yxs
  • kd
  • alpha
  • beta

Estado inicial y operación

  • X0, S0, P0
  • V_working
  • F
  • V_max
  • S_r
  • D
  • dt
  • t_final

Control

  • control_setpoint
  • control_kc
  • control_tau_i
  • control_tau_d
  • control_min
  • control_max

No todos los parámetros aparecen siempre. La interfaz activa u oculta controles según el modo de cultivo, el modelo cinético y el esquema de control seleccionado.


Stack técnico

Motor de simulación

Pyodide Python SciPy stack

Frontend

HTML5 CSS3 JavaScript Plotly

Legacy / referencia

Streamlit


Estructura del proyecto

BioReact-Lite/
├── index.html                  ← interfaz principal
├── styles.css                  ← estilos y layout de la app web
├── app.js                      ← lógica UI, Plotly, Pyodide y análisis de estabilidad
├── simulator.py                ← motor de simulación en Python ejecutado en el navegador
├── app.py                      ← versión legacy en Streamlit, conservada como referencia
├── requirements.txt            ← dependencias de la versión Streamlit legacy
├── Fig/
│   └── Fig1.png                ← captura usada en este README
├── Scripts_python_legacy/      ← notebooks históricos del proyecto
└── Referencias/                ← material documental de apoyo

Ejecutar localmente

Como Pyodide no carga correctamente desde file://, sirve el directorio con un servidor HTTP local:

cd /home/ebald/github/BioReact-Lite
python3 -m http.server 8000

Luego abre:

http://localhost:8000


Despliegue

El proyecto está preparado para publicación estática. Con GitHub Pages configurado como Deploy from a branch sobre main, la app puede servirse directamente desde:

https://ebalderasr.github.io/BioReact-Lite/

Usa rutas relativas (./styles.css, ./app.js, ./simulator.py), así que no necesita backend ni build step.


Nota sobre la versión legacy

La entrada principal actual del proyecto es index.html. El archivo app.py permanece en el repositorio como implementación histórica en Streamlit, útil como referencia, pero ya no es la vía recomendada de ejecución ni despliegue.

Releases

No releases published

Packages

 
 
 

Contributors