Science Journaling Club Founded 2024

VOLUME 2, ISSUE 1 · FALL 2025 · ORIGINAL RESEARCH

The Dosing Schedule Decides Whether Resistance Wins

Written jointly by the Science Journaling Club

Computational study · Peer-edited by the club review board · LaTeX source · Analysis code · Raw output · Interactive model

Abstract We built a stochastic two-strain bacterial population model under a one-compartment pharmacokinetic drug concentration and ran 178,002 simulated treatment courses on a laptop. There are no bacteria in this study and no patients: the computation is the experiment, and none of what follows is medical advice. Before measuring anything we validated the deterministic core. Bisection on the net growth rates recovered the mutant selection window as [1.000000000000, 16.000000000000] mg/L against the input MICs, agreeing to 2.9 × 10−15 mg/L; the lower edge of the wider selective window matched a closed form we solved by hand to 2.7 × 10−15 mg/L, landing at MIC/5.26, inside the MIC/4 to MIC/230 range Gullberg and colleagues measured experimentally [8]. With the fitness cost set to zero the resistant strain never declined without drug (minimum net growth rate exactly 0.000000/h); with mutation switched off, resistance appeared in 0 of 2000 replicates, and a schedule that cures only 8.90% of the time once mutation is switched back on cured every one of them. Across a grid of five dose sizes and five dosing intervals at perfect adherence, peak concentration relative to MIC was the best single predictor of cure (Spearman ρ = +0.9809) and total drug delivered was worse (+0.9333). At matched total exposure of 1246.5 mg/L·h, a two-day schedule of 48 mg/L every 8 h cleared 2000 of 2000 replicates while a fourteen-day schedule of 6.857 mg/L delivering exactly the same drug ended in resistance 91.10% ± 0.64% of the time, a gap of 143 standard errors. Holding dose fixed instead, one day of treatment cured 86.70% ± 0.76% against 100% for fourteen days, and the median time to clearance was 6.0 h in every row. Missing doses mattered, taking cure from 1.0000 to 0.7670 ± 0.0094 at 50% adherence, but a control that delivered the same reduced total drug with no gaps did considerably worse (0.4980 against 0.8595 at 80%). The short schedule won in all fourteen sensitivity variants, with the margin collapsing from +0.880 to +0.022 at a hundred-fold smaller inoculum. Seed 20250915.

The Poster in the Waiting Room

Every one of us grew up with the same instruction. Finish the course. Take the last pill even when you feel fine, because stopping early is what breeds resistant bacteria. It is on posters in surgeries and on the leaflet folded inside the box, and most of us had said it out loud to somebody else without ever having checked it.

So we checked it, in the only way a school club with no laboratory can check anything. We wrote down a population model, gave it a drug concentration that rises at each dose and decays in between, put a sensitive strain and a resistant strain in it, and ran the thing 178,002 times.

The answer was not the one on the poster, and it was not the opposite of the one on the poster either. It was a third thing. In our model the height of the concentration peak decides almost the whole outcome, and the length of the course stops mattering as soon as the drug has finished its work. Missing doses does real damage, for a reason that has very little to do with how much drug you end up swallowing.

178,002simulated courses
1.0000cure, 2 days at 48 mg/L
0.0890cure, 14 days, same total drug
6.0 hmedian time to clearance

Two warnings before anything else, and we mean both of them. First, this is a simulation. No bacterium, no patient and no clinical record was involved at any point. When we write that a schedule "cured" 86.7% of cases, we mean that 1734 of 2000 simulated populations in a computer went to zero. Second, and more important, nothing here is advice about medicine. A person deciding when to stop taking an antibiotic is facing a problem that includes their immune system, the site of their infection, the specific organism and a doctor who has seen the patient. Our model contains none of those. It is a study of a mathematical object that resembles an infection in a few respects and differs from one in many. We will keep saying so.

What Is Actually in the Model

The population contains two strains of one species. The sensitive strain S grows at \(\psi^{\max}_S = 1.0\) per hour when there is no drug, which is a doubling time of about 42 minutes. The resistant strain R carries a fitness cost \(c = 0.10\), so its drug-free maximum is \(\psi^{\max}_R = 0.90\) per hour. Costs in that range are typical of chromosomal resistance mutations before compensatory evolution erodes them [9].

Drug acts through the sigmoid pharmacodynamic function of Regoes and colleagues [3], which fits measured net growth rates for five antibiotic classes and is the standard way to write killing as a function of concentration [2][4]. For a strain with maximum net growth \(\psi^{\max}\), maximum kill rate \(\psi^{\min}\) and MIC \(m\):

$$\psi(C) = \psi^{\max} - \left(\psi^{\max} - \psi^{\min}\right) \frac{u}{u - \psi^{\min}/\psi^{\max}}, \qquad u = \left(\frac{C}{m}\right)^{\kappa}$$

We used \(\psi^{\min} = -4.0\) per hour for both strains and a Hill coefficient \(\kappa = 1.5\). The function is built so that \(\psi(0) = \psi^{\max}\), \(\psi(\infty) = \psi^{\min}\) and, the part that matters, \(\psi(m) = 0\) exactly. That last identity is what an MIC means: the concentration at which net growth is zero. A little algebra collapses the whole expression to

$$\psi(C) = \frac{k\,\psi^{\max}(1 - u)}{\psi^{\max} u + k}, \qquad k = -\psi^{\min},$$

