Red blood cells rely on the pentose phosphate pathway (PPP) to regenerate NADPH, which keeps glutathione (GSH) in its reduced, protective form. G6PD is the rate-limiting PPP enzyme. Each cell here tracks a reduced-glutathione fraction G ∈ [0,1]:
dG/dt = k_regen · (1 − G) − k_ox · dose
k_regen = k0 · (G6PD activity fraction)
k_ox = oxidative consumption rate constant
Steady state without drug is G → 1. Under a steady oxidant load, the equilibrium becomes G_ss = 1 − (k_ox·dose)/k_regen. Because k_regen scales directly with enzyme activity, a deficient cell (low activity ⇒ low k_regen) reaches a far lower G_ss than a normal cell exposed to the same dose — the same drug that a normal person tolerates can crash a deficient cell's glutathione reserve.
When a cell's G drops below the lysis threshold, unprotected hemoglobin oxidizes and denatures (Heinz bodies), and the cell is cleared from circulation — modeled as a rising per-time-step lysis probability once below threshold. The heterozygous-carrier genotype models X-chromosome mosaicism (Lyonization): roughly half the red-cell population expresses the normal allele and half the deficient allele, so only the deficient half is vulnerable — visible directly as two colored subpopulations lysing at different rates.
- Genotype — sets each cell's G6PD activity fraction (and, for the carrier, splits the population into two mosaics).
- Drug dose — sets the oxidant load once the drug is given; higher dose = faster glutathione consumption.
- Time speed — simulated hours per real second, since hemolysis unfolds over hours to days in real patients.
- Give the drug now — starts the oxidant challenge (e.g. modeling primaquine or dapsone); Reset restores a fresh, undosed patient.
Real-world relevance: this is the mechanism behind primaquine- and dapsone-triggered hemolytic anemia, favism (fava beans), and the "personalized medicine" recommendation to screen G6PD status before prescribing certain antimalarials, sulfonamides, and antibiotics.