Validation

Numerical benchmarking against established pharmacometrics libraries.

Chorus does two jobs, and they can be wrong independently, so each is checked against its own reference library: drawing the concentration curve from a set of PK parameters, and working backwards from measured levels to one patient’s clearance and volume.

This evaluation examines numerical precision, not clinical validity.

Comparator Version Function Validation role
rxode2 3.0.4 Steps through the compartment equations numerically. The solver behind nlmixr2 and much of R-based population PK work.
mapbayr 0.10.0
mrgsolve 1.5.2
Computes MAP Bayesian individual parameter estimates (η). Developed specifically for clinical TDM and cross-validated against NONMEM; executes on mrgsolve.

Concentration–time simulation

The two reach the same curve by different routes: Chorus evaluates an exact formula at each time point, rxode2 steps through the equations numerically. An error in one would have no reason to show up in the other, which is what makes agreement worth anything.

Both were given the same model — Goti et al. (2018), two-compartment — and the same case: a 62-year-old man, 82 kg, on 1250 mg IV every 12 hours.

0 10 20 30 Chorus rxode2 Measured level Concentration (mg/L) 0 8 16 24 32 40 Time (hours)

The curves are indistinguishable, and the numbers agree to eleven decimal places:

Landmark Time Chorus (mg/L) rxode2 (mg/L)
End of first infusion 1 h 16.35875470 16.35875470
Trough 1 12 h 7.65056688 7.65056688
Trough 2 24 h 13.03705502 13.03705502
Concentration at level 2 36 h 16.98362013 16.98362013

The maximum absolute discrepancy across the entire 48-hour profile is 0.00000000003 mg/L — the limit of what a computer can represent, rather than a disagreement about the kinetics.

Across 330 scenarios

The two were then compared point by point across 330 simulated cases — one-, two- and three-compartment models, over ordinary and deliberately extreme clearance and volume. 255 of them run 48 hours:

What changes during the course Scenarios Worst absolute Δ (mg/L) Median absolute Δ (mg/L)
Nothing — fixed CL and V 136 0.00000003 0.00000000008
Clearance, with a moving creatinine 60 0.0086 0.000055
CL, V and Q together 59 0.0054 0.00017

Against peak concentrations of 30–60 mg/L.

With the parameters held fixed, the two agree as closely as a computer can represent a number at all. Once renal function moves they part company very slightly, because Chorus holds the changing value steady across each grid interval while rxode2 varies it continuously.

The remaining 75 run longer. Across 69 week-long courses with the parameters drifting throughout, the largest gap was 0.0094 mg/L, and it stopped growing rather than building up as the course went on; 6 more run out to 21 days.

Agreement on trough and AUC

Metric Max relative discrepancy Median relative discrepancy
Trough concentration 0.012% <0.001%
Course AUC24 0.0001% 0.00001%

Across 7-day courses at the default grid resolution. For an AUC24 of 500 mg·h/L, the maximum deviation was ~0.0005 mg·h/L.

Bayesian parameter estimation

The second check is the MAP estimation, against mapbayr — a separate implementation on a separate solver.

Both were given the same Goti (2018) model and the same two levels — 8.0 mg/L at the 12-hour trough, 17.5 mg/L at 36 hours — and asked what they implied about the patient. η is how far a parameter has moved from the population value it started at.

0 10 20 30 Chorus mapbayr Measured level Concentration (mg/L) 0 0.0001 0.0002 Difference (mg/L) 0 8 16 24 32 40 Time (hours)
Landmark Time Chorus (mg/L) mapbayr (mg/L) Absolute difference (mg/L)
End of first infusion 1 h 16.358755 16.358845 0.000090
Trough 1 12 h 7.650567 7.650601 0.000034
Trough 2 24 h 13.037055 13.037107 0.000052
Level 2 draw 36 h 16.983620 16.983678 0.000058

The maximum discrepancy between the fitted posterior curves across the full course is 0.00014 mg/L.

Individual parameter estimates (η)

Parameter Chorus η mapbayr η Absolute difference
Clearance (CL) 0.029336 0.029335 0.0000007
Central volume (V1) 0.047157 0.047151 0.0000059
Peripheral volume (V2) 0.026110 0.026101 0.0000085

Library-wide consistency (all 46 models)

The same case was then run through all 46 models, in both programs:

Evaluation Worst Δη Median Δη
46 models, all random effects 0.0016 0.0000048

Simulation settings

Models

selected

Dose candidates (mg)

Interval candidates (h)

Demographics

Physical characteristics.

kg
cm
yr

Copy scenario

rows · dates included

Subject

If this is a real patient, this table is PHI.