which is the form in the code. The sensitive strain has \(m_S = 1\) mg/L and the resistant strain \(m_R = 16\) mg/L, a sixteen-fold shift of the kind a single efflux or target mutation can produce.

Pharmacokinetics are deliberately the simplest thing that still has the right shape. One compartment with instantaneous input, and first-order elimination at a half-life of 3.0 hours, so \(k_{\mathrm{elim}} = \ln 2 / 3 = 0.231049\) per hour. Each dose that is actually taken adds \(D\) mg/L to the concentration and the concentration then decays. A regimen is therefore two numbers, the dose \(D\) and the interval \(\tau\), plus how many doses and how reliably they are swallowed.

Demography is a stochastic birth and death process on integer cell counts, advanced by tau-leaping on a fixed step of 0.02 h [16]. Births are Poisson draws at rate \(\psi^{\max}_i\), independent of drug. Deaths are binomial draws on the standing population at rate

$$d_i = \left(\psi^{\max}_i - \psi_i(C)\right) + \psi^{\max}_S \frac{N_{\mathrm{tot}}}{K},$$

so that the net growth of strain \(i\) is \(\psi_i(C) - \psi^{\max}_S N_{\mathrm{tot}}/K\). With no drug and the population at carrying capacity \(K = 10^9\), the sensitive strain sits exactly at equilibrium and the resistant strain declines at rate \(c\), which is what a fitness cost is supposed to do. Drawing deaths as binomials rather than Poissons means a population can never be pushed below zero by a leap that is slightly too large.

Resistance arises only by mutation, at \(\mu = 10^{-9}\) per sensitive birth. There is no back mutation and no horizontal transfer. Each run begins with 48 hours of drug-free burn-in from \(N_S = K\) and \(N_R = 0\), which lets standing variation build up stochastically instead of being assigned by hand, and then the first dose lands.

-4 -3 -2 -1 0 1 0.02 0.1 1 10 32 MSC 0.190003 MIC_S 1 MIC_R 16 drug concentration, mg/L (log scale) net growth rate, per hour sensitive resistant NET GROWTH AGAINST CONCENTRATION shaded: resistant strain both out-grows the sensitive strain and still grows in absolute numbers window edges recovered by bisection to within 2.9e-15 mg/L of the input values
Figure 1. Net growth rate against drug concentration for both strains, from the 129-point table printed in the raw output. The sensitive curve crosses zero at 1 mg/L and the resistant curve at 16 mg/L, because that is what the MIC values were set to and the function is constructed to honour them. The two curves cross at 0.190003 mg/L, which is below the sensitive MIC: sub-inhibitory drug already favours the resistant strain. Shading marks the region where the resistant strain both out-grows the sensitive strain and grows in absolute numbers.

Nothing Gets Reported Until the Window Checks Out

A simulation that has never been checked against something outside itself is a picture, not a measurement. So the program runs seven validations before it produces a single result, and it prints our value beside the accepted value with the difference, every time.

The first two concern the mutant selection window, the concentration band in which resistant mutants are selectively amplified [5][6][7]. Drlica and Zhao define its upper edge as the mutant prevention concentration and its lower edge, in the classical statement, as the MIC of the susceptible strain. In our model both edges are exactly where a strain's net growth crosses zero, so bisecting on \(\psi_S\) and \(\psi_R\) should return the two MIC values we typed in. It does, to 2.9 parts in \(10^{15}\).

The wider window is more interesting. Selection for resistance does not wait for the sensitive strain to stop growing; it begins as soon as \(\psi_R\) exceeds \(\psi_S\), which happens below \(m_S\) whenever the fitness cost is small. Setting the two expressions equal and substituting \(X = C^{\kappa}\) turns the equation linear, and it solves:

$$X_{\mathrm{sel}} = \frac{k(p - q)} {pq\alpha - pq\beta + kp\alpha - kq\beta}, \qquad \alpha = m_S^{-\kappa}, \;\; \beta = m_R^{-\kappa},$$

with \(p = \psi^{\max}_S\), \(q = \psi^{\max}_R\) and \(C_{\mathrm{sel}} = X_{\mathrm{sel}}^{1/\kappa}\). One of us derived that on paper before the code was written, which is the only order in which such a check is worth anything. The bisection and the closed form agree to 2.7 parts in \(10^{15}\).

Lower window edge, \(\psi_S(C) = 0\), against input MICS = 11.000000000000  Δ −2.9e−15
Upper window edge, \(\psi_R(C) = 0\), against input MICR = 1616.000000000000  Δ 0.0e+00
Minimal selective concentration, bisection against closed form0.190003079618  Δ −2.7e−15
Dense scan, 40,001 points: does "R gains and R grows" equal "inside the window"?0 mismatches
Zero fitness cost, drug absent: minimum net growth rate of R over 500 h0.000000 /h
Zero mutation supply: replicates out of 2000 showing a single resistant cell0
Standing resistance after burn-in against the finite-time balance 9.917710.1233 ± 0.1571, z = 1.31
Variance of standing resistance against \(\lambda d/(d-b)^2\) = 100.098.7
Tau-leaping step halved, 0.04 h against 0.02 h, change in P(cure)0.0055, 0.56 SE

Two of those deserve a sentence each. The zero-cost check asks whether the model can make the resistant strain decline for a reason it should not have. Run deterministically with \(c = 0\) and no drug for 500 hours, the smallest change in \(N_R\) over any step was exactly zero and the smallest net growth rate was exactly zero, so it never declines. Put the real cost back and the same run takes \(N_R\) from \(1.0 \times 10^3\) to \(1.9 \times 10^{-18}\), a decay rate over the last hundred hours of 0.100000 per hour against the 0.100000 we typed in.

