Models / Tripartite dynamics

This model explores how cooperation, exploitation and privatization coexist in a microbial community built around a single shared carbon source, sucrose. Three metabolic strategies compete for it: the public metabolizer secretes invertase, hydrolysing sucrose into glucose that becomes freely available to the whole community; the cheater takes up that glucose without paying the metabolic cost of producing the enzyme; and the private metabolizer imports and digests sucrose intracellularly, avoiding both the cost of sharing and the risk of exploitation.

Population growth follows a generalized Lotka-Volterra model with density-dependent self-limitation for each strategy, an exploitation term through which cheaters benefit at the public metabolizer's expense, and a competition term between public and private metabolizers for the shared sucrose pool. Because the same right-hand sides can be read as per-capita growth rates, the model doubles as a three-strategy evolutionary game: each strategy's fitness is exactly its payoff, and the interior equilibrium where all three coexist corresponds to the point where all three payoffs are equal.

The public metabolizer needs a growth-rate advantage over the private metabolizer to sustain the community: this model's analysis finds stable three-way coexistence only for a narrow window of that ratio (roughly 1.2-5x), with the most robust balance around 1.2-2x. Outside that window the system collapses to a boundary state, private-only dominance if the public metabolizer grows too slowly, or loss of the private metabolizer if it grows too fast relative to the public strategy.

Schematic of the tripartite community: the public metabolizer secretes extracellular enzymes that hydrolyse sucrose into glucose, a shared resource taken up by the cheater; the private metabolizer imports and digests sucrose intracellularly using its own enzymes
tune

Simulation parameters

Public growth rate 0.5
Public self-limitation 0.0001
Cheater self-limitation 0.0001
Private growth rate 0.2
Private self-limitation 0.0001
Exploitation rate 0.0002
Competition rate 0.0001
tune

Initial conditions

Public Metabolizer 1
Cheater 1
Private Metabolizer 1
analytics

Analyses

Time course

Loading chart...

Public metabolizer growth rate scan

Add analysis

Model Details

Review and edit model structure, biological variables, and kinetic parameters.

NameTex nameInitial valueActions

Edit Options

Edit Options

Edit Options

preview

Generated LaTeX Code

\begin{align*}
  \frac{d \text{Public}}{dt} &= r_P \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} &= \alpha \cdot \text{Public} \cdot \text{Cheater} - \nu \cdot \text{Cheater} \cdot \text{Cheater} \\ 
  \frac{d \text{Private}}{dt} &= r_M \cdot \text{Private} - \beta \cdot \text{Public} \cdot \text{Private} - \gamma \cdot \text{Private} \cdot \text{Private}
\end{align*}

Fit to data

Fit settings

SettingValue
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.

Split into equal stages:
min viable
1000 it. (final)
t=0 t=100
StageData cutoffIteration budget
1 (final)full data1000 iterations (runs to convergence within this)

Data

Plot options

ParameterFitLog-spaceInitial guess / fixed value Fitted value
Public growth rate —
Public self-limitation —
Cheater self-limitation —
Private growth rate —
Private self-limitation —
Exploitation rate —
Competition rate —

Edit analysis

Plot options

Variable selection
Show Normalize

Edit parameter scan

Plot options

Variable selection
Show Normalize

Build your own model

Choose how you want to define your system.

ODE models

Steady-state models