Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Big Idea

Resistant bacteria that destroy a drug protect each other only in numbers, so we follow the number of cells instead of a fraction. Then a range of doses has two stable outcomes, cleared and established, and the size of the inoculum decides between them. The range ends at a saddle-node bifurcation, where a stable and an unstable state meet and vanish, and raising and then lowering the dose traces a hysteresis loop.

Counting cells, not fractions

In the shared-good model of Transcritical Bifurcation: Turning the Dose the drug level was set by the fraction of resistant cells, and every dose had exactly one stable steady state: the outcome never depended on where the culture started. In reality the drug level depends on the number of cells that destroy it. Repairing this changes the mathematics, not only the biology.

Biology background: the inoculum effect

The inoculum is the number of bacteria at the start of an infection or an experiment. For many antibiotics, penicillins among them, a dose that kills a small inoculum fails against a large one. This is the inoculum effect. One cause is the drug-destroying enzyme β-lactamase. A single cell makes too little of it to protect itself against a high dose. Many cells together destroy the drug in the medium faster than it arrives, and then they survive.

Our example is Mycobacterium tuberculosis, the bacterium that causes tuberculosis (TB). Every TB cell makes its own β-lactamase, called BlaC. The β-lactam meropenem, given together with clavulanate, a drug that blocks BlaC, kills even TB strains that resist every standard drug Hugonnet et al., 2009. Here we give meropenem alone, so the enzyme works. TB grows slowly: a cell divides about once a day.

Three modelling changes follow. We track the number of cells NN, because the drug level depends on it. There is one strain: every cell makes the enzyme, so the question is whether the population survives at all. And there is no immunity: every cell is killed at a rate proportional to the drug level, and protection comes only from lowering that level for everyone.

The drug level DD obeys a balance equation, as in Rates In, Rates Out:

D˙=σ−δD−γND.\dot D = \sigma - \delta D - \gamma N D .

Drug is supplied at a constant rate σ\sigma (an infusion, or the inflow of a culture vessel), cleared at rate δD\delta D (each molecule is removed with the same chance per unit time), and destroyed at rate γND\gamma N D (each cell destroys drug in proportion to its level, which assumes that the enzyme is far from saturated).

Without drug the cells grow logistically with growth rate rr and carrying capacity KK, as in Populations and Fractions. The drug kills each cell at rate kDkD, as it killed the sensitive cells there:

N˙=rN(1−NK)−kDN.\dot N = rN\Big(1 - \frac{N}{K}\Big) - kDN .

Meropenem is cleared from the blood with a half-life of about an hour, while a TB population needs about a day to double. So we let the drug sit at its steady state for the current NN. Setting D˙=0\dot D = 0 in (1),

D=σδ+γN=D01+N/Nc,D0=σδ,Nc=δγ.D = \frac{\sigma}{\delta + \gamma N} = \frac{D_0}{1 + N/N_c}, \qquad D_0 = \frac{\sigma}{\delta}, \quad N_c = \frac{\delta}{\gamma} .

D0D_0 is the drug level without cells. NcN_c is the number of cells that destroy drug exactly as fast as clearance removes it; at N=NcN = N_c the drug level is halved.

What the quasi-steady state costs

Replacing DD by its steady state for the current NN is the quasi-steady state approximation; the next remark shows when it is justified. It does not change the steady states: at a steady state of the pair (1), (2), D˙=0\dot D = 0 holds anyway. It changes the dynamics, and it is what lets us describe the system by NN alone, with a phase line.

Remark 1 (Where is the small parameter?)

“An hour against a day” can be made precise. Measure cells against the carrying capacity, drug against the drug-free level, and time in cell generations: n=N/Kn = N/K, d=D/D0d = D/D_0, τ=rt\tau = rt. Then (1) and (2) become

dndτ=n(1−n)−ar d n,ε dddτ=1−d−KNc n d,ε=rδ,\frac{\dd n}{\dd\tau} = n(1 - n) - \frac{a}{r}\,d\,n, \qquad \ve\,\frac{\dd d}{\dd\tau} = 1 - d - \frac{K}{N_c}\,n\,d, \qquad \ve = \frac{r}{\delta},