The zero-mutation check is the one that surprised people. Take a schedule that is hopeless in the full model, 8 mg/L every 24 hours for a week, which cures only 8.90% of replicates. Set \(\mu = 0\) and start with no resistant cells. It now cures 2000 out of 2000. The schedule is not failing because it is too weak to kill bacteria. It is failing because it is strong enough to clear the sensitive strain and too weak to touch the resistant one.

Notes From the Club Table

Meeting 1
Argument about whether the drug should kill or just stop growth. Settled by using the Regoes function, which does both and has the MIC built into it as the zero crossing. Nobody had to invent a number.

Meeting 1, later
First version drew deaths as Poisson and clipped negatives at zero. Populations near extinction came out systematically too high. Switched deaths to binomial draws on the standing count. Extinction is now exact and no clipping happens anywhere.

Meeting 2
Realised the density-dependent death term had been written with each strain's own \(\psi^{\max}\), which makes both strains sit at zero net growth at carrying capacity and quietly deletes the fitness cost. One shared term fixed it. This is the bug that would have invalidated the whole study, and we found it only because the zero-cost validation was already written.

Meeting 2
Adherence experiment first ran on a reference regimen of 8 mg/L every 8 h. Missing doses did nothing at all, to four decimal places. Took a while to see why: that regimen already fails 90% of the time, so there is nothing left to break. Moved the reference to 32 mg/L every 8 h, which cures everything at full adherence.

Meeting 3
Someone asked whether the matched-exposure result was about shortness or about dose height, since the short arm has bigger doses. Fair. Added a second ladder that holds the dose fixed at 32 mg/L and varies only the number of days. See §7.

Meeting 3
Step size. Ran one cell at dt = 0.08, 0.04 and 0.02 h. P(cure) came out 0.1000, 0.1090 and 0.1035, which wanders inside the noise rather than drifting with dt. Took 0.02 h anyway because it costs five minutes and buys an argument we do not have to have.

Meeting 4
Seed fixed at 20250915 and not touched since. Every number in this article comes from one run of the file as it now stands, 498.0 seconds on a laptop.

What One Missed Dose Buys, in Arithmetic

This section has no simulation in it. It is the pharmacokinetics and the pharmacodynamic function integrated directly, and it explains almost everything that follows.

Start with the concentration. With doses of \(D\) every \(\tau\) hours and first-order elimination, the steady-state peak is the geometric series \(C_{\max} = D/(1 - e^{-k\tau})\). For \(D = 32\) mg/L every 8 h with \(k = 0.231049\):

C_max = 32 / (1 − e−0.231049×8) = 32 / 0.842478 = 37.9818 mg/L
C_min = 37.9818 × e−1.848392 = 5.9818 mg/L
time from the peak down to MIC_R = 16 = ln(37.9818 / 16) / 0.231049 = 3.7417 h
as a fraction of the interval = 3.7417 / 8 = 0.4677
time from the peak down to the MSC = 0.190003 = ln(37.9818 / 0.190003) / 0.231049 = 22.9294 h

So on this schedule the drug spends 47% of every interval above the concentration at which the resistant strain cannot grow, and it never falls anywhere near the bottom of the selective window before the next dose arrives. Now integrate the resistant strain's net growth over one interval, \(\exp \int_0^{\tau} \psi_R(C(t))\,dt\), and over one interval that has been doubled by a missed dose:

32 mg/L every 8 h
on schedule, 8 h      resistant × 0.5598     sensitive × 3.2419e−13
one dose missed, 16 h  resistant × 386.06      sensitive × 4.3216e−18
the gap alone multiplies the resistant strain by 689.71

6.857 mg/L every 8 h (the matched long arm)
on schedule, 8 h      resistant × 474.62     sensitive × 2.5048e−07
one dose missed, 16 h  resistant × 594,260      sensitive × 1.1862e−05
the gap alone multiplies the resistant strain by 1252.1

Read the two blocks against each other. On the high schedule a resistant cell ends every interval slightly worse off than it started, because 0.5598 is less than one. It is losing ground on the drug's own terms. One missed dose turns that 0.5598 into 386, a swing of a factor of 690, and roughly 1.93 such gaps are enough to take the 9.9 resistant cells the model starts with up to a million. That is where the adherence result in §9 comes from.

On the low schedule the resistant strain multiplies by 475 every single interval whether or not anybody misses anything. Perfect adherence on a schedule like that is perfect adherence to a selection experiment.

0 10 20 30 40 hours after the first dose A. 32 mg/L every 8 h, 3 days cleared at 6.02 h 0 10 20 30 40 hours after the first dose B. 8 mg/L every 24 h, 7 days resistance established 0.1 1 10 MIC_R 16 MSC 0.19 1 1e2 1e4 1e6 1e8 drug, mg/L cells drug concentration sensitive strain resistant strain mutant selection window, 0.19 to 16 mg/L
Figure 2. Two single replicates recorded step by step, plotted from the trajectory tables in the raw output. Both begin with 5 resistant cells standing after burn-in. In panel A the concentration stays above 16 mg/L for part of every interval and both strains are gone by 6.02 h. In panel B the concentration enters the shaded window within three hours of each dose and stays there; the sensitive strain is wiped out by hour 30 and the resistant strain reaches 9.08 × 108 cells. The drug worked perfectly in panel B. It just worked on the wrong strain.

