Tripartite population model with pH and resource dynamics
This model is an unpublished extension of the tripartite Public/Cheater/Private community model. Instead of constant growth rates, each strategy's growth now follows Monod kinetics on an explicit resource: the public metabolizer and private metabolizer grow on sucrose (S), while the cheater grows on extracellular glucose (G) that the public metabolizer releases as a byproduct of sucrose processing.
Every growth rate is additionally scaled by a per-species Gaussian
response to environmental pH, fi,H(H) = exp(-(H - Hopt,i)² / (2σH,i²)), so each strategy has its own pH optimum and tolerance width. Dragging
the pH slider away from a strategy's optimum suppresses its growth relative
to the other two, shifting which strategy dominates the community.
Simulation parameters
Initial conditions
Analyses
Time course
Loading chart...
Ecological outcome
Community outcome at t = 50 h
Add analysis
Model Details
Review and edit model structure, biological variables, and kinetic parameters.
| Name | Tex name | Initial value | Actions |
|---|---|---|---|
Edit Options
Edit Options
Edit Options
Edit Options
Edit Options
Generated LaTeX Code
\begin{align*}
\frac{d \text{Public}}{dt} &= (1 - r) \cdot \mu_{P,S} \cdot \text{Public} \\
& - \alpha \cdot \text{Public} \cdot \text{Cheater} \\
& - \beta \cdot \text{Public} \cdot \text{Private} \\
& - \eta \cdot \text{Public} \cdot \text{Public} \\
\frac{d \text{Cheater}}{dt} &= \mu_{C,G} \cdot \text{Cheater} \\
& - \nu \cdot \text{Cheater} \cdot \text{Cheater} \\
\frac{d \text{Private}}{dt} &= \mu_{M,S} \cdot \text{Private} \\
& + \beta \cdot \text{Public} \cdot \text{Private} \\
& - \gamma \cdot \text{Private} \cdot \text{Private} \\
\frac{d S}{dt} &= - \frac{\mu_{P,S} \cdot \text{Public}}{Y_{P,S}} \\
& - \frac{\mu_{M,S} \cdot \text{Private}}{Y_{M,S}} \\
\frac{d G}{dt} &= r \cdot \frac{\mu_{P,S} \cdot \text{Public}}{Y_{P,S}} \\
& - \frac{\mu_{C,G} \cdot \text{Cheater}}{Y_{C,G}}
\end{align*}Fit to data
Fit settings
| Setting | Value |
|---|---|
| Fit backend | |
| Function evaluations per progress update | |
| Maximum total function evaluations | |
| Stop once residual norm reaches |
Curriculum learning (advanced)
Every bar shares one fixed step budget. Drag a divider to move a cutoff, drag a bar's top edge (or focus it and use the arrow keys) to change its share — the final stage isn't draggable, it always gets whatever's left. Double-click a bar or use its + to split it, use a divider's × (or Delete/Backspace while it's focused) to remove it.
| Stage | Data cutoff | Iteration budget |
|---|---|---|
| 1 (final) | full data | 1000 iterations (runs to convergence within this) |
Data
Plot options
| Parameter | Fit | Log-space | Initial guess / fixed value | Fitted value |
|---|---|---|---|---|
| Environmental pH | — | |||
| Public max. sucrose growth rate | — | |||
| Private max. sucrose growth rate | — | |||
| Cheater max. glucose growth rate | — | |||
| Public sucrose half-saturation | — | |||
| Private sucrose half-saturation | — | |||
| Cheater glucose half-saturation | — | |||
| Public pH optimum | — | |||
| Cheater pH optimum | — | |||
| Private pH optimum | — | |||
| Public pH-response width | — | |||
| Cheater pH-response width | — | |||
| Private pH-response width | — | |||
| Public glucose-release fraction | — | |||
| Cheater burden on Public | — | |||
| Transfer rate | — | |||
| Public self-limitation | — | |||
| Cheater self-limitation | — | |||
| Private self-limitation | — | |||
| Public sucrose yield | — | |||
| Private sucrose yield | — | |||
| Cheater glucose yield | — |