with a=kD0a = kD_0. The small parameter is the growth rate of the cells divided by the clearance rate of the drug. Setting ε=0\ve = 0 gives d=1/(1+Kn/Nc)d = 1/(1 + Kn/N_c), which is (3). The drug relaxes to this value at rate (1+Kn/Nc)/ε>0(1 + Kn/N_c)/\ve > 0 for every nn, so the reduction is justified whenever ε\ve is small. A closer analysis of the two-variable system gives three facts:

  1. The bifurcation diagram is exact for every ε\ve. The full model has the same steady states, and each is a saddle or stable exactly when the phase line of (5) says unstable or stable.

  2. The first correction only slows time. The drug lags behind its target, which multiplies the right-hand side of (5) by a positive factor 1−O(ε)1 - O(\ve).

  3. The threshold inoculum depends on the protocol. If the drug starts above its quasi-steady level, for example when cells enter a host that already holds the full dose, the threshold rises above N−N_-; if it starts below, it falls. The shift is N− k (D(0)−D−)/(δ+γN−)N_-\,k\,\big(D(0) - D_-\big)/(\delta + \gamma N_-), the extra kill rate times the time the drug takes to settle.

For TB, r=1r = 1/day and meropenem’s half-life of about an hour gives δ≈17\delta \approx 17/day, so ε≈0.06\ve \approx 0.06. The reduction is well justified: at a dose of a=2a = 2/day the threshold moves by only about 3% with the protocol. For E. coli, with r=2r = 2/h, the same model would give ε≈3\ve \approx 3. Facts 1 and 2 would still hold, but the threshold would depend strongly on how the drug is given.

Substitute (3) into (2) and write a=kD0a = kD_0 for the kill rate at the full dose.

Definition 1 (Collective resistance)

N˙=f(N;a)=rN(1−NK)−a N1+N/Nc,N≥0,\dot N = f(N; a) = rN\Big(1 - \frac{N}{K}\Big) - \frac{a\,N}{1 + N/N_c}, \qquad N \ge 0,

with growth rate rr and kill rate aa in 1/time1/\text{time} (per day in the examples), and carrying capacity KK and NcN_c in cells per mL.

The model rests on five assumptions, each of which fails somewhere.

The tolerated dose

Divide by NN and put both terms over the common denominator 1+N/Nc1 + N/N_c:

N˙N=r(1−NK)−a1+N/Nc=h(N)−a1+N/Nc,h(N)=r(1−NK)(1+NNc).\frac{\dot N}{N} = r\Big(1 - \frac{N}{K}\Big) - \frac{a}{1 + N/N_c} = \frac{h(N) - a}{1 + N/N_c}, \qquad h(N) = r\Big(1 - \frac{N}{K}\Big)\Big(1 + \frac{N}{N_c}\Big).

The denominator is positive, so the population grows exactly when h(N)>ah(N) > a. h(N)h(N) is the largest kill rate that a population of NN cells can withstand; call it the tolerated dose. This gives a graphical method, as the break-even dose did in Transcritical Bifurcation: Turning the Dose: draw the graph of hh and a horizontal line at height aa; the population grows wherever the graph lies above the line.

The steady states solve f(N;a)=N (h(N)−a)/(1+N/Nc)=0f(N; a) = N\,\big(h(N) - a\big)/(1 + N/N_c) = 0, so they lie on two curves: the vertical line N=0N = 0, which is steady at every dose because an empty culture stays empty, and the graph of hh. The steady states at dose aa are the points where the horizontal line at aa crosses one of these curves.

The picture also gives stability. Differentiate with the product rule; at a crossing N∗>0N^\ast > 0 the factor h(N∗)−ah(N^\ast) - a vanishes, so

f′(N∗)=N∗ h′(N∗)1+N∗/Nc,f′(0)=h(0)−a=r−a.f'(N^\ast) = \frac{N^\ast\,h'(N^\ast)}{1 + N^\ast/N_c}, \qquad f'(0) = h(0) - a = r - a .