Twenty-Five Schedules, Run at Perfect Adherence

The main grid crosses five dose sizes with five dosing intervals, gives every cell a seven-day course and perfect adherence, and runs 2000 replicates in each. That is 50,000 simulated courses. We report the standard error from the replicate counts and also a 95% Wilson score interval, because several cells come back at exactly zero or exactly one, where the plain normal interval has zero width and says something false.

0.051 fT>R 0.00 0.037 fT>R 0.00 0.000 fT>R 0.00 0.000 fT>R 0.00 0.000 fT>R 0.00 0.083 fT>R 0.00 0.072 fT>R 0.00 0.085 fT>R 0.00 0.079 fT>R 0.00 0.000 fT>R 0.00 0.111 fT>R 0.00 0.103 fT>R 0.00 0.097 fT>R 0.00 0.096 fT>R 0.00 0.089 fT>R 0.00 1.000 fT>R 0.55 0.209 fT>R 0.21 0.195 fT>R 0.09 0.186 fT>R 0.02 0.195 fT>R 0.00 1.000 fT>R 1.00 1.000 fT>R 0.71 1.000 fT>R 0.47 0.651 fT>R 0.27 0.687 fT>R 0.13 2 4 8 16 32 4 h 6 h 8 h 12 h 24 h dose DOSING INTERVAL dose size, mg/L cell value: P(treatment success), 2000 replicates each fT>R: fraction of each dosing interval spent above MIC_R at steady state every cell with fT>R below 0.27 fails more than 79% of the time
Figure 3. Probability of cure across the grid, shading proportional to the value. The small number in each cell is the fraction of the dosing interval the concentration spends above MICR at steady state, computed from the pharmacokinetics alone with no population model in it. The four cells that cure everything are the four with that fraction above 0.46. Doubling the dose from 16 to 32 mg/L at a 6-hour interval takes cure from 0.2090 to 1.0000; halving the interval from 6 to 4 hours at 16 mg/L does the same thing.
All 25 cells, 2000 replicates each, seven-day course, adherence 1.0. AUC is the total area under the concentration curve over the course in mg/L·h. fT>MICR is the steady-state fraction of each interval above 16 mg/L. Median clearance time is over the cured replicates only.
DoseτDosesAUC fT>MICRP(cure) ± SE 95% WilsonP(resistance)Median tclear
dose 2 mg/L, twice the sensitive MIC
24 h42363.60.00000.0515 ± 0.00490.0426–0.06210.948521.28 h
26 h28242.40.00000.0375 ± 0.00420.0300–0.04680.962545.52 h
28 h21181.80.00000.0000 ± 0.00000.0000–0.00190.9935
212 h14121.20.00000.0000 ± 0.00000.0000–0.00191.0000
224 h760.60.00000.0000 ± 0.00000.0000–0.00190.5555
dose 4 mg/L
44 h42727.10.00000.0825 ± 0.00620.0712–0.09540.917510.46 h
46 h28484.70.00000.0725 ± 0.00580.0619–0.08470.927514.38 h
48 h21363.60.00000.0850 ± 0.00620.0736–0.09800.915019.41 h
412 h14242.40.00000.0790 ± 0.00600.0680–0.09160.921049.65 h
424 h7121.20.00000.0000 ± 0.00000.0000–0.00191.0000
dose 8 mg/L
84 h421454.20.00000.1105 ± 0.00700.0975–0.12500.88957.26 h
86 h28969.50.00000.1030 ± 0.00680.0904–0.11710.89708.30 h
88 h21727.10.00000.0970 ± 0.00660.0848–0.11080.90309.88 h
812 h14484.70.00000.0960 ± 0.00660.0839–0.10970.904014.36 h
824 h7242.40.00000.0890 ± 0.00640.0773–0.10230.911054.12 h
dose 16 mg/L, at the resistant MIC
164 h422908.50.54711.0000 ± 0.00000.9981–1.00000.000024.76 h
166 h281939.00.20750.2090 ± 0.00910.1917–0.22740.79106.56 h
168 h211454.20.09270.1945 ± 0.00890.1777–0.21240.80556.92 h
1612 h14969.50.02330.1865 ± 0.00870.1700–0.20420.81356.94 h
1624 h7484.70.00070.1945 ± 0.00890.1777–0.21240.80556.92 h
dose 32 mg/L, twice the resistant MIC
324 h425816.91.00001.0000 ± 0.00000.9981–1.00000.00005.62 h
326 h283878.00.70751.0000 ± 0.00000.9981–1.00000.00006.02 h
328 h212908.50.46771.0000 ± 0.00000.9981–1.00000.00005.98 h
3212 h141939.00.27330.6515 ± 0.01070.6303–0.67210.34855.74 h
3224 h7969.50.12570.6870 ± 0.01040.6663–0.70690.31305.76 h

Read down the fourth column and the usual intuition fails. The cell at 8 mg/L every 4 hours pours 1454.2 mg/L·h of drug into the model and cures 11.05% of replicates. The cell at 32 mg/L every 24 hours delivers 969.5, a third less, and cures 68.70%. More drug, worse outcome, by a wide margin in both directions.

The column that does order the table is fT>MICR. Clinical pharmacology has spent decades asking which summary of a concentration curve predicts outcome, and the three standard candidates are the fraction of time above MIC, the peak relative to MIC, and the daily area under the curve relative to MIC [4]. We computed all of them for our 25 regimens and ranked them against the measured cure rate:

Spearman rank correlation against P(cure), 25 cells
peak concentration / MIC                +0.9809
AUC per interval / MIC_S                +0.9570
total AUC over the whole course    +0.9333
fraction of time above MIC_R       +0.8807
fraction of time above MIC_S       +0.6078
fraction of time in the window     −0.4818

Peak height wins. Because the peak divided by MICS and the peak divided by MICR differ by a constant factor of 16, a rank correlation cannot tell them apart and both come out at exactly +0.9809; the ranking says peak height matters and is silent about which MIC to divide by. Time above the sensitive MIC, the index that gets quoted most often for beta-lactams, is nearly useless here at +0.6078, because almost every schedule in the grid clears that bar. And time spent inside the selection window correlates negatively with cure, which is the mutant selection window hypothesis written as a number [6][7].

There is a second, blunter way to see what is going on. Split all 50,000 replicates by whether a single resistant cell existed at the moment the first dose was taken. The 3479 replicates that started clean were cured 67.98% of the time. The 46,521 that started with at least one resistant cell were cured 25.12% of the time. The odds ratio is 6.33. Almost everything the treatment schedule does, it does to a resistant population that was already there before the first pill.

Same Drug, Different Shape

If the peak is what matters, then two schedules delivering identical total drug should give different answers as long as they concentrate that drug differently. We built the ladder to test it. Dosing interval fixed at 8 hours, the product of dose size and dose count held at 288 mg/L, so every arm delivers an AUC of exactly 1246.5 mg/L·h. Only the shape changes.

Matched total exposure, 1246.5 mg/L·h in every row, 2000 replicates each
 2 days, 48.000 mg/L × 6    P(cure) 1.0000   P(resistance) 0.0000
 3 days, 32.000 mg/L × 9    P(cure) 0.9950   P(resistance) 0.0050
 4 days, 24.000 mg/L × 12   P(cure) 0.4340   P(resistance) 0.5660
 5 days, 19.200 mg/L × 15   P(cure) 0.2615   P(resistance) 0.7385
 7 days, 13.714 mg/L × 21   P(cure) 0.1665   P(resistance) 0.8335
10 days,  9.600 mg/L × 30   P(cure) 0.1080   P(resistance) 0.8920
14 days,  6.857 mg/L × 42   P(cure) 0.0890   P(resistance) 0.9110

The gap between the top row and the bottom row is 0.9110 in probability of cure, which is 143 standard errors, on the same amount of drug. Spread a fixed supply of antibiotic thin enough and you convert a cure into a selection experiment. That is the aggressive versus moderate question that the evolutionary medicine literature has been arguing about for fifteen years [11][12][13], and on this model, at this inoculum, aggressive wins by a distance.

But the matched ladder changes two things at once. Going from row one to row seven the course gets longer and the dose gets smaller, and we cannot tell from those numbers alone which one did the work. So we ran a second ladder holding the dose fixed at 32 mg/L every 8 hours and varying only the number of days.

0.00 0.25 0.50 0.75 1.00 1 2 3 5 7 10 14 a. COURSE LENGTH P(resistance) against days of treatment days of treatment (log scale) matched total drug fixed dose 32 mg/L 0.00 0.25 0.50 0.75 1.00 1.00 0.90 0.80 0.70 0.60 0.50 b. MISSED DOSES P(resistance) against adherence, 32 mg/L q8h probability each scheduled dose is taken 7-day, doses missed same drug, no gaps Filled circles carry 95% intervals from the replicate counts; the shaded band is the 95% interval of the seven-day arm. Panel a: the matched arms all deliver AUC 1246.5 mg/L h. The fixed-dose arm delivers 415.5 to 5816.9. Panel b: the control line cuts every dose by the same factor instead of dropping whole doses.
Figure 4. Panel a: the same seven course lengths run two ways. The upper line holds total drug fixed and thins the dose as the course lengthens; the lower line holds the dose at 32 mg/L and lets total drug rise fourteen-fold. Panel b: probability of resistance against adherence on the 32 mg/L every 8 h regimen, with the control line that delivers the same reduced average drug by shrinking every dose rather than skipping whole ones. Error bars and the shaded band are 95% intervals from the replicate counts.

Hold the dose and the picture inverts. One day of 32 mg/L every 8 hours cures 86.70% ± 0.76%. Two days cures 96.70% ± 0.40%. Three days cures 99.55% ± 0.15%, five days 99.90% ± 0.07%, and seven, ten and fourteen days all cure every one of 2000 replicates. So course length does help. It helps steeply for the first two days and then stops, and the fourteen-day arm buys its last 0.45 percentage point of cure with 4570 extra mg/L·h of drug.

Six Hours

Here is the number the club kept coming back to.

In the fixed-dose ladder, the median time to clearance was 5.88 h in the one-day arm, 6.02 h in the two-day arm, 6.04 h at three days, 6.06 h at five, 6.00 h at seven, 6.04 h at ten and 6.06 h at fourteen. Seven different course lengths, spanning a fourteen-fold range of total drug, and the infection ends at the same moment in all of them.

It has to. The drug does not know how many doses are left in the packet. Once the sensitive population has gone from \(10^9\) to zero, which at a kill rate near 3.7 per hour takes about six hours, every remaining dose is being taken by a patient who no longer has that infection. In this model those doses are not neutral. They are the period during which any surviving resistant cell has the field to itself and a drug concentration that is often sitting in its selection window.

