Reference checks
This page lists the reference checks published for Drybench Assay. Each set gives the methods it covers, what the expected values were computed with, the number of cases, the tolerance the app must meet, the date, and the file holding the inputs and expected outputs, so you can open a case and compare it with what the app gives.
Every case was chosen and recorded by the Drybench team; none has been independently reviewed. A reference check tests the calculation, not your data, your experiment or whether a model suits it. Methods without a set are listed on the methods page with their level.
| Methods | Oracle | Fixtures | Tolerance | Date | File |
|---|---|---|---|---|---|
| four-pl, levenberg-marquardt-bounded, weighting-1-over-y2 | R | 32 | log10 C50 within 0.00043; Hill within 0.1 percent; Top and Bottom within 0.1 percent of the span; the objective within 1e-6 relative | 2026-10-06 | drc-reference.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| four-pl | drc | 30 | the same minima by LL.4 (e = C50, b = −Hill, c = Bottom, d = Top), recorded as a cross-check | 2026-10-06 | drc-reference.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| wald-log-ic50, profile-likelihood-log-ic50 | R | 30 | Wald bounds within 0.0022 and profile bounds within 0.0043 log10 units; resolved unweighted bounds only; unresolved refits and historical weighted results are qualified | 2026-10-06 | drc-reference.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| ic50-rules, absolute-ic50 | R | 36 | archived version-1 reporting outcomes; compatible dose counts and crossing algebra only; version-2 permutation policy tested separately | 2026-10-06 | drc-reference.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| z-prime | R | 5 | within 1e-9; the refusal below two wells exact | 2026-10-06 | zprime-controls.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| extra-sum-of-squares-f | R | 6 | residual sums of squares within 1e-6 relative; F within 1e-5 and p within 1e-4 relative | 2026-10-06 | drc-reference.jsonRecorded for version 0.1.0; the test suite checks the current engine against it. |
| standard-curve-interpolation | Python fractions | 7 | 1e-9 relative; range flags and refusals exact | 2026-10-10 | calibration-linear-exact.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| standard-curve-interpolation | SciPy | 2 | parameters and fitted responses within 2e-5 (log10 midpoint absolute); concentrations within 5e-5 relative; range flags exact | 2026-10-10 | calibration-4pl-scipy.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| calibration-inverse-prediction | Python fractions | 15 | linear bounds within 1e-9 relative (exact rational arithmetic); 4PL and 5PL bounds within 1e-6 relative and concentrations within 5e-5 relative (SciPy curve_fit, central finite differences); statuses and withheld reasons exact; coverage simulated, 2,000 replicates in each of 8 replicated designs (linear and 4PL; 5PL not simulated), 94.4 to 95.5 percent against gates of 0.93 and 0.90; against R 4.4.3 investr 1.4.2 (invest, over the individual standard readings) on the 11 intervals for unknowns read once: bounds and the pooled variance within 1e-9 relative (linear) and 1e-6 relative (4PL, 5PL), degrees of freedom exact | 2026-10-14 | calibration-inverse-v2.jsonRecorded for version 0.13.0; the test suite checks the current engine against it. |
| five-pl-calibration | SciPy | 5 | parameters (ln s included) and fitted responses within 2e-5 absolute; concentrations within 5e-5 relative (floor 1e-6); RSS 1e-6 (not compared at a zero residual), F 1e-5, p 1e-4 relative; AICc 1e-6 absolute; statuses exact; R drc LL.5 agrees on the 3 fitted curves | 2026-10-12 | calibration-5pl-scipy.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| replicate-summaries | Python fractions | 2 | means and SDs 1e-9 relative; n and wells exact | 2026-10-10 | replicate-summaries.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| z-prime | R | 6 | within 1e-9; refusals exact | 2026-10-10 | zprime-degenerate.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| growth-window-rate | SciPy | 9 | μ and the doubling time within 1e-9 relative (exact cases by Python fractions); residuals within 1e-9; withheld states, rows and n exact | 2026-10-10 | growth-window.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| michaelis-menten-initial-rate | SciPy | 8 | Km and Vmax within 1e-5 relative; the residual sum of squares within 1e-6 relative; correlation within 1e-4; kcat within 1e-5 relative; states, flags and refusals exact | 2026-10-10 | michaelis-menten.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| inhibition-global-fit | SciPy | 18 | Vmax, Km, Ki and Ki′ within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; correlations within 1e-4; refusals, the named level and the constant at the box exact; against R 4.4.3 nls on the 11 fits without bound contact: constants within 1e-5, the residual sum of squares within 1e-6 relative | 2026-10-12 | inhibition-global-v2.jsonRecorded for version 0.5.0; the test suite checks the current engine against it. |
| inhibition-model-comparison | SciPy | 8 | the ranking, the states outside it and refusals exact; constants within 1e-5 relative; the residual sum of squares within 1e-6 relative; AICc and ΔAICc within 1e-6; F within 1e-5 relative; p within 1e-4 relative; against R 4.4.3 nls, AIC and anova on the 6 compared cases: constants within 1e-5, ΔAICc within 1e-6, the nested F within 1e-5 relative | 2026-10-12 | inhibition-compare.json |
| substrate-inhibition-haldane | SciPy | 9 | Vmax, Km, Ksi and the optimum within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; the Km–Ksi correlation within 1e-4; withheld states, the count beyond the optimum and refusals exact; against R 4.4.3 nls on the 4 estimates: constants within 1e-5, the residual sum of squares within 1e-6 relative | 2026-10-13 | substrate-inhibition.json |
| inhibition-profile-interval | SciPy | 7 | resolved bounds within 1e-3 ln units of the direct profile; the threshold within 1e-8 relative; side states, reasons and the poorly-determined flag exact; coverage simulated, 1,000 replicates per design; against a direct profile computed in R 4.4.3 from its own nls fit on the 5 cases with an interval (inhibition-profile-r.json, 0.19.0): resolved bounds within 1e-3 ln units (largest gap 2e-11), the threshold within 1e-8 relative, the box side a box | 2026-10-13 | inhibition-profile.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| thermal-shift-tm-intervals | SciPy | 11 | replicate means and SDs within 1e-3 °C, n and the wells not counted exact; the residuals' lag-1 r1 within 1e-6; the withheld single-well profile within 1e-3 °C of the direct profile; coverage simulated under independent, correlated and misfitting melts, 1,000 per design; against a direct profile computed in R 4.4.3 from its own nls fit on the 5 melts with an interval, and R's mean and sd over its own fits of the 4 replicate groups (thermal-tm-intervals-r.json, 0.19.0): Tm, bounds, means and SDs within 1e-3 °C (largest gap 5e-11), thresholds within 1e-8 relative; the coverage simulation SciPy only | 2026-10-13 | thermal-tm-intervals.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| ki-cheng-prusoff-bounds | Python fractions | 10 | Ki and both bounds within 1e-12 relative; the four-figure display exact; refusals exact | 2026-10-13 | ki-bounds.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| thermal-shift-apparent-tm | SciPy | 13 | sigmoid Tm within 1e-3 °C; ln k within 1e-4; plateaus within 1e-4 of the span; the derivative extremum's temperature exact; refusals and the disagreement flag exact; against R 4.4.3 nls(SSfpl) on the 7 fitted melts: Tm within 1e-3 °C, ln k within 1e-4, plateaus within 1e-4 of the span | 2026-10-12 | thermal-shift-v2.jsonRecorded for version 0.5.0; the test suite checks the current engine against it. |
| michaelis-menten-profile-interval | SciPy | 9 | resolved bounds within 1e-3 ln units of the direct profile; the threshold within 1e-8 relative; side states, reasons and the poorly-determined flag exact; coverage simulated, 2,000 replicates per design; against a direct profile computed in R 4.4.3 from its own nls fit on the 7 cases with an interval: resolved bounds within 1e-3 ln units, the threshold within 1e-8 relative | 2026-10-12 | michaelis-menten-profile-v2.jsonRecorded for version 0.5.0; the test suite checks the current engine against it. |
| qpcr-fold-change-welch-interval | SciPy | 10 | normalised log2 quantities, differences, standard errors and bounds within 1e-9; degrees of freedom and t within 1e-9 relative; n, statuses and withheld reasons exact; against R 4.4.3 t.test (Welch) and SciPy ttest_ind on the 8 intervals at 1e-9 | 2026-10-12 | qpcr-welch.jsonRecorded for version 0.7.0; the test suite checks the current engine against it. |
| growth-gompertz-fit | SciPy | 9 | A and μm within 1e-5 relative, λ within 1e-5 of the time span; the residual sum of squares within 1e-6 relative; the noise-free generating parameters within 1e-8; statuses and withheld reasons exact; against R 4.4.3 nls (port) on the 6 interior fits at 1e-4 | 2026-10-12 | growth-gompertz.jsonRecorded for version 0.7.0; the test suite checks the current engine against it. |
| progress-curve-initial-rates | Python fractions | 12 | slopes, intercepts, rates and percent conversion within 1e-9 relative (exact straight lines by Python fractions; the noisy plate by SciPy linregress); residuals within 1e-9; withheld wells, reads used and the 10 percent flag exact; Km and Vmax on the plate's window rates within 1e-6 of SciPy curve_fit; against R 4.4.3 lm on the 25 estimated wells: slope and intercept within 1e-9 relative | 2026-10-12 | progress-curve-rates.jsonRecorded for version 0.7.0; the test suite checks the current engine against it. |
| ki-cheng-prusoff-competitive | Python fractions | 11 | Ki within 1e-12 relative; the four-significant-figure display exact; refusals exact, with no number | 2026-10-10 | ki-cheng-prusoff.jsonRecorded for version 0.2.0; the test suite checks the current engine against it. |
| curve-comparison | SciPy | 12 | residual sums of squares within 1e-6 relative; F within 1e-5 and p within 1e-4 relative; the C50 difference and its Wald bounds within 1e-6 log10; profile bounds within 1e-3 log10; refusals and withholdings exact; coverage simulated, 2,000 replicates per design; against R 4.4.3 drc 4.0-0 (drm with curveid and pmodels, anova, compParm) on the 11 compared cases: residual sums of squares and F within about 1e-15, p within 3e-7 relative where it exceeds 1e-12 (below that drc's anova reports 1 − pf at its precision limit, and both are recorded as below 1e-12), the C50 difference within 4e-8 relative, and the Wald SE within 0.7 percent (drc's Hessian against the engine's JᵀJ, compared at 1e-2): agrees | 2026-10-13 | curve-compare-v2.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| experiment-summary-log-c50 | Python fractions | 11 | mean, SD and bounds within 1e-9 log10; the t quantile within 1e-8 relative; k, n, levels, withheld lists, refusals and the carried flag exact; against R 4.4.3 t.test on the 6 cases with an interval, within 1e-9 log10 | 2026-10-12 | experiment-summary.jsonRecorded for version 0.10.0; the test suite checks the current engine against it. |
| grubbs-two-sided, studentised-residuals-one-way | R | 21 | G, t and critical G within 1e-9 relative; p within 1e-8 relative; rows, candidate flags and withheld states exact; the outliers package's folded two-sided p recorded, not used, where twice the bound exceeds 1 | 2026-10-13 | column-outliers.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| outlier-candidates | SciPy | 13 | leverages, residuals, internal and external t, p, adjusted p, G and critical values within 1e-6 relative; candidates, indices and withheld states exact; R 4.4.3 rstudent, hatvalues, car outlierTest and outliers grubbs.test agree on 2 linear fits and 3 control groups; R not run on the 4PL fits | 2026-10-13 | outlier-candidates.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| power-sample-size | R | 26 | power within 1e-8 (t, proportions) and 1e-7 (ANOVA); computed n within 1e-6 relative; the smallest integer n, flags and withheld states exact; SciPy agrees on 19 of 19 | 2026-10-13 | power-sample-size.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| column-descriptives, column-t-tests, column-rank-tests, median-order-statistic-interval, shapiro-wilk-royston, column-effect-sizes | R | 50 | descriptives, quantiles, intervals and estimates within 1e-9 relative; t, df and t-test p within 1e-8 relative; exact rank p and achieved coverage within 1e-10; approximate rank p within 1e-8 relative; Shapiro–Wilk W within 1e-7 and its p within 1e-5 relative; counts and withheld states exact; SciPy agrees on 179 of 179 | 2026-10-13 | column-statistics.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| one-way-anova, post-hoc-comparisons, rank-groups, repeated-measures, two-way-anova | R | 22 | sums of squares, F, η², ω², means, differences and SEs within 1e-9 relative; F, t and chi-squared p within 1e-8; Tukey–Kramer and Games–Howell p within 1e-7; Dunnett p within 1e-6; Greenhouse–Geisser and Huynh–Feldt ε within 1e-9; the mixed model's F and p within 1e-6 relative, its variances and means within 1e-5; codes, df and m exact | 2026-10-13 | groups.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| p-value-adjustment | R | 10 | adjusted p within 1e-12 relative; counts, m and withheld states exact | 2026-10-13 | fdr.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| correlation-pearson-spearman, linear-regression-qr, nonlinear-families, relationship-model-comparison, deming-regression, bland-altman | R | 115 | r, ρ, S and t within 1e-10 relative, t-based p within 1e-8 relative, correlation bounds within 1e-9; regression within 1e-9 relative, p within 1e-8 relative; curves: noisy residual sums of squares within 1e-8 relative, parameters within 1e-6, profile bounds within 1e-3, polynomials within 1e-9 relative; model comparison ΔAICc within 1e-8 (linear) and 1e-4 (nonlinear); Deming within 1e-10, the jackknife and Bland–Altman within 1e-9; codes, counts and order exact; SciPy agrees on 105 of 105 | 2026-10-13 | relationships.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| nonlinear-families | SciPy | 5 | simulated coverage of the 95 percent profile intervals at least 0.90 for every quantity, 2,000 seeded replicates per family; growth, one-phase, two-phase, power and Boltzmann cleared, the lowest 0.945 | 2026-10-13 | nonlinear-coverage.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| kaplan-meier, median-survival, survival-tests, log-rank-hazard-ratio | R | 34 | S(t), its standard error, the band, the median and its bounds within 1e-10 relative; χ² and expected counts within 1e-9 relative, p within 1e-8 relative; the hazard ratio and its bounds within 1e-9 relative; times, numbers at risk, events, censorings, observed counts and withheld states exact; identities inside R agree on 88 of 88 | 2026-10-13 | survival.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| contingency-tests, two-by-two-measures, mcnemar, cochran-armitage | R | 42 | odds ratio, relative risk, risk difference, proportions, their bounds and expected counts within 1e-9 relative; X², chi-squared, Fisher 2 × 2, binomial and trend p and the Clopper–Pearson bounds within 1e-8 relative; Fisher r × c p within 1e-6 relative; the conditional odds ratio and its interval within 1e-8 relative of the uniroot(tol = 1e-12) transcription; refused cells and withheld states exact; checks inside R agree on 37 of 37 | 2026-10-13 | counts.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| four-pl, levenberg-marquardt-bounded, profile-likelihood-log-ic50 | R | 1 | the estimates' tolerances: log10 C50 within 0.00043, Hill within 0.1 percent, Top and Bottom within 0.1 percent of the span, Wald 0.0022 and profile 0.0043 log10 units, the objective within 1e-6 relative; the reporting gate's decision exact | 2026-10-10 | plate-walk-refit.jsonRecorded for version 0.3.0; the test suite checks the current engine against it. |
| gaddum-schild-global, gaddum-noncompetitive, operational-model-furchgott | SciPy | 8 | pA2, s, pKB, log EC50₀, log KA and log τ within 1e-4 log units; shared levels within 1e-4 of the response span; profile bounds within 1e-3; F within 1e-5 and p within 1e-4 relative; KB within 1e-4 relative; states exact; R nls and drc agree on 6 of 7 fitted cases, and where drc's own fit differs SciPy holds the lower residual sum of squares, as it does on every fit (SCI-121) | 2026-10-13 | agonist-antagonist-v2.jsonRecorded for version 0.13.0; the test suite checks the current engine against it. |
| relative-potency | SciPy | 9 | residual sums of squares within 1e-6 relative; F within 1e-5 and p within 1e-4 relative; ρ, the Hill ratio and the plateau differences within 1e-5 relative; profile bounds on log ρ within 1e-3 log10; states and margin classes exact; R drc LL2.4 agrees | 2026-10-13 | relative-potency.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| reporter-ratio | Python fractions | 16 | ratios, folds, means, SDs, medians and percents within 1e-12 relative; states, reasons, flags and well lists exact; R median agrees | 2026-10-13 | reporter-ratio.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| percent-of-vehicle-background | Python fractions | 11 | percents, the blank share and means within 1e-12 relative; reasons and counts exact; R mean agrees | 2026-10-13 | viability-normalisation.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| plate-diagnostics | Python fractions | 17 | Z′, signal window, SSMD, Z, means, Welch t and df and F within 1e-9 relative; p within 1e-8; counts, states and reasons exact; R t.test and drop1(lm) agree | 2026-10-13 | plate-diagnostics.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| influence-leave-one-out | SciPy | 8 | every leave-one-out shift within 0.00086 log10; outcomes and the largest well exact; R drc LL.4 refits agree | 2026-10-13 | influence-loo.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| design-narrowing | SciPy | 5 | candidate variances and the current Wald half-width within 1e-6 relative (NumPy, analytic gradient, at SciPy's fit); the chosen candidate, replicates and narrowing exact; base R agrees | 2026-10-13 | design-narrowing.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| two-phase-dose-response | SciPy | 8 | the engine's residual sum of squares at most the oracle's × (1 + 1e-6); midpoints and Hill slopes within 1e-4, levels within 1e-4 of the span; F and AICc within 1e-6 and p within 1e-4 relative; states exact; R drc agrees | 2026-10-13 | two-phase-dose-response.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| negative-result | Python fractions | 16 | exact cases equal as fractions; sampled cases equal to the ported stream and within 4·√(p(1 − p)/2000) + 1/2000 of exact enumeration; means within 1e-12 relative; R not run | 2026-10-13 | negative-result.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| molar-from-mass | Python decimal | 20 | formula weights within 1e-4 g/mol; protein masses within 0.02 Da (ProtParam) and 0.01 Da (CIAAW 2021); molar values, active enzyme and kcat within 1e-9 relative; refusals exact | 2026-10-13 | units-molecule.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| ligand-efficiency | Python decimal | 13 | heavy atoms exact; LE and LLE within 1e-6 and as shown; reasons exact; Crippen cLogP from Python RDKit within 1e-3, a drift check, not independent | 2026-10-13 | ligand-efficiency.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| assay-drift | Python fractions | 11 | centre, moving range and limits within 1e-9 relative; Pettitt K, location and flag exact, p within 1e-6 relative; statuses exact; R qcc and trend agree (drift-r.json) | 2026-10-13 | assay-drift.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| calibration-blank-limits | Python fractions | 14 | the blank mean and SD within 1e-12 relative; limits on lines, original concentrations, percents, CV and the trend's bounds within 1e-9 relative; limits on the 4PL within 1e-6 relative; states, reasons and notes exact; R mean, sd and confint(lm) agree | 2026-10-13 | calibration-limits.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| qpcr-dilution-efficiency, qpcr-genorm-m | Python fractions | 17 | slope, intercept, R², the slope's bounds, E and efficiency within 1e-9 relative on 12 series; geNorm V and M within 1e-9 relative on 5 tables; states, counts, dropped levels and the ranking exact; R lm, confint and sd agree | 2026-10-13 | qpcr-efficiency.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| hill-initial-rate | SciPy | 11 | Vmax, S0.5 and h within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; the interval on h within 1e-3 in ln h; states exact; R nls agrees | 2026-10-13 | hill-kinetics.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| bisubstrate-initial-rate | SciPy | 11 | Vmax, KmA, KmB and KiA within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; ΔAICc within 1e-6, F within 1e-5 and p within 1e-4 relative; states exact; R nls agrees | 2026-10-13 | bisubstrate.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| morrison-tight-binding | SciPy | 15 | v0, Ki_app and the fitted [E] within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; Ki by mechanism within 1e-12 relative; states exact; R nls agrees | 2026-10-13 | morrison.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| slow-binding-one-step, slow-binding-two-step | SciPy | 13 | the line's kon_app, koff, standard errors and bounds within 1e-9 relative (exact rational least squares); k5, Ki_app and k6 within 1e-5 relative (hand values 1e-9); states exact; R lm, confint and nls agree | 2026-10-13 | slow-binding.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| binding-equilibrium, binding-ki-cheng-prusoff-munson-rodbard | SciPy | 24 | constants within 1e-5 relative (hand values 1e-9); the residual sum of squares within 1e-6 relative; interval bounds within 1e-3 in ln; ΔAICc within 1e-6, F within 1e-5 and p within 1e-4 relative; Ki within 1e-9 relative; states exact; R nls and drc agree | 2026-10-13 | binding.jsonRecorded for version 0.11.0; the test suite checks the current engine against it. |
| layout-suggestion | Python fractions | 16 | trigger decisions, m, rules and refusals exact (p against 0.05/m in binary64); counts and layout properties exact | 2026-10-13 | layout-suggestion.jsonRecorded for version 0.12.0; the test suite checks the current engine against it. |
| combination-normalise, combination-technical-mean, combination-hsa, combination-bliss | Python fractions | 39 | expected fractions, excess percentage points and observable vehicle, cell and margin means within 1e-9 absolute; cell statuses, withheld reasons, top-level refusals, retained/excluded counts and contributing observation IDs exact. The planned cross-check against synergy 1.0.0 was not run (each fixture's crossCheck block records why). | 2026-10-18 | combination-analysis-v3.jsonRecorded for version 0.15.0; the test suite checks the current engine against it. |
| z-prime, percent-of-controls, percent-of-vehicle-background, screening-percent-inhibition, screening-robust-z, plate-diagnostics, growth-window-rate, growth-gompertz-fit, gr-metrics, qpcr-fold-change-welch-interval, two-way-anova, repeated-measures, survival-tests, log-rank-hazard-ratio, slow-binding-one-step, slow-binding-two-step, thermal-shift-tm-intervals | Python fractions | 60 | statuses, codes, reasons, rows and wells exact, every refusal decided in exact decimal arithmetic; Z′, SDs, percents, the signal window and SSMD within 1e-9 relative (an exact 0 within 1e-12); robust z within 1e-12 relative; growth μ within 1e-9 relative; GR arithmetic within 1e-9; qPCR bounds within 1e-9 log2; two-way sums of squares and F within 1e-9 relative, p within 1e-8 relative; survival χ² and the hazard ratio within 1e-9 relative; no NaN or infinite number under a value status; the survival and two-way cases by exact fractions and NumPy where the memo names R | 2026-10-20 | degenerate-v1.jsonRecorded for version 0.16.0; the test suite checks the current engine against it. |
| survival-tests, slow-binding-one-step, slow-binding-two-step | Python fractions | 29 | statuses, codes, counts and refusal precedence exact; survival chi-squared and rational linear controls within 1e-9 relative, p within 1e-8 relative, exact hyperbola parameters within 1e-5 relative; no R or SciPy cross-check | 2026-10-25 | survival-slow-degeneracy-v1.jsonRecorded for version 0.17.0; the test suite checks the current engine against it. |
| plate-diagnostics | Python standard library | 26 | edge admission, counts and reasons exact; means, Welch t and df within 1e-9 relative (exact zero within 1e-12 absolute), p within 1e-8 absolute; exact fractions and bounded Student-t sine quadrature with 34 analytical and identity checks, no R or SciPy cross-check or extreme-tail relative-accuracy claim | 2026-10-25 | plate-edge-spread-v1.jsonRecorded for version 0.18.0; the test suite checks the current engine against it. |
| screening-percent-inhibition, screening-robust-z, screening-observations | SciPy | 30 | values, Welch, F and the drift chart within 1e-9 relative; robust z within 1e-12; p within 1e-8; calls, ranking and lines exact; R median, mad, t.test, drop1, qcc and trend agree | 2026-11-07 | screening-v2.jsonRecorded for version 0.19.0; the test suite checks the current engine against it. |
| gr-metrics | R | 57 | GRmetrics 1.32.0 on identical inputs: GR and GR_AOC within 1e-9; fits within 1e-4 or the lower RSS; GRmax by both definitions | 2026-11-07 | gr-metrics-r-2.jsonRecorded for version 0.19.0; the test suite checks the current engine against it. |
Software the app's numbers were checked against, or its data built with. None of it ships with the app or is a dependency of it.
These tables compare compatible unweighted fixtures with the current engine when this page was built. The published R files also contain archived version-1 weighted estimates and reporting rules; those cannot validate version-2 IRLS or the permutation gate and are excluded here. Failed profile refits are marked not comparable, never converted to finite bounds. The full input sets were written by pipeline/assay-analyser/generate_curves.py and reference.R. Draft until the independent reviewer signs the fixture file and the method page (Q-19).
Relative IRLS is checked separately against two independent SciPy fits and fixed-weight estimating equations; this checks point estimation, not interval coverage or Prism equivalence. Download the reference with input/script hashes, Python script and pinned requirements. The new response gate has independent exact-null permutation regression tests; old F-gate outcomes are archival.
Expected values from R 4.3.3 nls (drc 4.0-0 as a cross-check), recorded 2026-10-06; tolerance within 0.00043 log10 units; 12 of 28 shown, all comparable rows passing. drc-reference.json sha256 27d99000551acaf2…
| Input | Expected | Ours | Difference | Pass |
|---|---|---|---|---|
| C01 logC50 (Hill −0.958) | −6.038 | −6.038 | 1.77e-8 | yes |
| C02 logC50 (Hill −1.13) | −6.555 | −6.555 | -6.86e-10 | yes |
| C03 logC50 (Hill −1.01) | −6.989 | −6.989 | 3.52e-10 | yes |
| C04 logC50 (Hill −0.508) | −6.069 | −6.069 | 1.69e-8 | yes |
| C05 logC50 (Hill −0.459) | −5.457 | −5.457 | -4.10e-8 | yes |
| C06 logC50 (Hill −0.489) | −6.462 | −6.462 | 1.11e-8 | yes |
| C07 logC50 (Hill −3.06) | −5.999 | −5.999 | 1.19e-9 | yes |
| C08 logC50 (Hill −2.71) | −5.250 | −5.250 | 1.83e-9 | yes |
| C09 logC50 (Hill −3.21) | −7.202 | −7.202 | 6.15e-10 | yes |
| C10 logC50 (Hill −0.961) | −6.018 | −6.018 | 2.60e-8 | yes |
| C11 logC50 (Hill −1.16) | −6.025 | −6.025 | 3.52e-9 | yes |
| C12 logC50 (Hill −1.06) | −5.002 | −5.002 | -1.51e-8 | yes |
Expected values from R 4.3.3 nls (drc 4.0-0 as a cross-check), recorded 2026-10-06; tolerance Wald within 0.0022 log10 units, resolved profile bounds within 0.0043 log10 units; 12 of 56 shown, all comparable rows passing. drc-reference.json sha256 27d99000551acaf2…
| Input | Expected | Ours | Difference | Pass |
|---|---|---|---|---|
| C01 Wald | −6.089 to −5.987 | −6.089 to −5.987 | 2.0e-8, 1.5e-8 | yes |
| C01 profile extra-sum-of-squares | −6.089 to −5.987 | −6.089 to −5.987 | -2.4e-8, 5.9e-9 | yes |
| C02 Wald | −6.659 to −6.452 | −6.659 to −6.452 | 1.4e-9, -2.8e-9 | yes |
| C02 profile extra-sum-of-squares | −6.663 to −6.454 | −6.663 to −6.454 | -1.1e-8, 9.8e-9 | yes |
| C03 Wald | −7.011 to −6.968 | −7.011 to −6.968 | 1.7e-9, -9.6e-10 | yes |
| C03 profile extra-sum-of-squares | −7.011 to −6.968 | −7.011 to −6.968 | 2.0e-8, -1.4e-8 | yes |
| C04 Wald | −6.177 to −5.961 | −6.177 to −5.961 | 1.1e-8, 2.3e-8 | yes |
| C04 profile extra-sum-of-squares | −6.183 to −5.963 | −6.183 to −5.963 | -2.1e-8, 3.3e-8 | yes |
| C05 Wald | −5.674 to −5.240 | −5.674 to −5.240 | -1.9e-8, -6.3e-8 | yes |
| C05 profile extra-sum-of-squares | −5.672 to −5.218 | −5.672 to −5.218 | 1.2e-8, 1.8e-8 | yes |
| C06 Wald | −6.591 to −6.333 | −6.591 to −6.333 | 1.8e-8, 4.5e-9 | yes |
| C06 profile extra-sum-of-squares | −6.588 to −6.328 | −6.588 to −6.328 | 5.4e-9, -1.5e-8 | yes |
Expected values from R 4.3.3 nls (drc 4.0-0 as a cross-check), recorded 2026-10-06; tolerance within 0.00043 log10 units; Z′ within 1e-9; 4 of 4 shown, all comparable rows passing. mtt-example.json sha256 50029b58c869ecb4…
| Input | Expected | Ours | Difference | Pass |
|---|---|---|---|---|
| Compound A logC50 | −5.666 | −5.666 | 6.80e-9 | yes |
| Compound B logC50 | −6.735 | −6.735 | -7.94e-8 | yes |
| Compound C report | archived unresolved fit | numerically unresolved | yes | |
| MTT plate Z′ (8 vehicle, 4 kill wells) | 0.78218 | 0.78218 | -2.2e-16 | yes |
Expected values from Z′ worked by hand with sample standard deviations, recorded 2026-10-06; tolerance within 1e-9; refusal exact; 4 of 4 shown, all comparable rows passing. zprime-controls.json sha256 dd3f2b587d4585ac…
| Input | Expected | Ours | Difference | Pass |
|---|---|---|---|---|
| Z01: excellent separation | 0.833451 | 0.833451 | 1.1e-16 | yes |
| Z02: marginal: below the 0.5 convention | 0.434849 | 0.434849 | 5.6e-17 | yes |
| Z03: overlapping controls: negative Z' | −1.3285 | −1.3285 | -4.4e-16 | yes |
| Z04: one negative-control well: Z' refused (a sample SD needs two) | refused | refused | yes |
Expected values from the oracle's hand-worked F, confirmed by drc's anova(), recorded 2026-10-06; tolerance F within 1e-5 relative; 4 of 4 shown, all comparable rows passing. drc-reference.json sha256 27d99000551acaf2…
| Input | Expected | Ours | Difference | Pass |
|---|---|---|---|---|
| C01: Hill fixed at -1 (3 free) against Hill free (4 free); true Hill -1 | F 0.77745, p 3.86e-1 | F 0.77745, p 3.86e-1 | 1.0e-11 | yes |
| C07: Hill fixed at -1 against Hill free; true Hill -3 | F 564.89, p 6.69e-22 | F 564.89, p 6.69e-22 | 8.8e-13 | yes |
| C04: Hill fixed at -1 against Hill free; true Hill -0.5 | F 125.31, p 4.60e-10 | F 125.31, p 4.60e-10 | 2.7e-12 | yes |
| C10: Bottom fixed at 0 against Bottom free; true Bottom 20 | F 57.476, p 4.77e-8 | F 57.476, p 4.77e-8 | 6.7e-14 | yes |