By the slope test (Proposition 1), a crossing where hh falls is stable and one where hh rises is unstable, and N=0N = 0 is stable exactly when a>ra > r.

Remark 2 (The shape of the tolerated dose)

hh is the product of a rising factor 1+N/Nc1 + N/N_c (more cells destroy more drug) and a falling factor 1−N/K1 - N/K (crowding). Since h′(0)=r (1/Nc−1/K)h'(0) = r\,(1/N_c - 1/K), hh rises at first exactly when K>NcK > N_c, that is, when cells protect each other before they crowd each other. Without crowding (K→∞K \to \infty), h(N)=r(1+N/Nc)h(N) = r(1 + N/N_c) only rises and a population above the threshold grows without bound; the logistic factor is what bends hh down and creates the stable state N+N_+ and the saddle-node below.

For K>NcK > N_c, hh is a downward parabola with h(0)=rh(0) = r and h(K)=0h(K) = 0. Setting h′(N)=r[(1/Nc−1/K)−2N/(KNc)]=0h'(N) = r\big[(1/N_c - 1/K) - 2N/(KN_c)\big] = 0 gives its maximum,

Nv=K−Nc2,asn=h(Nv)=r (K+Nc)24KNc.N_v = \frac{K - N_c}{2}, \qquad a_\mathrm{sn} = h(N_v) = r\,\frac{(K + N_c)^2}{4KN_c} .

Three ranges of dose

The line at height aa meets the parabola in zero, one or two points, and N=0N = 0 is always a steady state. There are three cases.

The dose a=ra = r that separates the first two cases is the one at which a single cell stops growing. A lone cell destroys too little drug to matter, so this is the dose measured in the laboratory with a small inoculum: the minimum inhibitory concentration (MIC) of Transcritical Bifurcation: Turning the Dose. The middle case is the inoculum effect: a dose above the MIC that still fails against a large inoculum.

Source
<Figure size 936x429 with 6 Axes>

The graphical method for (5). All figures on this page use r=1r = 1/day, K=10K = 10 and Nc=1N_c = 1, with NN in 108 cells per mL. Top: the tolerated dose h(N)h(N) (black) and the dose aa (orange); the population grows where hh lies above the line (shaded). Bottom: the phase lines, filled circles stable and open circles unstable. Left: every inoculum grows. Middle: small inocula are cleared and large ones survive. Right: every inoculum is cleared.

The three panels are three heights of one line. Sliding the line up from a=0a = 0, a crossing is a steady state, so the phase line can change its picture only at the special heights of the graph:

Everywhere else the line cuts the graph at a nonzero angle, and a small change of aa moves each crossing only a little. The tolerated dose has a hump, so it has two special heights, h(0)=rh(0) = r and asna_\mathrm{sn}, and the inoculum model has two bifurcations. If instead K<NcK < N_c (cells crowd each other before they protect each other), Remark 2 shows that hh falls from rr to 0 without a hump. Its only special height is rr: one transcritical bifurcation, no saddle-node, no bistability and no inoculum effect.

Source
<Figure size 702x364 with 1 Axes>

Solutions of (5) at one dose in the bistable range (a=2a = 2/day). Inocula below the threshold N−N_- are cleared (orange); inocula above it grow or shrink to N+N_+ (black). Starting close to the threshold, the population hesitates for days before it decides.

The bifurcation diagram

A bifurcation diagram plots the steady states against the parameter. By (6), f=0f = 0 exactly when

N=0ora=h(N).N = 0 \qquad\text{or}\qquad a = h(N) .

The first is a branch at every dose. The second gives the dose as a function of the state, the reverse of what the diagram needs, so formally the positive steady states at dose aa are

N=h−1(a).N = h^{-1}(a) .

hh is not one-to-one: it rises to its top at NvN_v and then falls. So it has two inverses, one on each side of the top. The rising part gives a branch N−(a)≤NvN_-(a) \le N_v and the falling part a branch N+(a)≥NvN_+(a) \ge N_v, and the two meet at NvN_v when a=asna = a_\mathrm{sn}. For this hh both inverses can be written down. hh is a parabola with top asna_\mathrm{sn} at NvN_v and leading coefficient −r/(KNc)-r/(KN_c), so