That is the honest version of the disagreement with the poster. The poster is right that stopping too early is dangerous, and our one-day arm shows it: 13.30% of replicates ended in resistance because treatment stopped while sensitive cells were still there. The poster is silent about the other end, where continuing past clearance is also dangerous, and our matched ladder shows that one too. The safe zone in this model is narrow and it is early. Clinical trials of shorter courses have been finding something with a similar shape for a decade, without needing our model to tell them [17][18].

A Gap Is Not the Same as a Smaller Dose

Now the missed doses. The reference is 32 mg/L every 8 hours, the schedule that cured 2000 out of 2000 when taken properly, and each scheduled dose is now taken independently with probability \(a\).

Seven-day course, 21 scheduled doses, 2000 replicates per level
a = 1.00  P(cure) 1.0000   P(resistance) 0.0000
a = 0.95  P(cure) 0.9800   P(resistance) 0.0200
a = 0.90  P(cure) 0.9350   P(resistance) 0.0650
a = 0.85  P(cure) 0.9060   P(resistance) 0.0940
a = 0.80  P(cure) 0.8595   P(resistance) 0.1405
a = 0.70  P(cure) 0.8150   P(resistance) 0.1850
a = 0.60  P(cure) 0.7915   P(resistance) 0.2085
a = 0.50  P(cure) 0.7670   P(resistance) 0.2330

Missing one dose in five costs 14.05 percentage points of cure, 18.1 standard errors. That is a real effect and it goes in the direction the poster predicts. The three-day course behaves almost identically, 0.9945 down to 0.8555 at the same adherence, so the damage is done by the gaps and not by the shortening of an already short course.

Then we ran the control, and this is where one of us said out loud that the model must be broken. Give every dose, but shrink each one by the factor \(a\), so that the average drug delivered matches the missed-dose arm exactly and the only difference is that there are no gaps in it.

Same average drug, ragged schedule against smooth schedule, P(cure)
a = 0.80  doses missed 0.8595   every dose cut to 25.6 mg/L 0.4980
a = 0.70  doses missed 0.8150   every dose cut to 22.4 mg/L 0.3710
a = 0.60  doses missed 0.7915   every dose cut to 19.2 mg/L 0.2525
a = 0.50  doses missed 0.7670   every dose cut to 16.0 mg/L 0.2015

The ragged schedule is better than the smooth one at every level, and at 50% adherence it is nearly four times better. The model is not broken. Go back to the arithmetic in §5. On a 32 mg/L schedule the first two or three doses are usually taken in full, the sensitive population is gone in six hours, and the resistant cells are being killed during the 47% of each interval when the concentration is above 16 mg/L. Cutting every dose to 25.6 mg/L lowers the peak to 30.4 mg/L and takes that fraction down; cutting to 16 mg/L leaves only 9.27% of each interval above MIC_R, and the grid row for 16 mg/L every 8 h cures 19.45%.

We want to be careful about what this does and does not say. It does not say that missing doses is harmless, because the ragged arm loses a quarter of its cures by 50% adherence. It says that in this model, the harm from a missed dose comes from the gap it opens rather than from the drug it removes, and that a schedule which never reaches a high enough peak is worse than one which reaches it intermittently. The real-world version of the control would be a person taking half a tablet every time, and nobody does that, so the comparison is a diagnostic rather than a scenario.

The Strongest Objection We Can Make

The objection is this. Our model has no immune system, so the drug does all the killing and finishes in six hours, which makes short courses look good by construction. Ankomah and Levin built a closely related within-host model that does include an innate immune response, and their conclusion was the opposite of ours: high dose and full term [14]. If the difference between their answer and ours is one missing term, our answer is an artefact and theirs is the one to believe.

We take it seriously enough that we put it in the sensitivity run. Adding a constant immune clearance rate to both strains moves the long mild arm from 0.1100 to 0.1250 at 0.10 per hour, 0.2730 at 0.30 per hour and 0.4470 at 0.50 per hour, while the short sharp arm stays at 1.0000 throughout. So immune killing helps the weak schedule considerably and never hurts the strong one, and the short arm still wins by 0.553 even when a constant immune term is killing at 0.50 per hour on top of the drug.

That is not a full answer and we should say why. A constant extra death rate is a poor model of immunity. A real innate response grows with the pathogen load, saturates, and arrives on a delay, and Ankomah and Levin's result depends on exactly those dynamics: the drug suppresses the population long enough for the immune response to build, and stopping early removes the suppression before the build is finished. Our constant term cannot represent that at all. The most we can say is that the short arm's advantage survives the crudest version of the criticism, and that testing the real version would need a different model than the one we wrote.

A second objection, from the other direction. Alexander and MacLean showed experimentally and theoretically that stochastic loss keeps most resistant lineages from ever establishing, even at concentrations inside the selection window [15]. Our model agrees with that mechanism and our numbers show it working: the 3479 replicates that began with zero standing mutants were cured 67.98% of the time on schedules where the overall rate was 25.12%. Where we part company is scale. Their argument is about single cells; our populations begin with a mean of 10.12 resistant cells already present, because \(\mu K / c\) with \(K = 10^9\) is ten. Establishment failure from a single cell is likely; establishment failure from ten independent cells over a week of favourable selection is not. Whether a real infection carries ten pre-existing mutants or none is a question about inoculum size, and it is the single assumption our conclusions are most sensitive to. See §11.

