Skip to content

Validation Matrix

OpenPKFlow uses executable reference tests to keep scientific claims tied to checked outputs. This page summarizes the external comparators and the local test files that support the current validation surface.

Last updated: 2026-07-25

See also Positioning and the full test-to-reference map in VALIDATION.md at the repository root.

External reference checks

Area Comparator Coverage Test file
NCA, oral theophylline Phoenix WinNonlin public output Cmax, Tmax, AUClast, lambda_z, half-life, AUCinf, CL/F, Vz/F across linear and log trapezoid settings tests/validation/test_nca_winnonlin_reference.py
NCA, IV bolus indomethacin Phoenix WinNonlin public output AUClast, AUCinf, CL, Vz, and C0 back-extrapolation behavior tests/validation/test_nca_winnonlin_reference.py
NCA, oral theophylline PKNCA 0.12.1 Standard NCA parameter agreement on the bundled theophylline dataset tests/validation/test_nca_theoph_reference.py
Steady-state NCA PKNCA 0.12.1 Ctau, Cav, Cmax, Cmin, fluctuation, swing, and accumulation-style steady-state parameters tests/validation/test_nca_ss_reference.py
NCA NonCompart 0.8.0 Cross-checks against an independent R NCA implementation tests/validation/test_nca_noncompart_reference.py
Sparse oral model fit R 4.6.0 stats::nls bounded-port fit on nlme::Theoph CL_F, Vz_F, ka, and fitted concentrations for five samples from subject 1 tests/validation/test_sparse_nca_theoph_reference.py
Bioequivalence power PowerTOST 1.5-7 2x2 crossover power and sample size; edge cases (GMR at 0.80/1.25 ~ alpha; monotone power in n) tests/validation/test_be_power_reference.py
Formal complete balanced 2x2 BE ANOVA Independent R aov / lm script Treatment contrast, GMR, and residual MSE on a pinned complete balanced TR/RT fixture tests/validation/test_be_anova_reference.py
FDA partial-replicate RSABE Patterson and Jones (2012), Table II, DOI 10.1002/pst.498 Delta-hat, sigma-wR, GMR, confidence bounds, aggregate criterion, and AUC/Cmax decisions for 51 subjects tests/validation/test_be_rsabe_reference.py
Replicate BE screening R/SAS-compatible scalar fixtures GMR, CVwR, EMA-style scaled limits, and RSABE point-criterion screening; not full RSABE upper-bound parity tests/validation/test_be_replicate_reference.py
Dissolution bootstrap f2 bootf2 0.4.1 Bootstrap f2 behavior and confidence interval agreement tests/validation/test_dissolution_bootf2_reference.py
Population PK FOCE-I nlme Theophylline reference values from Pinheiro and Bates Typical-value sanity check for one-compartment oral pop PK estimation tests/validation/test_pop_foce_reference.py

Analytical and internal checks

Area Validation basis Test file
Dissolution model fitting Known model equations and parameter recovery tests/validation/test_dissolution_models_reference.py
Advanced Dissolution Workbench Delegation to validated FDA/Costa/Shah methods; fixed-seed repeatability, fail-closed vessel/time checks, reports, and SHA-256 artifact verification tests/dissolution/test_workbench.py, api/tests/test_dissolution.py, webapp/tests/paste-run.spec.ts
IVIVC Level A (WN / LR) Wagner-Nelson and Loo-Riegelman analytical / R formula references tests/validation/test_ivivc_wn_lr_reference.py
IVIVC convolution + Levy Closed-form zero-order input x 1-cmt UIR; independent fine-grid Riemann convolution; Levy perfect correlation tests/validation/test_ivivc_convolution_reference.py
NCA urinary excretion Reference urinary PK calculations tests/validation/test_nca_urine_reference.py
NCA utility math Bias, RMSE, and percent-tolerance helper behavior tests/validation/test_nca_validation.py
PK simulation Closed-form one- and two-compartment equations tests/validation/test_sim_validation.py

Current limits

These tests are designed to catch calculation drift and document agreement with public comparators. They do not make OpenPKFlow a validated regulated system by themselves. Regulated use still requires local SOPs, version control, locked environments, independent review, and study-specific validation.

FDA partial-replicate RSABE validation covers the balanced TRR/RTR/RRT design in the published comparator. Unbalanced sequence allocation and incomplete subjects fail closed. NOT_EVALUABLE is reserved for CVwR below the 30% highly-variable threshold, where standard average BE applies.

Running validation

Default test runs exclude computationally heavy validation checks marked slow. Run slow validation explicitly before changing population PK estimation internals:

python -m pytest -m slow tests/validation -q