h(N)=asn−rKNc (N−Nv)2,N±(a)=Nv±KNc (asn−a)r(a≤asn).h(N) = a_\mathrm{sn} - \frac{r}{KN_c}\,(N - N_v)^2 , \qquad N_\pm(a) = N_v \pm \sqrt{\frac{KN_c\,(a_\mathrm{sn} - a)}{r}} \quad (a \le a_\mathrm{sn}) .

Even without a formula, the graph of h−1h^{-1} is the graph of hh reflected in the diagonal: plotting the points (a,N)=(h(N),N)(a, N) = (h(N), N) with aa across and NN up turns the graph of hh on its side. The top of the hump, (Nv,asn)(N_v, a_\mathrm{sn}), becomes the rightmost point of the curve. The curve turns back there, so a dose meets it twice, once, or not at all, exactly as the horizontal line met hh. By (7), a positive steady state is stable on the upper half of the sideways curve (N>NvN > N_v, where h′<0h' < 0) and unstable on the lower half (N<NvN < N_v). The branch N=0N = 0 is unstable for a<ra < r and stable for a>ra > r.

For a<ra < r the lower half continues below N=0N = 0. There h′>0h' > 0 but N∗<0N^\ast < 0, so f′(N∗)<0f'(N^\ast) < 0 and the branch is stable. It lies outside the model, since a number of cells cannot be negative, but it is what a transcritical bifurcation requires: on each side of a=ra = r, the branch N=0N = 0 and the branch through it have opposite stability, and they swap at the crossing. The stability of the sideways curve therefore changes twice: at its turning point, where h′=0h' = 0, and where it crosses N=0N = 0, where the factor N∗N^\ast does. (The formula fails at N=−NcN = -N_c, where the drug level D0/(1+N/Nc)D_0/(1 + N/N_c) blows up; the figures stay above that.)

Source
<Figure size 936x403 with 2 Axes>

The same picture twice, at one bistable dose (a=2a = 2/day). Left: the graphical method, with the arrows of the phase line drawn along the line at height aa. Right: the axes swapped. The graph of hh lies on its side, the line at aa stands up, and its arrows are the phase line at that dose. The branch N=0N = 0 is the vertical line on the left and the horizontal axis on the right. Repeating the right panel for every dose gives the bifurcation diagram below: the curve is the same for every dose, and only the vertical line moves.

Remark 3 (A first look at nullclines)

The set where N˙=f(N;a)=0\dot N = f(N; a) = 0, drawn in the plane of aa and NN, is called the NN-nullcline: the curves on which NN does not change. Here it has two pieces, the line N=0N = 0 and the curve a=h(N)a = h(N), and the bifurcation diagram is this nullcline with its stability marked.

Read the plane as a phase plane for two variables, NN and aa, where the dose never changes: a˙=0\dot a = 0. Then the flow is vertical everywhere, pointing up on one side of the NN-nullcline and down on the other, and every point of the nullcline is a steady state. In a genuine two-variable model the second variable has its own nullcline, the flow is no longer vertical, and the steady states are only the points where the two nullclines cross. If the dose changes slowly instead, with a˙\dot a small but not zero, the state creeps along a stable piece of the NN-nullcline and jumps when that piece ends at the fold. That is the hysteresis loop below.

Source
<Figure size 936x429 with 2 Axes>

Bifurcation diagram of (5) in the dose aa. Left: solid curves are stable, dashed unstable, and the population grows in the shaded region inside the sideways curve; the vertical arrows are the phase lines at a=0.5a = 0.5, 2 and 3.5/day. The unstable branch N−N_- passes through N=0N = 0 at a=ra = r (transcritical); below N=0N = 0, outside the model (grey), it continues as a stable branch. It meets the stable branch N+N_+ at asn≈3.0a_\mathrm{sn} \approx 3.0/day, where both vanish (saddle-node). Right: raising the dose slowly, an established infection follows N+N_+ until asna_\mathrm{sn} and then collapses. Lowering the dose again, it stays cleared until the dose falls below rr.

The diagram shows the two bifurcations that the special heights of hh predicted. At a=ra = r the unstable branch N−N_- passes through N=0N = 0 and the two exchange stability: a transcritical bifurcation, as in Transcritical Bifurcation: Turning the Dose, except that the branch entering the positive values is now the unstable one, on the side where N=0N = 0 is stable. At a=asna = a_\mathrm{sn} the stable branch N+N_+ and the unstable branch N−N_- meet at NvN_v and disappear: a saddle-node bifurcation, also called a fold.

Proposition 1 (Bistability and the inoculum effect)

Let K>NcK > N_c in (5), and let asna_\mathrm{sn} be given by (8).

  1. If a<ra < r, N=0N = 0 is unstable and every positive inoculum tends to the unique positive steady state N+N_+.

  2. If r<a<asnr < a < a_\mathrm{sn}, there are two positive steady states N−<Nv<N+N_- < N_v < N_+. The states N=0N = 0 and N+N_+ are stable and N−N_- is unstable. Inocula below N−N_- tend to 0; inocula above it tend to N+N_+.

  3. If a>asna > a_\mathrm{sn}, every inoculum tends to 0.

There is a transcritical bifurcation at a=ra = r and a saddle-node bifurcation at a=asna = a_\mathrm{sn}.

Proof 1

By (6), f(N;a)f(N; a) has the sign of h(N)−ah(N) - a for N>0N > 0. hh is a downward parabola with h(0)=rh(0) = r and maximum asna_\mathrm{sn} at Nv>0N_v > 0. In case 1, h−ah - a is positive at 0 and has exactly one positive zero N+N_+, positive before it and negative after. In case 2, h−ah - a is negative at 0, positive between its two zeros N−<Nv<N+N_- < N_v < N_+, and negative beyond N+N_+. In case 3, h−a<0h - a < 0 for every NN. In each case the arrows of the phase line follow. A solution that starts between two neighbouring steady states is monotone and cannot cross either of them, so it converges to the one its arrow points to.

Definition 2 (Transcritical and saddle-node bifurcations)

At a transcritical bifurcation two branches of steady states cross and exchange stability. Neither disappears. At a saddle-node bifurcation a stable and an unstable branch approach each other, meet, and disappear together.

Hysteresis

Follow the right panel. An established infection sits near N=KN = K. Raise the dose slowly. The population follows the stable branch N+N_+ and shrinks, but it stays large almost all the way to the fold. At asna_\mathrm{sn} the branch it was sitting on vanishes, and the population collapses to 0. Now lower the dose slowly. N=0N = 0 remains stable all the way down to a=ra = r: any cells that survived the collapse, or arrive later, are cleared again. Only below rr can they grow back. Between rr and asna_\mathrm{sn}, at the same dose, the population can be either cleared or established, and which one depends on where it came from. This is hysteresis.

Clinically, a dose between the MIC rr and asna_\mathrm{sn} clears a small inoculum and fails against a large one. There are two ways out: give a dose above asna_\mathrm{sn}, or first lower NN below the threshold N−N_-, for example by surgically removing the most heavily infected part of the lung (still done for drug-resistant TB), after which the same dose works. In the diagram the second option moves the state vertically, from the upper branch to below the dashed one.

Karslake and colleagues measured the growth of Enterococcus faecalis at fixed densities under several antibiotics. For most of them the effect of the drug changed with the density; for several the cause was a change in the acidity of the medium, not destruction of the drug. Their models predicted bistable treatment outcomes over a wide range of doses Karslake et al., 2016.

Linearization along the branches

The slope test is a linearization. Near a steady state N∗N^\ast write N=N∗+xN = N^\ast + x with xx small. Since f(N∗;a)=0f(N^\ast; a) = 0,

x˙=f(N∗+x;a)≈fN(N∗;a) x=λ x,λ=fN(N∗;a),\dot x = f(N^\ast + x; a) \approx f_N(N^\ast; a)\,x = \lambda\,x, \qquad \lambda = f_N(N^\ast; a),

so x(t)≈x(0) eλtx(t) \approx x(0)\,e^{\lambda t}: a deviation shrinks if λ<0\lambda < 0 and grows if λ>0\lambda > 0, on the time scale 1/∣λ∣1/|\lambda|. Here fN=∂f/∂Nf_N = \partial f/\partial N.

Proposition 2 (Rates along the branches)

On the branch N=0N = 0, λ0=r−a\lambda_0 = r - a. For K>NcK > N_c and a<asna < a_\mathrm{sn}, the positive branches N±N_\pm of (11) have rates

λ±=∓ 2r (asn−a)KNc  N±1+N±/Nc.\lambda_\pm = \mp\,2\sqrt{\frac{r\,(a_\mathrm{sn} - a)}{KN_c}}\; \frac{N_\pm}{1 + N_\pm/N_c} .

So λ+<0\lambda_+ < 0 and λ−>0\lambda_- > 0 wherever the branches are positive, and both rates vanish like asn−a\sqrt{a_\mathrm{sn} - a} at the saddle-node.

Proof 2

λ0=f′(0)=r−a\lambda_0 = f'(0) = r - a is (7). Differentiating the completed square (11), h′(N±)=−2rKNc(N±−Nv)=∓2r(asn−a)/(KNc)h'(N_\pm) = -\frac{2r}{KN_c}(N_\pm - N_v) = \mp 2\sqrt{r(a_\mathrm{sn} - a)/(KN_c)}, and (7) gives (13).

An inoculum close to the threshold leaves it at the rate λ−\lambda_-, so it hesitates for a time of order 1/λ−1/\lambda_- before it decides: that is the hesitation in the solutions above. Near the saddle-node both rates vanish like asn−a\sqrt{a_\mathrm{sn} - a}, so close to the fold every decision is slow.

Reading the bifurcations off the graph

Both models came with a graphical method, the break-even dose HH of Transcritical Bifurcation: Turning the Dose and the tolerated dose hh here, and in both the bifurcations sit at the special heights of the graph. HH rises without a turning point, so its only special height is H(0)=cH(0) = c, and the shared-good model has one bifurcation. hh has a hump, so it has two, h(0)=rh(0) = r and asna_\mathrm{sn}, and the inoculum model has two. The number of bifurcations can be read off before any diagram is drawn.

Source
<Figure size 936x364 with 2 Axes>

The special heights of the two graphs (dashed): where the line at height aa meets the boundary state, and where it touches a turning point. Left: the monotone break-even dose H(p)=c/(1−p)H(p) = c/(1 - p), with c=0.1c = 0.1/h, has one, so the shared-good model has one bifurcation. Right: the hump of the tolerated dose has two, so the inoculum model has two.

Remark 4 (Bifurcations happen where the slope test fails)

In both examples the slope at the steady state involved is zero at the bifurcation value: f′(0)=a−c=0f'(0) = a - c = 0 at a=ca = c, and h′(Nv)=0h'(N_v) = 0 at asna_\mathrm{sn}. This is no accident. A steady state with f′≠0f' \ne 0 moves only a little when the parameter changes a little, and it keeps the sign of its slope, so it neither disappears nor changes stability. To find bifurcations, solve f=0f = 0 and f′=0f' = 0 together. In the graphical method these are the special heights again: by (7), a crossing has f′=0f' = 0 exactly when it sits at N=0N = 0 or at a turning point of hh.

References
  1. Hugonnet, J.-E., Tremblay, L. W., Boshoff, H. I., Barry, I., C. E., & Blanchard, J. S. (2009). Meropenem-clavulanate is effective against extensively drug-resistant Mycobacterium tuberculosis. Science, 323(5918), 1215–1218. 10.1126/science.1167498
  2. Karslake, J., Maltas, J., Brumm, P., & Wood, K. B. (2016). Population density modulates drug inhibition and gives rise to potential bistability of treatment outcomes for bacterial infections. PLoS Computational Biology, 12(10), e1005098. 10.1371/journal.pcbi.1005098