0.05 0.10 0.15 0.20 100 1e3 1e4 2e4 a. CONVERGENCE running P(success), 8 mg/L q12h for 7 days replicates accumulated (log scale) final 0.10395 baseline +0.880 fitness cost c = 0.02 +0.946 fitness cost c = 0.30 +0.786 fitness cost c = 0.50 +0.690 MIC R = 4 x MIC S +0.398 MIC R = 8 x MIC S +0.832 MIC R = 32 x MIC S +0.114 inoculum K = 1e7 +0.022 inoculum K = 1e8 +0.200 mutation rate mu = 1e-10 +0.212 mutation rate mu = 1e-8 +0.939 immune clearance 0.10 /h +0.875 immune clearance 0.30 /h +0.727 immune clearance 0.50 /h +0.553 b. SENSITIVITY P(success) short course minus long course bar full width = 1.000; 1000 replicates per arm per row
Figure 5. Panel a: the running estimate of P(cure) for one cell, 8 mg/L every 12 h for seven days, over 20,000 replicates. The relative standard error falls from 30.00% at 100 trials to 2.08% at 20,000, a factor of 14.45 where 1/√n predicts 14.14. The largest excursion of a running estimate from the final value is 1.67 standard errors, at n = 250. Panel b: the advantage of the short schedule over the long one across every sensitivity variant, 1000 replicates per arm per row.

A third objection is about the numbers themselves. A Monte Carlo estimate is only as good as its sample, and a 2000-replicate cell has a standard error near 0.01 on a probability near 0.5. Panel a of Figure 5 is the audit. Taking one cell out to 20,000 replicates, the estimate settles at 0.10395 ± 0.00216 and every intermediate running value sits within 1.67 standard errors of it. The relative error shrinks as 1/√n to within 2%, which is what it should do if the replicates are independent and nothing in the sampling is correlated. That does not make the model right. It makes the numbers we report about the model reliable to the precision we quote them.

Where a Different Choice Would Have Changed the Answer

We ran the two extreme matched arms through fourteen variants of the model, 1000 replicates each, and recorded the gap in cure probability between them. The short arm won in all fourteen. The size of the win is another matter.

P(cure), short sharp arm minus long mild arm, 1000 replicates per arm
baseline                               0.9900 − 0.1100 = +0.8800
fitness cost c = 0.02          0.9850 − 0.0390 = +0.9460
fitness cost c = 0.50          0.9970 − 0.3070 = +0.6900
MIC_R = 4 × MIC_S         1.0000 − 0.6020 = +0.3980
MIC_R = 32 × MIC_S        0.1950 − 0.0810 = +0.1140
inoculum K = 1e8              0.9980 − 0.7980 = +0.2000
inoculum K = 1e7              1.0000 − 0.9780 = +0.0220
mutation rate 1e−10       1.0000 − 0.7880 = +0.2120
mutation rate 1e−8        0.9390 − 0.0000 = +0.9390
immune clearance 0.50/h  1.0000 − 0.4470 = +0.5530

Three of those rows would have given a different article.

Inoculum. Drop the bacterial load from \(10^9\) to \(10^7\) cells and the fourteen-day arm cures 97.80% instead of 11.00%, and the whole finding nearly disappears: the gap falls from +0.880 to +0.022. The reason is the arithmetic of standing variation. At \(K = 10^9\) the model starts with ten resistant cells on average, at \(10^7\) it starts with 0.1, and a population that usually contains no resistant cells at all cannot have resistance selected out of it. Everything in this article is a statement about large infections. For a small one the schedule may barely matter, which is close to the point Alexander and MacLean make [15].

Size of the resistance step. We gave resistance a sixteen-fold MIC shift, which a doctor's peak concentration can still exceed. Make it thirty-two-fold and the short sharp arm collapses from 0.9900 to 0.1950, because 37.98 mg/L is no longer above MICR = 32 for any usable fraction of the interval. The entire high-dose strategy in this article rests on being able to reach above the resistant strain's MIC, and real dosing is bounded by toxicity, which our model has no representation of whatsoever [13]. Change one number and high dosing stops working, which is exactly what the mutant prevention concentration literature has always said [5][6].

Mutation supply. At \(\mu = 10^{-8}\) the long arm ends in resistance 1000 times out of 1000, and at \(10^{-10}\) it cures 78.80%. A factor of a hundred in a parameter nobody can measure precisely for a given patient moves the answer across its whole range.

What the model does not contain

One compartment, so no tissue penetration and no site where the drug arrives weak. No immune system beyond the crude constant term of §10. One resistance mutation with one fixed cost, so none of the stepwise ratcheting through intermediate MIC levels that real fluoroquinolone resistance shows [1][7], and no compensatory mutations eroding the cost over time [9]. No back mutation and no horizontal transfer, by plasmid or otherwise. A well-mixed population, so no biofilm and no spatial refuge. No persisters and no tolerance. Identical pharmacokinetics in every replicate, where real between-patient variation in clearance is large. Adherence that is independent per dose, where real non-adherence comes in runs. And one patient at a time, with nothing at all about transmission of resistant strains between people, which is the part of this problem that actually matters for public health [10].

Any one of those could reverse a result here. The one we would look at first is the immune term, for the reason given in §10, and the second is the bursty structure of real non-adherence, because §9 says that the shape of the gaps is what does the damage and we modelled the gaps in the least realistic way available.

Reproducing this

Everything in this article comes from one file and one command. Python 3.12 and numpy are the only requirements.

python resistance-evolution.py > resistance-evolution-output.txt

Expect six to nine minutes. Ours took 498.0 seconds on a laptop under Python 3.12.3 and numpy 2.4.2, and produced 178,002 simulated treatment courses. The master seed is 20250915, hard-coded at the top of the file, and every cell draws an independent stream from it through numpy's SeedSequence.spawn, so the output is deterministic and you should get our numbers to the last digit. If you do not, we would like to know. The interactive model runs a smaller version of the same simulation in your browser and reproduces the headline numbers on its default settings.

A last word, since the subject invites misreading. This article is about a program we wrote. It compared schedules inside that program and found that peak height and the shape of the gaps decided the outcome while total drug and course length mostly did not. Whether any of that is true of a person with an infection is a question for clinical trials, some of which have been asking it [17][18], and for the doctor treating that person. Do not change how you take a medicine because of a simulation written by a school club.

References

  1. Lipsitch, M. & Levin, B. R. (1997). The population dynamics of antimicrobial chemotherapy. Antimicrobial Agents and Chemotherapy 41, 363–373. doi:10.1128/AAC.41.2.363
  2. Levin, B. R. & Udekwu, K. I. (2010). Population dynamics of antibiotic treatment: a mathematical model and hypotheses for time-kill and continuous-culture experiments. Antimicrobial Agents and Chemotherapy 54, 3414–3426. doi:10.1128/AAC.00381-10
  3. Regoes, R. R., Wiuff, C., Zappala, R. M., Garner, K. N., Baquero, F. & Levin, B. R. (2004). Pharmacodynamic functions: a multiparameter approach to the design of antibiotic treatment regimens. Antimicrobial Agents and Chemotherapy 48, 3670–3676. doi:10.1128/AAC.48.10.3670-3676.2004
  4. Craig, W. A. (1998). Pharmacokinetic/pharmacodynamic parameters: rationale for antibacterial dosing of mice and men. Clinical Infectious Diseases 26, 1–10. doi:10.1086/516284
  5. Zhao, X. & Drlica, K. (2001). Restricting the selection of antibiotic-resistant mutants: a general strategy derived from fluoroquinolone studies. Clinical Infectious Diseases 33 (Suppl. 3), S147–S156. doi:10.1086/321841
  6. Drlica, K. & Zhao, X. (2007). Mutant selection window hypothesis updated. Clinical Infectious Diseases 44, 681–688. doi:10.1086/511642
  7. Firsov, A. A., Vostrov, S. N., Lubenko, I. Y., Drlica, K., Portnoy, Y. A. & Zinner, S. H. (2003). In vitro pharmacodynamic evaluation of the mutant selection window hypothesis using four fluoroquinolones against Staphylococcus aureus. Antimicrobial Agents and Chemotherapy 47, 1604–1613. doi:10.1128/AAC.47.5.1604-1613.2003
  8. Gullberg, E., Cao, S., Berg, O. G., Ilbäck, C., Sandegren, L., Hughes, D. & Andersson, D. I. (2011). Selection of resistant bacteria at very low antibiotic concentrations. PLoS Pathogens 7, e1002158. doi:10.1371/journal.ppat.1002158
  9. Andersson, D. I. & Hughes, D. (2010). Antibiotic resistance and its cost: is it possible to reverse resistance? Nature Reviews Microbiology 8, 260–271. doi:10.1038/nrmicro2319
  10. Abel zur Wiesch, P., Kouyos, R., Engelstädter, J., Regoes, R. R. & Bonhoeffer, S. (2011). Population biological principles of drug-resistance evolution in infectious diseases. The Lancet Infectious Diseases 11, 236–247. doi:10.1016/S1473-3099(10)70264-4
  11. Read, A. F., Day, T. & Huijben, S. (2011). The evolution of drug resistance and the curious orthodoxy of aggressive chemotherapy. Proceedings of the National Academy of Sciences 108 (Suppl. 2), 10871–10877. doi:10.1073/pnas.1100299108
  12. Kouyos, R. D., Metcalf, C. J. E., Birger, R., Klein, E. Y., Abel zur Wiesch, P. et al. (2014). The path of least resistance: aggressive or moderate treatment? Proceedings of the Royal Society B 281, 20140566. doi:10.1098/rspb.2014.0566
  13. Day, T. & Read, A. F. (2016). Does high-dose antimicrobial chemotherapy prevent the evolution of resistance? PLoS Computational Biology 12, e1004689. doi:10.1371/journal.pcbi.1004689
  14. Ankomah, P. & Levin, B. R. (2014). Exploring the collaboration between antibiotics and the immune response in the treatment of acute, self-limiting infections. Proceedings of the National Academy of Sciences 111, 8331–8338. doi:10.1073/pnas.1400352111
  15. Alexander, H. K. & MacLean, R. C. (2020). Stochastic bacterial population dynamics restrict the establishment of antibiotic resistance from single cells. Proceedings of the National Academy of Sciences 117, 19455–19464. doi:10.1073/pnas.1919672117
  16. Gillespie, D. T. (2001). Approximate accelerated stochastic simulation of chemically reacting systems. The Journal of Chemical Physics 115, 1716–1733. doi:10.1063/1.1378322
  17. Llewelyn, M. J., Fitzpatrick, J. M., Darwin, E. et al. (2017). The antibiotic course has had its day. BMJ 358, j3418. doi:10.1136/bmj.j3418
  18. Sawyer, R. G., Claridge, J. A., Nathens, A. B., Rotstein, O. D., Duane, T. M. et al. (2015). Trial of short-course antimicrobial therapy for intraabdominal infection. New England Journal of Medicine 372, 1996–2005. doi:10.1056/NEJMoa1411162