Skip to content

Methods and checksMethods

How every result is reached and what it was checked against, app by app. The same as each app's Methods dialog.

Methods and checks pages

Drybench Assay: methods and checks

How Drybench Assay reaches its results: every calculator, analysis or view with its methods, the references behind them, how far each has been checked, and the app's limits.

Open Drybench Assay · What the levels mean · Every app's methods and checks

Dose response

IC50 or EC50 from concentration and response by a four-parameter logistic fit, with its interval and the rules that withhold a value rather than guess.

Its result goes through 8 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Weighted fit (1/Y²)

The fit weighted by 1/Y² of the fitted curve, when you choose it; intervals and model comparisons are withheld under weighting.

Its result goes through 9 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked); 1/Y² weighting by the fitted curve (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

1/Y² weighting by the fitted curve

  • Level: Tested, not reference-checked
  • Reference: IRLS: start unweighted, then freeze w = 1/f_previous² for each least-squares solve and update until parameters stabilise. SD proportional to positive fitted response, variance proportional to its square, approximately constant CV. GraphPad Prism: Practical details of weighting. No claim of numerical equivalence with Prism. Weighted inference withheld.
  • How it was checked: Version 2 uses fitted-response IRLS. Counterexample and fixed-weight normal-equation regression tests protect the estimator; the version 1 direct-loss R fixtures do not validate it. No Prism equivalence or weighted interval coverage is claimed.

Plate quality

Z′ for each plate, the plate's row, column and edge diagnostics, the reference compound's C50, Z′ and blank across a Study's saved runs, and a layout suggestion when the diagnostics call for one.

Its result goes through 12 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Z′ (Zhang, Chung and Oldenburg 1999)

  • Level: Checked against a reference
  • Reference: Zhang J-H, Chung TDY, Oldenburg KR. A simple statistical parameter for use in evaluation and validation of high throughput screening assays. J Biomol Screen 1999;4:67-73 (read 5 October 2026); sample SD (n − 1), n shown.
  • How it was checked: Checked against Z′ worked by hand with sample standard deviations on 5 control sets, including the MTT plate and a set refused for a one-well control, within 1e-9 (2026-10-06); and on 6 degenerate and adverse sets (one well in either control, coinciding means, no spread, a negative Z′) in R, within 1e-9 with the refusals exact (10 October 2026).

Plate diagnostics: signal window, SSMD, Z and edge, row and column patterns

  • Level: Checked against a reference
  • Reference: Signal window (|μpos − μneg| − 3(σpos + σneg))/σpos: Sittampalam et al. 1997, J Biomol Screen 2:159–169, and Iversen et al., HTS Assay Validation, Assay Guidance Manual, with n = 1 (both cited from memory). SSMD (μpos − μneg)/√(σpos² + σneg²): Zhang XD 2007, Genomics 89:552–561 (cited from memory). Z on single-concentration sample wells against the negative control: Zhang, Chung and Oldenburg 1999, J Biomol Screen 4:67–73. Edge (one ring) against interior wells by Welch's two-sample t (Welch 1947, Biometrika 34:28–35, cited from memory); rows and columns by type II F in the additive model reading ~ row + column. Within one group of wells at a time; sample SDs (n − 1); p unadjusted; nothing corrected.
  • How it was checked: Checked against hand formulas in exact rational arithmetic (Python fractions, 60-digit decimals) on 17 synthetic plates (a hand case, one-well controls, no spread, coinciding means, inverted roles, a dose-response plate, 15 and 16 samples, outer-column controls, a 384 plate with a row gradient, residual df 9 and 10, exclusions, Welch with unequal n and variances): signal window, SSMD, Z, Welch t and df and type II F within 1e-9 relative, p within 1e-8, counts, states and reasons exact; R 4.4.3 t.test and drop1(lm) agree on every computed t, df, F and p (2026-10-13). Method 1.0.1 checks edge and interior spread separately against their own relative rounding bounds: both without spread withholds Welch; just one without spread contributes zero variance. The independent 0.18.0 supplement adds 26 physical-plate cases: states, counts and reasons exact, means, t and df within 1e-9 relative (exact zero within 1e-12 absolute), p within 1e-8 absolute. Python 3.12.14 exact fractions and bounded Student-t sine quadrature pass 34 analytical and identity checks; no new R or SciPy cross-check or extreme-tail relative-accuracy claim (2026-10-25).

Control runs over time: individuals chart and Pettitt change-point

  • Level: Checked against a reference
  • How it was checked: Checked against an independent oracle on 11 cases recorded in the oracle image, fixtures 0.11.0 (13 October 2026): centre, moving range and limits within 1e-9 relative, Pettitt K, location and flag exact, p within 1e-6 relative. Cross-checks against R qcc and trend are not yet in the script.

Plate layout suggested from the pattern diagnostics

  • Level: Checked against a reference
  • How it was checked: Checked against an independent oracle on 16 cases recorded in the oracle image, fixtures 0.12.0 (13 October 2026): trigger decisions, m, rules and refusals exact; on each suggested layout the counts by role, compound and concentration kept, nothing on the outer ring under (a), both control roles in every row and both halves under (b), and each series' order kept.

Outlier candidates and influence

Points flagged for review by externally studentised residuals, control wells by Grubbs' test, and how far leaving out each well moves log10 C50; nothing is removed for you.

Its result goes through 10 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Candidates for review (studentised residuals, Grubbs)

  • Level: Checked against a reference
  • Reference: Externally studentised residuals with a Bonferroni threshold (Cook RD, Weisberg S, Residuals and Influence in Regression, 1982; R car::outlierTest); Grubbs FE (1969), Technometrics 11:1–21, within control groups. Flags only: never exclusion; ROUT is not used.
  • How it was checked: Candidates for review: Checked against an independent oracle (NumPy hat matrix, SciPy curve_fit and a central-difference Jacobian for the 4PL, scipy.stats.t) on 8 fits and 5 control groups: leverages, internal and external studentised residuals, p and Bonferroni p, Grubbs G, p and critical value within 1e-6 relative, candidates and withheld states exact; R 4.4.3 rstudent and hatvalues, car 3.1-5 outlierTest and outliers 0.15 grubbs.test (its two-sided p only where it does not fold) agree on 2 linear fits and 3 control groups; R not run on the 4PL fits (no hat matrix for nls) (verification set 0.11.0, 13 October 2026).

Influence of each well on log10 C50 (leave one out)

  • Level: Checked against a reference
  • Reference: For an unweighted curve whose relative C50 is shown, each kept well is left out and the same model refitted (the same fixed parameters; fitFourPL's starts plus the full estimates); rules (i) to (v) applied to the refit; Δ = log10 C50 without the well − log10 C50, or the rule that withheld it and no number. Limits: leave-one-out shifts, unweighted fits only, each well refitted with the same settings; descriptive, not a test. Shifts are not independent, and wells at one concentration can mask one another.
  • How it was checked: Checked against SciPy least_squares leave-one-out refits with rules (i) to (iv) and the rank-trend permutation from its stated seed, on 8 cases (the MTT plate's three compounds, Compound C giving no halos; an outlier on the slope; a lost bracket withheld by rule (iii); four concentrations withheld by rule (i); Bottom fixed; tied shifts): every shift within 0.00086 log10 (agreement about 1e-7), outcomes and the largest well exact; R 4.4.3 drc 4.0-0 LL.4 refits agree within 1.3e-6 log10; Compound A without A9 reproduces the plate walk's drc refit. Recorded in the pinned oracle image, 13 October 2026 (fixtures 0.11.0). A leave-one-out fit that becomes a step is not yet covered.

Curve shape and model choice

Comparing the four-parameter fit with simpler or two-phase curves by the F-test and AICc, and the absolute IC50 where you ask for it.

Its result goes through 12 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked); Corrected Akaike information criterion (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Extra-sum-of-squares F-test

  • Level: Checked against a reference
  • Reference: F = ((RSS_r − RSS_f)/(df_r − df_f))/(RSS_f/df_f), p from F(df_r − df_f, df_f) at α = 0.05; an approximate nested nonlinear-model diagnostic for unweighted constant-variance Gaussian errors. Flat versus logistic is nonregular and is never used as the response-evidence gate. Weighted comparisons are unavailable.
  • How it was checked: Checked against the oracle's hand-worked F and p, confirmed by drc's anova(), on 6 nested comparisons: the residual sums of squares within 1e-6 relative, F within 1e-5 relative and p within 1e-4 relative (2026-10-06).

Corrected Akaike information criterion

  • Level: Tested, not reference-checked
  • Reference: Burnham KP, Anderson DR. Model selection and multimodel inference. 2nd ed. Springer; 2002 (original papers): K counts the fitted parameters and the variance.
  • How it was checked: Unit-tested on nested fits of the fixture curves (6 October 2026); no external oracle.

Bell-shaped and biphasic dose-response (chosen by the user, beside the 4PL)

  • Level: Checked against a reference
  • Reference: Sums of two log-logistic phases in the forms GraphPad Prism names "biphasic" and "bell-shaped" dose-response (equation forms as stated in the method; Prism's guide not re-read); unweighted least squares, every parameter free; the extra-sum-of-squares F of the 4PL within the seven-parameter model (3 and n − 7 df) and AICc (K = 8 against 5), approximate (the 4PL is a boundary and the second phase is not identified under it: the Davies problem). Motulsky H, Christopoulos A. Fitting models to biological data using linear and nonlinear regression. Oxford University Press; 2004 (cited from memory). No interval.
  • How it was checked: Bell-shaped and biphasic fits: checked against SciPy least_squares (a fixed grid of starts and 300 seeded starts, the rule written independently) on 8 cases (a reported bell and biphasic curve, a noiseless bell, a bend, separated phases, a minor phase, and two refusals): the engine's residual sum of squares at most the oracle's × (1 + 1e-6), midpoints, Hill slopes and the fraction within 1e-4, levels within 1e-4 of the response span, F and AICc within 1e-6 and p within 1e-4 relative, the refusals exact; R drc::drm with the seven-parameter forms agrees on all 6 fitted cases. The rule's false-report rate on plain four-parameter data (10 concentrations in duplicate, 1,000 replicates each): bell 0.0 percent at 5 and at 10 percent noise, biphasic 0.2 and 0.0 percent (13 October 2026). The F and AICc against the 4PL are information.

Absolute IC50: where the fitted curve crosses 50 percent of the controls

  • Level: Checked against a reference
  • Reference: Sebaugh 2011: the relative IC50 is the curve's own midpoint (the parameter); the absolute IC50 is the concentration at 50 percent of the 0 and 100 percent controls, shown only with two concentrations predicted on each side of 50.
  • How it was checked: The algebraic 50-percent crossing and dose-side counts are checked against R fixture calculations; biological endpoint naming depends on the assay.

Comparing curves and experiments

Whether curves differ, relative potency under a parallel model, the summary across experiments and how a curve with no detected concentration-response trend is reported.

Its result goes through 12 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Curve comparison: shared versus separate midpoints by a global fit

  • Level: Checked against a reference
  • Reference: Global four-parameter logistic fits over the chosen curves, unweighted: separate, constrained (named shared Top, Bottom or Hill) and shared midpoint; the extra-sum-of-squares F at α = 0.05 for shared against constrained, and for each named constraint against the separate fit; Δ = log10 C50_B − log10 C50_A as an explicit parameter, profiled to RSS_min × (1 + F(0.95; 1, df)/df) with the other parameters refitted, Wald Δ ± t(0.975, df) × SE as the named alternative (Fieller's interval is the equivalent on the linear ratio scale and is not used). The ratio is withheld when either curve's own interval is unbounded or wider than two log10 units. Approximate for a nonlinear model; constant-variance unweighted errors; plate effects are confounded with a cross-plate comparison.
  • How it was checked: Checked against SciPy least_squares global fits and a hand F on 12 cases (one shared midpoint, shifted pairs, Hill or the plateaus shared as named constraints, three curves, fixed plateaus, a poorly determined curve withholding the ratio, a curve with no finite minimum, the reference swapped, a units shift, rising curves and the worked MTT plate, whose shared-midpoint fit runs to its limit): 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, withholdings exact. Simulated coverage of the 95 percent profile interval on the difference: 95.4 percent (11 concentrations in duplicate) and 93.4 percent (8 once each); the midpoint test's size 4.7 percent. Also checked 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).

Relative potency under a parallel four-parameter logistic model, with equivalence intervals for parallelism

  • Level: Checked against a reference
  • Reference: Two curves compared with Top, Bottom and Hill shared and log C50 per curve; log10 ρ = logC50(reference) − logC50(test) with its 95 percent profile interval (Finney 1978, Statistical Method in Biological Assay, cited from memory). Parallelism by 90 percent Wald intervals on the Hill ratio and the Top and Bottom differences from the separate fits, read against the person's own margins (Hauck et al. 2005, PDA J Pharm Sci Technol 59:127–137; Jonkman and Sidik 2009, J Biopharm Stat 19:818–837; both cited from memory), and the joint extra-sum-of-squares F as information.
  • How it was checked: Checked against SciPy least_squares fits through the comparison oracle on 9 synthetic cases (a shift by ρ = 2, slopes differing, tops differing, a precise trivial difference, a weak test curve, rising curves, three concentrations and opposite directions refused, margins just outside an interval and not bracketing 0): 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 within 1e-3 log10, states and margin classes exact. Simulated coverage on the shifted pair (2,000 replicates): ρ's 95 percent profile interval 94.9 percent; the 90 percent Wald intervals 88.9 (Hill ratio), 89.2 (Top) and 90.0 percent (Bottom). R 4.4.3 drc 4.0-0 LL2.4 agrees on every Hill ratio, plateau difference and joint F within 1e-5; its standard errors differ by up to 3.7 percent (drc's Hessian against the oracle's Gauss–Newton covariance), recorded (2026-10-13).

Experiment-level summary of log10 C50

  • Level: Checked against a reference
  • Reference: Experiment-level summary of log10 C50: arithmetic mean and sample SD over n independent experiments, each fitted separately; t-interval at n ≥ 3 (mean ± t(0.975, n − 1)·SD/√n; the geometric mean C50 is 10^mean). n counts experiments the user declared and confirmed as biological; wells and plates are never n; only experiments whose C50 is shown enter, the withheld listed; relative and absolute C50s never mixed; at n = 2 the two values and their difference, at n = 1 the single fit. The interval describes run-to-run scatter under these conditions; it is not an interval on a binding constant.
  • How it was checked: Checked against exact rational arithmetic (Python fractions) and SciPy's t quantile on 11 cases (three and five experiments, k of n with a withheld member, the pair, the single fit, none, the carried poorly-determined flag, mixed kinds refused, identical values, a units shift, absolute C50s): mean, SD and bounds within 1e-9 log10, the quantile within 1e-8 relative, counts and refusals exact; and against R 4.4.3 t.test on the 6 cases with an interval it computes, within 1e-9 log10 (2026-10-12).

Negative result: no monotonic concentration-response trend detected

  • Level: Checked against a reference
  • Reference: Stated only for a C50 withheld because the within-plate permutation rank-trend test gave p ≥ 0.05, and only where the same test on the same concentrations and plates with perfectly ordered responses reaches p < 0.05 (the design could have detected a trend). Reports the kept concentration range and count, the mean response at the lowest and highest concentration, the stored p and its procedure, and the declared experiments (n only when confirmed as biological; wells and plates are never n). A statement about the test, not the compound; no power or minimum detectable effect is calculated. Altman DG, Bland JM. Absence of evidence is not evidence of absence. BMJ 1995;311:485. Phipson B, Smyth GK. Permutation P-values should never be zero. Stat Appl Genet Mol Biol 2010;9:Article 39. doi:10.2202/1544-6115.1585
  • How it was checked: Checked against an independent oracle on 16 cases: exact cases equal as fractions, sampled cases equal to the ported stream exactly and within 4·√(p(1 − p)/2000) + 1/2000 of exact enumeration where it is computed, means within 1e-12 relative (verification set 0.11.0, 13 October 2026). R not run.

Agonist and antagonist analyses

Schild and Gaddum analyses of antagonist shifts, and the operational model for agonists.

Its result goes through 11 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Gaddum/Schild global fit: pA2, the Schild slope and pKB

  • Level: Checked against a reference
  • Reference: Lew MJ, Angus JA. Analysis of competitive agonist-antagonist interactions by nonlinear regression. Trends Pharmacol Sci 1995;16:328-337 (cited from memory, not re-read): log EC50([B]) = log EC50₀ + log10(1 + ([B]·10^pA2)^s), Top, Bottom and Hill shared, unweighted; profile intervals; pKB from the fit with s = 1, shown only when F(s = 1) p ≥ 0.05, the interval on s is bounded and at most 1.0 wide, the shared-Hill test p ≥ 0.05 and the maximum does not fall; the classic Schild plot drawn from separate fits, its own least-squares line never reported.
  • How it was checked: Gaddum/Schild global fit: checked against SciPy least_squares (fixed grids of starts inside the memo's boxes; profiles by refitting on an outward grid and brentq) on 8 cases (competitive with pKB reported, a Schild slope of 0.6, receptor removal, too few levels, a narrow span, two controls refused): pA2, s, pKB and log EC50₀ within 1e-4 log units, profile bounds within 1e-3, F within 1e-5 and p within 1e-4 relative, states exact; R nls (port, from SciPy's estimates) agrees on both global fits, pA2, s and pKB within 2e-9. On every fit SciPy's estimate holds the lowest residual sum of squares of SciPy's, R's and each refitted from the other's (verification set 0.13.0, 13 October 2026).

Gaddum (non-competitive) double-reciprocal KB

  • Level: Checked against a reference
  • Reference: Gaddum JH, Hameed KA, Hathway DE, Stephens FF. Q J Exp Physiol 1955;40:49-74, in Kenakin's form (cited from memory, not re-read): ten equiactive levels between 20 and 80 percent of the depressed curve's span read from the two fitted curves inside the tested range, 1/[A] on 1/[A′] by least squares, KB = [B]/(slope − 1); run only when the maximum is depressed; no interval and no R².
  • How it was checked: Gaddum (non-competitive): checked against the SciPy oracle on the receptor-removal case, where the double-reciprocal KB equals the truth (10 nM) within 1e-3 for every pair kept, KB within 1e-4 relative and log KB within 1e-4; the own fits it reads agree with R drc LL.4 within 4e-6 log units (verification set 0.13.0, 13 October 2026). No interval is stated.

Operational model (Furchgott design): KA and τ

  • Level: Checked against a reference
  • Reference: Black JW, Leff P. Proc R Soc Lond B 1983;220:141-162; Furchgott RF 1966 (cited from memory, not re-read): E = basal + (Em − basal)·τⁿ[A]ⁿ/(([A] + KA)ⁿ + τⁿ[A]ⁿ), Em, basal, n and log KA shared, log τ per curve, unweighted; profile intervals on log KA, log τ and log(τ/KA); withheld unless the maxima differ (shared-Top F p < 0.05 and a fall of at least 20 percent of the control's span), no parameter at its box and log KA's profile bounded.
  • How it was checked: Operational model (Furchgott): checked against SciPy least_squares on 2 cases (τ 30, 3 and 0.6 reported; full maxima withheld): log KA and log τ within 1e-4 log units, profile bounds within 1e-3, states exact; R nls (port) agrees within 3e-8. Where R drc's own fit differs (full maxima, log EC50 by 1.9e-4), drc stops at a higher residual sum of squares (74.87326 against 74.87255) and R nls from SciPy's estimate stays at SciPy's (verification set 0.13.0, 13 October 2026).

Reporter, viability and kinetic readings

Dual-luciferase ratios, viability with background subtracted, and one named read (the last, or the read at a chosen time) taken from a kinetic export as the endpoint.

Its result goes through 11 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked); Kinetic read blocks (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Dual-luciferase reporter ratio per well

  • Level: Checked against a reference
  • Reference: Ratio per well = (firefly − firefly background)/(Renilla − Renilla background), background the mean of each block's own blank wells when chosen; the mean of well ratios; withheld at or below Renilla background and (six or more varying blanks) below their mean + 3 SD; low firefly and Renilla outside 0.5× to 2× the plate median flagged, kept (Shifera AS, Hardin JA 2010, Anal Biochem 396:167–172, on treatment effects on the control reporter, cited from memory).
  • How it was checked: Checked against exact rational arithmetic (Python fractions, 60-digit decimals) on 16 synthetic plates (background off and on, Renilla at background, below blank + 3 SD with six and five blanks, identical blanks, negative net firefly, seven and eight wells for the median with the exact 0.5× edge, two and three control wells, a format mismatch, swapped channels, an exclusion): ratios, folds, means, SDs, medians and percents within 1e-12 relative, states, flags and well lists exact; R 4.4.3 median agrees within 1e-12 (2026-10-13).

Percent of positive control, background-subtracted

  • Level: Checked against a reference
  • Reference: percent = 100 × (y − mean(blank))/(mean(positive control) − mean(blank)) with the plate's own kept medium-only blank wells; withheld under two blanks or two positive-control wells, or when the positive control does not read above the blanks; values outside 0–100 kept as calculated (Riss TL et al., Cell Viability Assays, Assay Guidance Manual, cited from memory).
  • How it was checked: Checked against exact rational arithmetic (Python fractions) on 11 synthetic plates (a hand plate at exactly 50, percent of control with its blank share, one and two blanks, one positive-control well, a positive control at and below the blanks, values outside 0–100, an excluded blank, no blanks): percents, blank share and means within 1e-12 relative, reasons and counts exact; R 4.4.3 mean agrees within 1e-12 (2026-10-13).

Kinetic read blocks

  • Level: Tested, not reference-checked
  • Reference: A time or temperature column read with its unit, one series per well, no interpolation across missing reads, reader markers reported and never dropped, temperature kept as metadata; one read (the last, or the read at a chosen time) taken as the endpoint and named.
  • How it was checked: Unit-tested on 4 synthetic kinetic files (a time course as a table, two kinetic block layouts, a melt), every read of every well read back to the value written, missing reads left empty, markers reported and header lines discarded (12 October 2026); no vendor sample file is used.

Molar units and ligand efficiency

Mass concentrations converted to molar through a stated molar mass, and ligand efficiency from a potency.

Its result goes through 10 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Mass concentration to molar through a stated molar mass

  • Level: Checked against a reference
  • Reference: Prohaska T et al. (2022), Standard atomic weights of the elements 2021 (IUPAC Technical Report), Pure and Applied Chemistry 94:573–600 doi:10.1515/pac-2019-0603
  • How it was checked: Checked against an independent oracle on 20 cases recorded in the oracle image, fixtures 0.11.0 (13 October 2026): formula weights within 1e-4 g/mol, protein masses within 0.02 Da (ProtParam) and 0.01 Da (CIAAW), molar values, active enzyme and kcat within 1e-9 relative; refusals exact.

pIC50, ligand efficiency and lipophilic ligand efficiency

  • Level: Checked against a reference
  • How it was checked: Checked against an oracle on 13 cases recorded in the oracle image, fixtures 0.11.0 (13 October 2026): heavy atoms against hand counts (exact), LE and LLE arithmetic within 1e-6 and as shown; Crippen cLogP and charge from Python RDKit 2026.03.6 as a drift check against RDKit.js (1e-3), not independent. Open: the Crippen hand summation for ethanol and toluene (Wildman and Crippen 1999, Table 1, to be read).

Where to add a concentration

The concentration to add next that would most narrow the Wald interval on log10 C50, at the current estimates.

Its result goes through 9 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Plate-export profiles (Tested, not reference-checked); Normalisation to the plate's controls (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Normalisation to the plate's controls

  • Level: Tested, not reference-checked
  • Reference: percent = 100 × (y − μneg)/(μpos − μneg) with per-plate control means (brief §4.1); raw, percent of control and percent inhibition as named alternatives.
  • How it was checked: Unit-tested on the worked MTT plate: percent viability from the vehicle and kill wells agrees with the fixture's formula to 1e-9 (6 October 2026).

Four-parameter logistic fit

  • Level: Checked against a reference
  • Reference: Hill AV. J Physiol 1910;40:iv-vii (the logistic form); Ritz C, Baty F, Streibig JC, Gerhard D. Dose-response analysis using R. PLoS ONE 2015;10:e0146021 (the LL.4 parameterisation the fixtures map to). doi:10.1371/journal.pone.0146021
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Bounded Levenberg-Marquardt with an analytic Jacobian and deterministic starts

  • Level: Checked against a reference
  • Reference: Levenberg K. Q Appl Math 1944;2:164-168; Marquardt DW. J Soc Indust Appl Math 1963;11:431-441 (original papers).
  • How it was checked: Version 2 unweighted estimates and intervals are checked against the compatible R fixtures. Historical relative-loss and reporting-policy fixtures are archival, not validation of IRLS or the permutation gate.

Wald interval on log10 C50

  • Level: Checked against a reference
  • Reference: logIC50 ± t(0.975, n − p) × SE, SE from (JᵀJ)⁻¹s² at the solution (brief §4.1; CSO ruling, 6 October 2026, item 6).
  • How it was checked: Unweighted Wald arithmetic checked against compatible R fixtures. Requires residual degrees of freedom and nonzero residual variance; conditional on the supplied normalised observations.

Profile extra-sum-of-squares interval on log10 C50

  • Level: Checked against a reference
  • Reference: The objective rises to its minimum × (1 + F(0.95; 1, n − p)/(n − p)) with the other parameters refitted (brief §4.1); the asymmetrical interval GraphPad's Prism 8 guide names as its initial default (read 5 October 2026); Only unweighted independent Gaussian errors with constant variance; nonlinear F approximation. A bound not reached within 10 log10 units or after an unresolved refit is labelled not bounded within the search, not mathematically infinite. Zero residual variance and relative-weighted fits have no interval.
  • How it was checked: Unweighted profile extra-sum-of-squares computation checked against compatible R fixtures. Uses an approximate nonlinear F threshold; bounds beyond or unresolved within the search are not claimed mathematically infinite.

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Replicate mean and sample SD

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational means and sample SDs (n − 1) on 2 cases of the MTT plate (10 October 2026).

Locally optimal added concentration for log10 C50

  • Level: Checked against a reference
  • Reference: At the current estimates: V_c = [(JᵀJ + r·j_c j_cᵀ)⁻¹]_logC50·s² for each candidate (tested concentrations, midpoints, one step beyond each end), r the modal replicate count; the predicted Wald half-width t(0.975, df + r)·√V_c against the current Wald half-width, the narrowing rounded to the nearest 5 percent and shown at 10 or more. Limits: locally optimal at the current estimates; assumes the 4PL, constant variance and independent wells; Wald approximation.
  • How it was checked: Checked against NumPy with an analytic gradient on 5 cases (the MTT plate's Compounds A and B, one concentration on the slope, a thin plateau, a dense series below the floor): every candidate's variance and the current Wald half-width within 1e-6 relative (agreement about 1e-14), the replicate count, the chosen candidate, the rounded narrowing and the floor exact; base R with a finite-difference Jacobian at drc's estimates agrees within 1.4e-8 relative and on every choice. Recorded in the pinned oracle image, 13 October 2026 (fixtures 0.11.0).

Standard curve

Interpolate unknowns from standards by a linear or logistic curve, with the ELISA, Bradford and BCA presets.

Its result goes through 4 methods. The lowest level among them: Checked against a reference.

Methods

Inverse-prediction interval on a calibration unknown

  • Level: Checked against a reference
  • Reference: Classical inverse regression (the Fieller interval) for a linear standard curve; the delta method on the inverse function, labelled approximate, for the 4PL and 5PL. The reading variance is pooled from the standards' individual readings (their residuals about the fitted curve and their within-level scatter, on N − p degrees of freedom), so replicated standards are counted correctly; standards with unequal numbers of kept readings give no interval. Constant-variance errors assumed.
  • How it was checked: Inverse-prediction intervals, method 2.0.0 (the reading variance pooled over the standards' individual readings, SCI-123): checked against an independent oracle (exact rational arithmetic for the linear Fieller interval; SciPy with central finite differences for the 4PL and 5PL delta method) on 15 standard curves read once, twice, three times and unequally, with 32 unknowns: bounds within 1e-9 (linear) and 1e-6 relative (4PL, 5PL), every withheld state exact; 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. Simulated coverage of the 95 percent interval with duplicate and triplicate standards, 2,000 replicates in each of 8 designs (linear and 4PL, one standard layout each, the unknown mid-curve; the 5PL not simulated): 94.4 to 95.5 percent against gates of 93 (linear) and 90 percent (4PL); the first method, 0.6.0 to 0.12.0, gave 83.0 to 90.9 percent. R not compared on the 10 unknowns read more than once, where investr pools the unknown's own scatter (a different estimator) (14 October 2026).

Blank-based limits, dilution linearity

  • Level: Checked against a reference
  • Reference: Limit of detection at mean blank + 3 SD and limit of quantification at mean blank + 10 SD of at least six kept blanks (sample SD, n − 1; minus for a falling curve), read through the fitted standard curve and never extrapolated (Currie 1968, Anal Chem 40:586–593; MacDougall et al. 1980, Anal Chem 52:2242–2249; both cited from memory). Not CLSI EP17's limit of blank. Dilution linearity: each in-range dilution's back-calculated original concentration, its percent of the series mean and the CV; with three or more, the least-squares slope of log10 original concentration on log10 dilution factor with a 95 percent t interval, an observation.
  • How it was checked: Checked against exact rational least squares (Python fractions, 60-digit decimals) and noiseless 4PL standards read through the generating curve's closed-form inverse, on 14 synthetic cases (limits with and without blank subtraction, a falling and a rising 4PL, one and five blanks, identical blanks, limits below the lowest and above the highest standard, an excluded blank, four dilution series): limits within 1e-9 relative on lines and 1e-6 on the 4PL, the blank SD within 1e-12, original concentrations, percents, CV and the trend's bounds within 1e-9, states, reasons and notes exact; R 4.4.3 mean, sd and confint(lm) agree (2026-10-13).

Five-parameter logistic standard curve

  • Level: Checked against a reference
  • Reference: y = Bottom + (Top − Bottom)/(1 + 10^((logMidpoint − x)·Hill))^s, x = log10 concentration, fitted unweighted to the standard means by bounded Levenberg–Marquardt from the 4PL's estimates; s fitted as ln s within [0.1, 10] and refused at that edge; seven or more distinct positive standards; drc LL.5 mapping b = −Hill, c = Bottom, d = Top, e = 10^logMidpoint, f = s. The 4PL-versus-5PL extra-sum-of-squares F (1 numerator df) and AICc are information only. Interpolation stays within the standards; the midpoint parameter is not a C50.
  • How it was checked: Checked against SciPy 1.13.1 curve_fit (trf, s boxed to [0.1, 10], nine starts) on 3 fitted standard curves and 2 refusals (s at its box; six standards): parameters, ln s included, and fitted responses within 2e-5 absolute, concentrations within 5e-5 relative, statuses exact; R 4.4.3 drc 4.0-0 LL.5, started from SciPy's estimates, agrees on the 3 fitted curves (verification set 0.11.0, 12 October 2026). The intervals on its unknowns are the inverse-prediction method's; their coverage with the 5PL is not simulated.

Standard-curve interpolation

  • Level: Checked against a reference
  • Reference: NIST/SEMATECH e-Handbook §2.3.6.6, inverse calibration; Cox et al., Assay Guidance Manual, Immunoassay Methods (2019), calibration and recovery. Linear least squares or the existing 4PL; mean responses per concentration; bounded interpolation. From A5 the 5PL and inverse-prediction intervals are their own methods (five-pl-calibration, calibration-inverse-prediction).
  • How it was checked: Checked against exact rational least squares (linear, 7 cases) and SciPy 1.13.1 (4PL, 2 cases); out-of-range unknowns flagged (10 October 2026). R not run on the 4PL cases.

qPCR relative expression

Fold change by ΔΔCq or efficiency-corrected quantities from a reviewed Cq table, with samples, calibrators and references declared.

Its result goes through 4 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: qPCR relative expression (Tested, not reference-checked).

Methods

qPCR relative expression

  • Level: Tested, not reference-checked
  • Reference: Pfaffl MW (2001), Nucleic Acids Research 29:e45; Hellemans et al. (2007), Genome Biology 8:R19. Technical Cq means, explicit efficiencies, geometric normalization by selected references and run-local biological calibrators. doi:10.1093/nar/29.9.e45
  • How it was checked: Exact ΔΔCq and independently calculated unequal-efficiency fixtures; no reference-gene stability validation or inter-run normalization. Group intervals are the Welch method's, verified separately.

Welch t-interval on the log₂ fold change

  • Level: Checked against a reference
  • Reference: Welch BL (1947), Biometrika 34:28–35: the two-sample t with unequal variances and Welch–Satterthwaite degrees of freedom doi:10.1093/biomet/34.1-2.28
  • How it was checked: Checked against a hand Welch computation with SciPy t quantiles on 10 synthetic Cq tables: bounds within 1e-9, df within 1e-9 relative, withheld reasons exact; R t.test agrees on all 8 intervals (12 October 2026).

qPCR amplification efficiency from a dilution series

  • Level: Checked against a reference
  • Reference: Cq = a + b·log10(quantity) by least squares on the mean Cq of each level's kept wells; E = 10^(−1/b), efficiency (E − 1)·100, the slope's 95 percent t interval from four levels (Pfaffl MW 2001, Nucleic Acids Research 29:e45, cited from memory). Carried into the efficiency-corrected calculation only by the person's action; its interval is not propagated. doi:10.1093/nar/29.9.e45
  • How it was checked: Checked against least squares in exact rational arithmetic (Python fractions, 60-digit decimals) with SciPy's t quantile on 12 synthetic dilution series (a doubling series, 90 percent, two and three levels, a rising slope, undetermined wells, E above 2, quantities against fold dilutions, an excluded well, a zero quantity): slope, intercept, R², the slope's bounds, E and efficiency within 1e-9 relative, states, counts and dropped levels exact; R 4.4.3 lm and confint agree within 1e-9 (2026-10-13).

geNorm M for reference assays

  • Level: Checked against a reference
  • Reference: M_j = mean over the other candidates of the sample SD of log2(Q_j/Q_k) across samples with every candidate measured; no stepwise exclusion and no cut-off (Vandesompele J et al. 2002, Genome Biology 3:research0034, cited from memory). doi:10.1186/gb-2002-3-7-research0034
  • How it was checked: Checked against geNorm M worked by hand in 60-digit decimals on 5 synthetic tables (the hand case, two genes, an incomplete sample, an entered E, two samples): every pairwise V and M within 1e-9 relative, the ranking and dropped samples exact; R 4.4.3 sd agrees on every pairwise V within 1e-9 (2026-10-13).

Growth: selected window

The specific growth rate and doubling time over the window you choose, blank subtracted before the log.

Its result goes through 3 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Kinetic read blocks (Tested, not reference-checked).

Methods

Specific growth rate in a selected window

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational least squares (Python fractions) on 5 hand cases with whole doublings and SciPy linregress on 3 noisy cases, with the withheld cases exact: μ and the doubling time within 1e-9 relative, hours against minutes, and blank-then-log distinguished from log-then-blank (10 October 2026). R not run on the 3 noisy cases.

Modified Gompertz growth fit (lag, μmax and A)

  • Level: Checked against a reference
  • Reference: Zwietering MH, Jongenburger I, Rombouts FM, van 't Riet K (1990), Applied and Environmental Microbiology 56:1875–1881: the modified Gompertz model for lag, μm and A doi:10.1128/aem.56.6.1875-1881.1990
  • How it was checked: Checked against SciPy curve_fit on 9 synthetic courses: A and μm within 1e-5 relative, λ within 1e-5 of the span, statuses exact; R nls (port) agrees on the 6 interior fits within 1e-4 (12 October 2026).

Kinetic read blocks

  • Level: Tested, not reference-checked
  • Reference: A time or temperature column read with its unit, one series per well, no interpolation across missing reads, reader markers reported and never dropped, temperature kept as metadata; one read (the last, or the read at a chosen time) taken as the endpoint and named.
  • How it was checked: Unit-tested on 4 synthetic kinetic files (a time course as a table, two kinetic block layouts, a melt), every read of every well read back to the value written, missing reads left empty, markers reported and header lines discarded (12 October 2026); no vendor sample file is used.

Enzyme kinetics: initial rates

Km and Vmax from initial rates, with profile intervals and kcat from an active-site concentration.

Its result goes through 7 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Kinetic read blocks (Tested, not reference-checked).

Methods

Initial-rate Michaelis–Menten

  • Level: Checked against a reference
  • How it was checked: Checked against SciPy curve_fit (trf, log parameters, three starts) on 5 estimated cases including noiseless rates matching the hand values, an unsaturated series flagged for range support, bound contact and two refusals: Km and Vmax within 1e-5 relative, the residual sum of squares within 1e-6 relative, kcat within 1e-5 (10 October 2026); R not run. Failed convergence is unit-tested, not in the fixture.

Initial rates from progress curves (windowed least squares)

  • Level: Checked against a reference
  • How it was checked: Checked against exact rational least squares (Python fractions) on 10 straight-line cases and SciPy linregress on a six-level plate in two windows (the integrated Michaelis–Menten equation plus a fixed noise vector): slopes, rates and percent conversion within 1e-9 relative, the 10 percent flag, the withheld wells (a marker in the window, fewer than three reads) and the reads used exact; Km and Vmax fitted to the plate's window rates within 1e-6 of SciPy curve_fit; and against R 4.4.3 lm on the 25 estimated wells: slope and intercept within 1e-9 relative (12 October 2026).

Initial-rate substrate inhibition (Haldane form)

  • Level: Checked against a reference
  • How it was checked: Checked against SciPy curve_fit (trf, log parameters, three starts) on 9 synthetic cases (a noiseless hand case, noisy duplicates with mM and row-order rows, no decline beyond the optimum, Ksi at its bound, one level beyond the optimum, two refusals): hand values within 1e-9, Vmax, Km, Ksi and the optimum within 1e-5, the Km–Ksi correlation within 1e-4, the states and the count beyond the optimum exact, AICc against Michaelis–Menten within 1e-6; and against R 4.4.3 nls on the 4 estimates: constants within 1e-5, the residual sum of squares within 1e-6 relative (13 October 2026).

Profile extra-sum-of-squares interval on Km and Vmax

  • Level: Checked against a reference
  • How it was checked: Checked against a SciPy direct profile on 9 cases: bounds within 1e-3 ln units, side states exact. Simulated coverage: Km 95.3, Vmax 95.0 percent (7 levels × 2). Also checked 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 (12 October 2026).

Initial-rate Hill equation (S0.5 and the Hill coefficient)

  • Level: Checked against a reference
  • How it was checked: Hill equation: checked against SciPy curve_fit on 11 cases (h = 2 and 0.5 exactly, noisy duplicates, unit and row-order relations, Michaelis–Menten rates, the withheld and bound states, two refusals): Vmax, S0.5 and h within 1e-5 relative (hand values within 1e-9), the residual sum of squares within 1e-6 relative, the interval on h within 1e-3 in ln h with side states exact; R nls agrees on all 7 fitted cases. The interval on h covered the true h in 94.6 and 95.5 percent of 2,000 replicates at h = 1 and 2.5 (verification set 0.11.0, 13 October 2026).

Two-substrate initial rates: ping-pong and sequential (global fit)

  • Level: Checked against a reference
  • How it was checked: Two-substrate rates: checked against SciPy least_squares on 11 cases (each model exactly, noisy sequential and ping-pong rates fitted by both models, unit and relabelling relations, design refusals): Vmax, KmA, KmB and KiA within 1e-5 relative (hand values within 1e-9), the residual sum of squares within 1e-6 relative, the AICc difference within 1e-6, F within 1e-5 and p within 1e-4 relative, states exact; R nls agrees on all 15 fits (verification set 0.11.0, 13 October 2026).

Kinetic read blocks

  • Level: Tested, not reference-checked
  • Reference: A time or temperature column read with its unit, one series per well, no interpolation across missing reads, reader markers reported and never dropped, temperature kept as metadata; one read (the last, or the read at a chosen time) taken as the endpoint and named.
  • How it was checked: Unit-tested on 4 synthetic kinetic files (a time course as a table, two kinetic block layouts, a melt), every read of every well read back to the value written, missing reads left empty, markers reported and header lines discarded (12 October 2026); no vendor sample file is used.

Enzyme kinetics: inhibition

Ki from rates at several substrate and inhibitor concentrations by a global fit of the inhibition model you choose.

Its result goes through 8 methods. The lowest level among them: Checked against a reference.

Methods

Enzyme inhibition: global fit of the model you select

  • Level: Checked against a reference
  • How it was checked: Checked against SciPy least_squares (trf, bounded, nine starts) on 14 fits and 4 refusals: hand values within 1e-9 for noiseless competitive, uncompetitive and mixed data, constants within 1e-5, bound contact naming the constant, refusals exact; and 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 (12 October 2026).

Enzyme inhibition: the four models compared on the same rates (AICc, nested F)

  • Level: Checked against a reference
  • How it was checked: Checked against SciPy least_squares fits of all four models with AICc and the nested F worked by hand, on 8 synthetic cases (one per model, an ambiguous near-noncompetitive set whose two lowest lie within 2 AICc units, mixed at a search bound, an exact fit withheld, a refusal): the ranking and the states exact, AICc and ΔAICc within 1e-6, F within 1e-5 relative, p within 1e-4 relative; and 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 (12 October 2026).

Profile extra-sum-of-squares interval on Ki and Ki′

  • Level: Checked against a reference
  • How it was checked: Checked against a SciPy direct profile on 7 cases (one per model, a weak inhibitor range, a zero residual, a bound fit): bounds within 1e-3 ln units, side states and the poorly-determined flag exact. Simulated coverage: competitive Ki 93.8 percent, mixed Ki and Ki′ 94.9 percent each (1,000 replicates per design); R not run: the named oracle for these intervals is a SciPy direct profile with its coverage run (13 October 2026).

Ki from IC50, competitive (Cheng–Prusoff)

  • Level: Checked against a reference
  • Reference: Cheng Y, Prusoff WH (1973), Biochemical Pharmacology 22:3099–3108 doi:10.1016/0006-2952(73)90196-2
  • How it was checked: Checked against hand-worked exact values (Python fractions) on 6 cases, Ki within 1e-12 relative and the four-figure display exact, and 5 refusals that give no number: a missing value, [S] and Km in different dimensions, a zero Km and a negative [S] (10 October 2026).

Ki bounds from the IC50's bounds (Cheng–Prusoff)

  • Level: Checked against a reference
  • How it was checked: Checked against hand-worked exact values (Python fractions) on 10 cases: Ki and both bounds within 1e-12 relative, the four-figure display exact, and refusals of incomplete, non-positive or non-bracketing bounds and of a refused Ki that give no number (13 October 2026).

Tight-binding inhibition: the Morrison quadratic

  • Level: Checked against a reference
  • How it was checked: Morrison quadratic: checked against SciPy least_squares on 15 cases (hand rates in 50-digit decimal arithmetic, noisy duplicates, unit and row-order relations, the freed enzyme, the titration regime, the refusals, Ki by declared mechanism): v0, Ki_app and the fitted [E] within 1e-5 relative (hand values within 1e-9), the residual sum of squares within 1e-6 relative, states exact; R nls agrees on all 9 fits (verification set 0.11.0, 13 October 2026).

Slow-binding inhibition: kobs against [I], one step

  • Level: Checked against a reference
  • How it was checked: Slow binding (kobs against [I]): checked against exact rational least squares (Python fractions) for the line and SciPy least_squares for the hyperbola on 13 cases (the exact line and its koff states, a two-step hand case and noisy data, koff and k6 at zero, unit relations, a falling kobs and too few levels refused): kon_app, koff, their standard errors and interval bounds within 1e-9 relative (a standard error at an exact line within 1e-12 of the estimate), k5, Ki_app and k6 within 1e-5 relative (hand values within 1e-9), states exact; R lm, confint and nls agree on all 15 fits (verification set 0.11.0, 13 October 2026). The 0.17.0 supplemental set adds 15 exact-decimal spread, precedence and rational control cases for SCI-198 (25 October 2026; no R cross-check).

Slow-binding inhibition: kobs against [I], two step

  • Level: Checked against a reference
  • How it was checked: Slow binding (kobs against [I]): checked against exact rational least squares (Python fractions) for the line and SciPy least_squares for the hyperbola on 13 cases (the exact line and its koff states, a two-step hand case and noisy data, koff and k6 at zero, unit relations, a falling kobs and too few levels refused): kon_app, koff, their standard errors and interval bounds within 1e-9 relative (a standard error at an exact line within 1e-12 of the estimate), k5, Ki_app and k6 within 1e-5 relative (hand values within 1e-9), states exact; R lm, confint and nls agree on all 15 fits (verification set 0.11.0, 13 October 2026). The 0.17.0 supplemental set adds 15 exact-decimal spread, precedence and rational control cases for SCI-198 (25 October 2026; no R cross-check).

Thermal shift: apparent Tm

The melt midpoint per condition by a sigmoid fit and the derivative.

Its result goes through 3 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Kinetic read blocks (Tested, not reference-checked).

Methods

Apparent Tm of a fluorescence melt (sigmoid midpoint and derivative extremum)

  • Level: Checked against a reference
  • Reference: Niesen FH, Berglund H, Vedadi M (2007), Nature Protocols 2:2212–2221 doi:10.1038/nprot.2007.321 PMID 17853878
  • How it was checked: Checked against SciPy curve_fit (trf, bounded) and hand central differences on 13 synthetic melts: Tm within 1e-3 °C, ln k within 1e-4, the derivative extremum exact, refusals and the disagreement flag exact; and 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 (12 October 2026).

Apparent Tm: replicate-well mean and SD, residual lag-1 diagnostic; single-well interval withheld

  • Level: Checked against a reference
  • How it was checked: Checked against SciPy on 7 synthetic melts and 4 replicate groups: replicate means and SDs within 1e-3 °C with n and the wells not counted exact; the residuals' lag-1 r1 within 1e-6. The single-well profile interval is withheld: in 1,000 simulated melts per design it covered the true Tm in 96.5 percent of independent melts, 89.1 percent at AR(1) ρ 0.2, 73.6 percent at ρ 0.5, 33.6 percent at ρ 0.9 and 0.0 percent with a sloping baseline, and the intervals a residual check would let through still undercovered; R not run: the named oracle for these intervals is a SciPy profile with its coverage simulation (13 October 2026).

Kinetic read blocks

  • Level: Tested, not reference-checked
  • Reference: A time or temperature column read with its unit, one series per well, no interpolation across missing reads, reader markers reported and never dropped, temperature kept as metadata; one read (the last, or the read at a chosen time) taken as the endpoint and named.
  • How it was checked: Unit-tested on 4 synthetic kinetic files (a time course as a table, two kinetic block layouts, a melt), every read of every well read back to the value written, missing reads left empty, markers reported and header lines discarded (12 October 2026); no vendor sample file is used.

Screening campaign

Single-point percent inhibition across a set of plates, with Z′ beside each plate and the wells at or above a threshold you type, by percent or by robust z.

Its result goes through 3 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Single-point percent inhibition from each plate's own controls, with Z′ beside the plate (Tested, not reference-checked); Robust z on the plate's sample wells: (x − median) / (1.4826 × MAD), withheld below 16 wells (Tested, not reference-checked); Plate-export profiles (Tested, not reference-checked).

Methods

Single-point percent inhibition from each plate's own controls, with Z′ beside the plate

  • Level: Tested, not reference-checked
  • Reference: Zhang JH, Chung TD, Oldenburg KR (1999), Journal of Biomolecular Screening 4:67–73 (Z′; cited from memory, not re-read)
  • How it was checked: Unit-tested; an independent NumPy and SciPy reference on 9 cases, recorded in the oracle image and published as 0.11.0 (13 October 2026), agrees; R not run.

Robust z on the plate's sample wells: (x − median) / (1.4826 × MAD), withheld below 16 wells

  • Level: Tested, not reference-checked
  • Reference: Malo N, Hanley JA, Cerquozzi S, Pelletier J, Nadon R (2006), Nature Biotechnology 24:167–175 (cited from memory, not re-read)
  • How it was checked: Unit-tested; an independent NumPy and SciPy reference on 9 cases, recorded in the oracle image and published as 0.11.0 (13 October 2026), agrees; R not run.

Plate-export profiles

  • Level: Tested, not reference-checked
  • Reference: Three plate layouts read from the plate block; header metadata discarded; detection shown and confirmed, never silent (brief §4.2, §7).
  • How it was checked: Unit-tested on 8 synthetic plate files (three plate layouts at 96 and 384 wells, with a byte-order mark, UTF-16 and a decimal comma) and 2 tables, every well read back to the value written and every header line discarded (6 October 2026); no vendor sample file is used.

Descriptive statistics

Mean, SD, SEM, median and quartiles for each column, with intervals on the mean and the median and the Shapiro–Wilk test as a description.

Its result goes through 8 methods. The lowest level among them: Checked against a reference.

Methods

Column descriptives

  • Level: Checked against a reference
  • Reference: Hyndman RJ, Fan Y. Am Stat 1996;50:361-365 (quantile definition 7).
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture, each case's text read through the data grid: means, SDs, quantiles and the interval on the mean within 1e-9 relative, withheld states exact (2026-10-13).

t-interval and t-tests (two-sided)

  • Level: Checked against a reference
  • Reference: Student. Biometrika 1908;6:1-25; Welch BL. Biometrika 1947;34:28-35.
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture (t.test, one-sample, Welch, Student and paired): t, df and p within 1e-8 relative, the estimate and its interval within 1e-9; SciPy 1.13.1 agrees on all 179 of the quantities it computes (2026-10-13).

Wilcoxon rank-sum and signed-rank tests, with Hodges–Lehmann estimates

  • Level: Checked against a reference
  • Reference: Wilcoxon F. Biometrics Bull 1945;1:80-83; Mann HB, Whitney DR. Ann Math Stat 1947;18:50-60; Hodges JL, Lehmann EL. Ann Math Stat 1963;34:598-611.
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture (wilcox.test: exact below n = 50 without ties, otherwise the normal approximation with continuity correction): exact p within 1e-10, approximate p within 1e-8 relative, Hodges–Lehmann and its interval within 1e-9; SciPy 1.13.1 agrees on all 179 of the quantities it computes (2026-10-13).

Order-statistic interval on the median

  • Level: Checked against a reference
  • Reference: Conover WJ. Practical nonparametric statistics, 3rd ed. Wiley 1999, section 3.2.
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture (the binomial order-statistic interval): bounds within 1e-9 relative, achieved coverage within 1e-10 (2026-10-13).

Shapiro–Wilk test (Royston AS R94), a description

  • Level: Checked against a reference
  • Reference: Royston P. Appl Stat 1995;44:547-551 (AS R94).
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture (shapiro.test, n from 3 to 5000): W within 1e-7, p within 1e-5 relative; SciPy 1.13.1 agrees on all 179 of the quantities it computes (2026-10-13).

Effect sizes (point estimates)

  • Level: Checked against a reference
  • Reference: Hedges LV. J Educ Stat 1981;6:107-128; Kerby DS. Compr Psychol 2014;3:11.IT.3.1.
  • How it was checked: Checked against R 4.4.3 (stats) on 50 cases of the 0.11.0 fixture: Cohen's d, Hedges' g and d_z within 1e-9 relative, the rank-biserial within 1e-12 (2026-10-13).

Grubbs' test for one candidate per column (two-sided)

  • Level: Checked against a reference
  • Reference: Grubbs FE. Technometrics 1969;11:1-21.
  • How it was checked: Checked against R 4.4.3 (outliers 0.15 grubbs.test for G; the Bonferroni bound min(1, 2n P(T > t)) with car 3.1-5 outlierTest as its cross-check; rstudent on lm for the group frame) on 21 cases: G, t and critical G within 1e-9 relative, p within 1e-8 relative, rows, candidate flags and withheld states exact. The package's folded two-sided p is recorded, not used, where twice the one-sided bound exceeds 1 (2026-10-13).

Externally studentised residuals across groups, Bonferroni-adjusted

  • Level: Checked against a reference
  • Reference: Cook RD, Weisberg S. Residuals and influence in regression. Chapman and Hall 1982.
  • How it was checked: Checked against R 4.4.3 (outliers 0.15 grubbs.test for G; the Bonferroni bound min(1, 2n P(T > t)) with car 3.1-5 outlierTest as its cross-check; rstudent on lm for the group frame) on 21 cases: G, t and critical G within 1e-9 relative, p within 1e-8 relative, rows, candidate flags and withheld states exact. The package's folded two-sided p is recorded, not used, where twice the one-sided bound exceeds 1 (2026-10-13).

Power and sample size

The number of independent replicates a two-sided test needs for a difference you assume, or the power a planned design has.

Its result goes through 1 method. The lowest level among them: Checked against a reference.

Methods

Power and sample size for t-tests, one-way ANOVA and two proportions (two-sided)

  • Level: Checked against a reference
  • Reference: Lenth RV. Appl Stat 1989;38:185-189 (AS 243); Lenth RV. Appl Stat 1987;36:241-244 (AS 226); Frick H. Appl Stat 1990;39:311-312 (AS R84).
  • How it was checked: Checked against R 4.4.3 power.t.test, power.anova.test and power.prop.test (strict = FALSE; n solved at tolerance 1e-10) on 26 cases: 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 nct, ncf and norm agree on all 19 cases with a number (2026-10-13).

Several groups: one factor

Welch's or classical one-way ANOVA with Tukey, Games–Howell, Dunnett, Holm, Šidák or Bonferroni afterwards; Kruskal–Wallis and Dunn as the rank version.

Its result goes through 5 methods. The lowest level among them: Checked against a reference.

Methods

One-way ANOVA: Welch (default) or classical, with η² and ω²

  • Level: Checked against a reference
  • Reference: Welch BL. Biometrika 1951;38:330-336.
  • How it was checked: Checked against R 4.4.3 on 22 cases of the 0.11.0 fixture (oneway.test and aov): F, df and η², ω² within 1e-9 relative, p within 1e-8; Brown–Forsythe F within 1e-9 and Shapiro–Wilk on the residuals within 1e-7 (2026-10-13). R only; SciPy not run.

Tukey–Kramer, Games–Howell, Dunnett, and Holm, Šidák or Bonferroni comparisons

  • Level: Checked against a reference
  • Reference: Tukey JW 1953; Kramer CY. Biometrics 1956;12:307-310; Games PA, Howell JF. J Educ Stat 1976;1:113-125; Dunnett CW. J Am Stat Assoc 1955;50:1096-1121; Holm S. Scand J Stat 1979;6:65-70.
  • How it was checked: Checked against R 4.4.3 on 22 cases of the 0.11.0 fixture: Tukey–Kramer and Games–Howell p within 1e-7 of R's integral of the studentized range (and within 1e-5 of ptukey and TukeyHSD), intervals within 1e-7 of their half-width; Dunnett p within 1e-6 (multcomp 1.4-32); Holm, Šidák and Bonferroni within 1e-8 (2026-10-13). R only; SciPy not run.

Kruskal–Wallis with Dunn's test; Friedman with pairwise signed-rank tests

  • Level: Checked against a reference
  • Reference: Kruskal WH, Wallis WA. J Am Stat Assoc 1952;47:583-621; Dunn OJ. Technometrics 1964;6:241-252; Friedman M. J Am Stat Assoc 1937;32:675-701.
  • How it was checked: Checked against R 4.4.3 on 22 cases of the 0.11.0 fixture (kruskal.test, friedman.test, Dunn written from its definition and the pairwise signed-rank with Holm): statistics within 1e-9 relative, p within 1e-8 (2026-10-13). R only; SciPy not run.

Repeated measures (Greenhouse–Geisser, Huynh–Feldt) and the random-intercept mixed model

  • Level: Checked against a reference
  • Reference: Greenhouse SW, Geisser S. Psychometrika 1959;24:95-112; Huynh H, Feldt LS. J Educ Stat 1976;1:69-82; Laird NM, Ware JH. Biometrics 1982;38:963-974.
  • How it was checked: Checked against R 4.4.3 on 22 cases of the 0.11.0 fixture: the classic F within 1e-9 relative and p within 1e-8, Greenhouse–Geisser and Huynh–Feldt ε within 1e-9 (car 3.1-5); the random-intercept model's F and p within 1e-6 and its means, SEs and variances within 1e-5 (nlme 3.1-167, REML) (2026-10-13). R only; SciPy not run.

Two-way ANOVA with interaction (Type III default, Type II) and simple effects

  • Level: Checked against a reference
  • How it was checked: Checked against R 4.4.3 on 22 cases of the 0.11.0 fixture (car 3.1-5 Anova, Type III with sum contrasts and Type II): sums of squares and F within 1e-9 relative; simple effects as the post-hoc methods (2026-10-13). R only; SciPy not run.

False discovery rate

Adjusted p-values across many tests by Benjamini–Hochberg, with Benjamini–Yekutieli, Holm and Bonferroni by name.

Its result goes through 1 method. The lowest level among them: Checked against a reference.

Methods

Benjamini–Hochberg, Benjamini–Yekutieli, Holm and Bonferroni adjustment

  • Level: Checked against a reference
  • Reference: Benjamini Y, Hochberg Y. J R Stat Soc B 1995;57:289-300; Benjamini Y, Yekutieli D. Ann Stat 2001;29:1165-1188; Holm S. Scand J Stat 1979;6:65-70.
  • How it was checked: Checked against R 4.4.3 p.adjust (BH, BY, Holm, Bonferroni) on 10 cases of the 0.11.0 fixture, up to m = 10,000: adjusted p within 1e-12 relative, counts, m and withheld states exact (2026-10-13). R only; SciPy not run.

Survival curves

Kaplan–Meier curves with numbers at risk, and median survival with its interval.

Its result goes through 4 methods. The lowest level among them: Checked against a reference.

Methods

Kaplan–Meier estimate with Greenwood's variance and a log-log pointwise band

  • Level: Checked against a reference
  • Reference: Kaplan EL, Meier P. J Am Stat Assoc 1958;53:457-481; Greenwood M. Rep Public Health Med Subj 1926;33; Kalbfleisch JD, Prentice RL. The statistical analysis of failure time data, Wiley 1980 (the log-log band).
  • How it was checked: Checked against R 4.4.3 survival 3.8-3 (survfit with the log-log band) on the 34 cases of the 0.11.0 fixture: S(t), its standard error and the band within 1e-10 relative; times, numbers at risk, events, censorings, the risk table, refused rows and withheld states exact. Inside R the risk table equals sum(time ≥ t) on all 61 groups checked (2026-10-13).

Median survival, with its interval from the pointwise band

  • Level: Checked against a reference
  • Reference: The first time the Kaplan–Meier curve reaches 0.5, with the midpoint rule on a flat stretch at 0.5; the interval by inverting the log-log pointwise band (as R's quantile.survfit).
  • How it was checked: Checked against R 4.4.3 survival 3.8-3 (quantile.survfit on the log-log band) on the 33 cases of the 0.11.0 fixture with a curve: the median and its bounds within 1e-10 relative, bounds not reached and withheld states exact (2026-10-13).

Log-rank and Gehan–Breslow–Wilcoxon tests

  • Level: Checked against a reference
  • Reference: Mantel N. Cancer Chemother Rep 1966;50:163-170; Gehan EA. Biometrika 1965;52:203-223; Breslow N. Biometrika 1970;57:579-594.
  • How it was checked: Checked against R 4.4.3 survival 3.8-3 (survdiff with rho = 0; Gehan–Breslow–Wilcoxon weighted by n_j by hand in R) on the 34 cases of the 0.11.0 fixture, 21 with a test (15 log-rank, 6 Gehan–Breslow–Wilcoxon): χ² and the expected counts within 1e-9 relative, p within 1e-8 relative, observed counts, df, the few-events flag and withheld states exact. Inside R, unit weights reproduce survdiff on all 26 cases checked, and the Gehan–Breslow–Wilcoxon score equals n_A·n_B − 2W on the case without censoring (2026-10-13). The 0.17.0 supplemental set adds 14 exact-rational survival cases for SCI-197, including zero-degree-of-freedom refusal and tied-censoring controls (25 October 2026; no R cross-check).

Hazard ratio, one-step log-rank estimate

  • Level: Checked against a reference
  • Reference: exp((O − E)/V) with interval exp((O − E)/V ± z/√V), O, E and V the log-rank's for the second group; consistent with the log-rank test. Assumes proportional hazards.
  • How it was checked: Checked against R 4.4.3 survival 3.8-3 (exp((O − E)/V) from survdiff's observed, expected and variance) on the 34 cases of the 0.11.0 fixture, 18 with an estimate: the hazard ratio and its bounds within 1e-9 relative, the groups compared and withheld states exact. R's coxph (Efron ties) is recorded beside it, not compared (2026-10-13).

Compare proportions

The chi-squared or Fisher's exact test on a table of counts, with the odds ratio, relative risk and risk difference and their intervals.

Its result goes through 4 methods. The lowest level among them: Checked against a reference.

Methods

Chi-squared and Fisher's exact tests on a contingency table

  • Level: Checked against a reference
  • Reference: Pearson K. Philos Mag 1900;50:157-175; Yates F. Suppl J R Stat Soc 1934;1:217-235; Fisher RA. J R Stat Soc 1922;85:87-94.
  • How it was checked: Checked against R 4.4.3 (chisq.test with and without Yates; fisher.test with workspace = 2e8) on 30 cases of the 0.11.0 fixture (28 tables analysed, 2 refused): X², the Yates statistic and their p within 1e-8 relative, Fisher's 2 × 2 p within 1e-8 and r × c p within 1e-6 relative, expected counts within 1e-9 relative, the conditional maximum-likelihood odds ratio and its interval within 1e-8 relative of a transcription of fisher.test's 2 × 2 internals at uniroot tol = 1e-12 (fisher.test's own values recorded beside them); the table, totals, refused cells and withheld states exact (2026-10-13).

Odds ratio, relative risk and risk difference with intervals; row proportions

  • Level: Checked against a reference
  • Reference: Woolf B. Ann Hum Genet 1955;19:251-253; Katz D et al. Biometrics 1978;34:469-474; Newcombe RG. Stat Med 1998;17:873-890 (method 10); Wilson EB. J Am Stat Assoc 1927;22:209-212.
  • How it was checked: Checked against R 4.4.3 (Woolf, Katz and Newcombe's method 10 by hand with qnorm; prop.test for the Wilson limits) on 28 cases of the 0.11.0 fixture (20 two-by-two tables; row proportions on 27): the odds ratio, relative risk, risk difference and proportions with their bounds within 1e-9 relative, withheld states exact. Inside R the Wilson limits by hand agree with prop.test on all 14 tables checked (2026-10-13).

McNemar's test for paired counts (exact and asymptotic)

  • Level: Checked against a reference
  • Reference: McNemar Q. Psychometrika 1947;12:153-157; Fagerland MW, Lydersen S, Laake P. BMC Med Res Methodol 2013;13:91.
  • How it was checked: Checked against R 4.4.3 (binom.test on the discordant pairs; mcnemar.test with and without the continuity correction) on the 7 paired cases of the 0.11.0 fixture: the exact p, both chi-squared statistics with their p, and the paired odds ratio b/c with its Clopper–Pearson limits within 1e-8 relative; a ratio that is not finite and withheld states exact (2026-10-13).

Cochran–Armitage test for trend in proportions

  • Level: Checked against a reference
  • Reference: Cochran WG. Biometrics 1954;10:417-451; Armitage P. Biometrics 1955;11:375-386. The variance with N, as R's prop.trend.test.
  • How it was checked: Checked against R 4.4.3 prop.trend.test on the 5 trend cases of the 0.11.0 fixture (equally spaced and typed scores; two groups and constant scores refused): the statistic and p within 1e-8 relative, the direction and withheld states exact (2026-10-13).

Correlation

Pearson and Spearman correlation between X and Y, with intervals and the scatter plot.

Its result goes through 6 methods. The lowest level among them: Checked against a reference.

Methods

Pearson and Spearman correlation (two-sided)

  • Level: Checked against a reference
  • Reference: Fisher RA. Biometrika 1915;10:507-521 (the z transform); Best DJ, Roberts DE. Appl Stat 1975;24:377-379 (AS 89); Bonett DG, Wright TA. Psychometrika 2000;65:23-28.
  • How it was checked: Checked against R 4.4.3 (cor.test, Pearson and Spearman; Bonett–Wright written in R) on the 26 correlation cases of the 0.11.0 fixture: r, ρ, S and t within 1e-10 relative, t-based p within 1e-8 relative, Edgeworth p within 1e-10 relative, exact p within 1e-12 absolute, Fisher and Bonett–Wright bounds within 1e-9 absolute, Spearman's p path and withheld states exact; SciPy 1.13.1 agrees on all 30 of the quantities it computes. Simulated coverage of the Spearman interval at 95 percent (20,000 replicates per cell): 94.2 to 96.8 percent in all 24 untied cells, inside the 0.93 to 0.97 gate; tied cells fell as low as 45.6 percent, so the interval is withheld with ties; at 90 and 99 percent it is not simulated and is withheld (2026-10-13).

Linear and multiple regression by QR, with pointwise bands

  • Level: Checked against a reference
  • Reference: Golub GH, Van Loan CF. Matrix computations, 4th ed. 2013, §5.2-5.3 (Householder QR); Draper NR, Smith H. Applied regression analysis, 3rd ed. 1998 (lack of fit, pointwise bands).
  • How it was checked: Checked against R 4.4.3 (lm, summary.lm, confint, predict.lm, hatvalues, rstandard, cooks.distance, car 3.1-5 vif and the lack-of-fit anova) on the 27 regression cases of the 0.11.0 fixture (21 simple, 6 multiple; 2 ill-conditioned cases against exact rational least squares): coefficients, standard errors, t, bounds, R², the residual SD, hat values, standardised residuals, Cook's distance, VIF, the bands and the lack-of-fit F within 1e-9 relative, p within 1e-8 relative, refusals, aliased predictors and withheld states exact; SciPy 1.13.1 linregress agrees on all 19 slopes it computes (2026-10-13).

Exponential, two-phase, power, Boltzmann and polynomial fits, with profile intervals

  • Level: Checked against a reference
  • Reference: Bates DM, Watts DG. Nonlinear regression analysis and its applications. Wiley 1988, ch. 6 (profile intervals).
  • How it was checked: Checked against R 4.4.3 nls (port) on the 29 curve cases of the 0.11.0 fixture (exponential growth, one-phase, two-phase, power and Boltzmann; polynomials in exact fractions): residual sums of squares within 1e-8 relative, ln parameters within 1e-6 absolute and the others within 1e-6 × max(|value|, span), noiseless fits within 1e-8, polynomials within 1e-9 relative, profile bounds within 1e-3 in ln or scaled units of a SciPy direct profile, side states and withheld states exact; SciPy 1.13.1 least_squares agrees on all 16 of the residual sums of squares it computes. Simulated coverage of the 95 percent profile intervals cleared on one design per family for growth, one-phase, two-phase, power and Boltzmann (2,000 replicates per family, every one estimable): every quantity covered at least 94.5 percent against a gate of 90 percent, with no side unresolved in the first 100 replicates' full profiles (2026-10-13). Intervals at 90 and 99 percent are not simulated.

ΔAICc across fitted models, extra-sum-of-squares F for nested pairs

  • Level: Checked against a reference
  • Reference: Hurvich CM, Tsai CL. Biometrika 1989;76:297-307 (AICc); Bates DM, Watts DG 1988 (the extra-sum-of-squares F).
  • How it was checked: Checked against R 4.4.3 (anova between nested pairs, AIC, and AICc on the residual-sum-of-squares form) on the 9 comparison cases of the 0.11.0 fixture: the ranking, the parameter counts, the models left out with their reasons, and the F pairs and labels exact; between linear models ΔAICc within 1e-8 absolute, F and p within 1e-8; with a nonlinear model ΔAICc within 1e-4 absolute, F within 1e-5 and p within 1e-4; withheld states exact (2026-10-13). No SciPy cross-check.

Deming regression with jackknife intervals

  • Level: Checked against a reference
  • Reference: Deming WE. Statistical adjustment of data. Wiley 1943; Cornbleet PJ, Gochman N. Clin Chem 1979;25:432-438; Linnet K. Stat Med 1990;9:1463-1473.
  • How it was checked: Checked against R 4.4.3 (the Deming eigen route and the delete-one jackknife) on the 24 method-comparison cases of the 0.11.0 fixture: slope and intercept within 1e-10 (hand cases within 1e-12), the jackknife SE and bounds, decision levels included, within 1e-9, withheld states exact; SciPy 1.13.1 ODR and a NumPy closed form agree on the slope of all 20 Deming fits, 40 comparisons (2026-10-13).

Bland–Altman bias and 95% limits of agreement

  • Level: Checked against a reference
  • Reference: Bland JM, Altman DG. Lancet 1986;i:307-310; Bland JM, Altman DG. Stat Methods Med Res 1999;8:135-160.
  • How it was checked: Checked against R 4.4.3 (mean, sd, qt and qnorm; lm for the proportional line; shapiro.test) on the 24 method-comparison cases of the 0.11.0 fixture: the bias, the SD of the differences, the limits of agreement, their intervals and the proportional slope within 1e-9, withheld states exact (2026-10-13). No SciPy cross-check.

GR metrics: GR50, GRmax and GR_AOC

GR50, GRmax and GR_AOC from cell counts at time zero and at the end, corrected for the untreated cells' division rate.

Its result goes through 2 methods. The lowest level among them: Tested, not reference-checked.

Below the top level: Growth-rate inhibition (GR) metrics (Tested, not reference-checked); Response evidence and reporting policy (Tested, not reference-checked).

Methods

Growth-rate inhibition (GR) metrics

  • Level: Tested, not reference-checked
  • Reference: Hafner M, Niepel M, Chung M, Sorger PK. Growth rate inhibition metrics correct for confounders in measuring sensitivity to cancer drugs. Nat Methods 2016;13:521-527 (cited from memory, not re-read) doi:10.1038/nmeth.3853
  • How it was checked: GR metrics: unit-tested on the hand cases of the published definition (per-well GR to 1e-8; GR50 equal to GEC50 for a cytostatic curve, half of it for GRinf −0.5, 2^−½ of it at hGR 2; GR_AOC 0.75 on four levels); the oracle written from the definition (SciPy curve_fit with the bounds) agrees on 13 cases, GR, GRmax and GR_AOC within 1e-9 and the fitted values within 1e-6 (h within 1e-5) (verification set 0.11.0). Not compared with the GRmetrics package (13 October 2026). R not run (the GRmetrics package is not in the oracle image; SCI-120).

Response evidence and reporting policy

  • Level: Tested, not reference-checked
  • Reference: A two-sided within-plate permutation test of dose-response rank covariance supplies response evidence at p < 0.05; independent exchangeable observations are required. Exact through n=8, otherwise 1999 fixed-seed permutations with plus-one p-value. This is this app’s reporting policy, not biological-activity proof. Sebaugh JL. Guidelines for accurate EC50/IC50 estimation. Pharm Stat 2011;10:128-134 (PMID 22328315; abstract read 6 October 2026): two concentrations beyond each bend point; bend points at IC50 × 4.6805^(±1/|Hill|) (Sebaugh and McCray 2003, value checked by arithmetic; paper not yet read). PMID 22328315
  • How it was checked: Version 2 uses a two-sided within-plate rank permutation test at 0.05 for response evidence, plus numerical, bracketing and plateau checks. Exchangeability is required; this app-specific reporting policy does not establish biological activity. Version 1 F-gate fixtures are archival.

Competition and saturation binding

Kd, Bmax and Ki from binding data for one or two sites, with non-specific binding subtracted or fitted.

Its result goes through 2 methods. The lowest level among them: Checked against a reference.

Methods

Radioligand binding at equilibrium: saturation and competition, one and two sites

  • Level: Checked against a reference
  • How it was checked: Binding (saturation and competition, one and two sites, NS subtracted or fitted): checked against SciPy least_squares on 24 cases (hand cases by both NS routes, noisy triplicates, unit and row-order relations, two sites, competition with Bottom free and fixed, Hill free, refusals): constants within 1e-5 relative (hand values within 1e-9), the residual sum of squares within 1e-6 relative, correlations within 1e-4, interval bounds within 1e-3 in ln with side states exact, the AICc difference within 1e-6, F within 1e-5 and p within 1e-4 relative; R nls and drc agree on all 20 fits. The profile intervals covered 94.6 (Kd) and 94.0 (Bmax) percent with NS fitted and 95.0 percent for IC50 (2,000 replicates each); on the subtracted route they covered about 90 percent and are withheld (verification set 0.11.0, 13 October 2026).

Ki from a one-site competition IC50 (Cheng–Prusoff; Munson–Rodbard where the bound-to-free ratio is entered)

  • Level: Checked against a reference
  • How it was checked: Ki from a one-site IC50: Cheng–Prusoff and Munson–Rodbard checked on hand values within 1e-9, Munson–Rodbard against the exact one-site mass balance at three bound-to-free ratios and equal to Cheng–Prusoff at y0 = 0 (verification set 0.11.0, 13 October 2026).

Combination responses

Each measured dose pair of two agents beside the same-dose single agents, with the percentage-point difference from the HSA and Bliss reference values, cell by cell.

Its result goes through 4 methods. The lowest level among them: Checked against a reference.

Methods

Combination two-endpoint normalisation

  • Level: Checked against a reference
  • How it was checked: Normalisation is checked as part of the combination engine against the independent Python fractions reference: percent and fraction inputs, both declared response directions, raw endpoint controls in both directions, out-of-range readings and control refusals. Observable vehicle, cell and margin means agree within 1e-9 absolute; statuses and reasons are exact. The 39-case reference is stored reference values, recorded 18 October 2026 and published in verification set 0.15.0. Readings outside [0, 1] are retained and flagged, not clipped.

Combination technical replicate arithmetic mean

  • Level: Checked against a reference
  • How it was checked: Technical replicate means are checked as part of the combination engine against the independent Python fractions reference, including unequal technical counts, exclusions and all-excluded combinations. Vehicle, cell and margin means agree within 1e-9 absolute; retained/excluded counts and contributing IDs are exact. The 39-case reference is stored reference values, recorded 18 October 2026 and published in verification set 0.15.0. These are descriptive arithmetic means at exact dose coordinates; no biological-replicate inference or uncertainty interval is supplied.

Highest Single Agent (HSA) combination reference model

  • Level: Checked against a reference
  • Reference: Berenbaum MC (1989), Pharmacol Rev 41:93–140; Greco WR et al. (1995), Pharmacol Rev 47:331–385: HSA excess over the single-agent maximum effect.
  • How it was checked: Highest Single Agent (HSA) reference model: checked against an independent oracle (Python fractions) on 39 cases of the 0.15.0 fixture (hand anchors +14, +30 and -20 pp asserted before writing, empty-margin combinations withheld with margin named, vehicle missing refused, multiple biological replicates refused, out-of-range operands qualified, raw controls and normalisations, metamorphic transposes, duplicate axis levels, off-axis observations, non-finite responses, negative/NaN/underflow doses, > 4,096 observations and undeclared scale/direction refused): expected fractions and percentage points within 1e-9 absolute, statuses, reasons and contributing ID sets exact (verification set 0.15.0, 17 October 2026).

Bliss independence combination reference model

  • Level: Checked against a reference
  • Reference: Bliss CI (1939), Ann Appl Biol 26:585–615: Bliss independence excess for mutually non-exclusive probabilistic effects.
  • How it was checked: Bliss Independence reference model: checked against an independent oracle (Python fractions) on 39 cases of the 0.15.0 fixture (hand anchors 0, +16 and -34 pp asserted before writing, empty-margin combinations withheld with margin named, Bliss undeclared withheld, out-of-range operands withheld, raw controls and normalisations, metamorphic transposes, duplicate axis levels, off-axis observations, non-finite responses, negative/NaN/underflow doses, > 4,096 observations and undeclared scale/direction refused): expected fractions and percentage points within 1e-9 absolute, statuses, reasons and contributing ID sets exact (verification set 0.15.0, 17 October 2026).

Data sources

Limits

Not medical advice. Nothing here is advice about any medicine, treatment or condition, and nothing here is an assessment of any person's variant, sample or molecule. Decisions made with it are yours.

Not a forecast. Stages, scores, rates, rankings and similarities shown here describe records as they stand, or historical averages; they are not a forecast for any molecule, trial, drug, company or target.

  • For research and education only, and not medical advice: a C50 estimated here describes this assay under these conditions and is not a binding constant.
  • The reported C50 is always the four-parameter logistic fit, with any parameter fixable; no five-parameter dose-response fits (standard curves, ELISA among them, are fitted in the Standard curve analysis). A bell-shaped or biphasic curve can be fitted beside it for one curve, for information: it describes the curve's shape over the tested concentrations, does not show two binding sites, two targets or two mechanisms, does not say why the response turns, and reports no interval.
  • The app refuses to fit fewer than four distinct concentrations, treats a concentration of zero as a control, and never extrapolates: a C50 the tested concentrations do not bracket is withheld with the reason.
  • Confidence intervals are profile extra-sum-of-squares by default and Wald as the named alternative, both on log10 C50 and both assuming independent errors of constant variance; relative fits assume SD proportional to response and variance proportional to its square, and have no intervals; a bound not reached within ten log units is not bounded within the search.
  • The relative C50 is the curve's own midpoint; the absolute C50 is where the curve crosses 50 percent of the controls, needs responses on a percent-of-control scale and two concentrations predicted on each side of 50, and is not determinable otherwise.
  • Normalisation uses each plate's own control means, and Z′ uses sample standard deviations: Z′ below 0.5 is an observation against Zhang's convention, not a pass mark, and R² is shown but is not a goodness-of-fit gate.
  • Hill slope comments are observations, not diagnoses.
  • GR metrics correct for the division rate within the assay and assume exponential growth and a readout proportional to cell number; a drug that changes signal per cell biases them, GR below 0 means net cell loss rather than a mechanism, GR_AOC compares only across the same concentration range, and they are not checked against the GRmetrics package.
  • Kinetic read blocks are checked on synthetic files only, not on an instrument's own export. A dose-response fit takes one read per well, the last or the one you choose, named in the method block and paragraph; growth, progress-curve and melt analyses take every read of the wells you name. Reads are never interpolated or filled in; a missing or reader-marked read is left out with the reason; a temperature column beside time is kept as metadata, not corrected for; pre-corrected or dual-wavelength values are not recombined.
  • No ligand efficiency is computed for cell-viability or phenotypic C50s.
  • A batch takes at most 400 curves; a larger import is split before fitting.
  • Plate layouts cover the plain grid and other recognised layouts at 96 and 384 wells; header metadata, including any user name, instrument serial or file path, is read past and discarded, and any other layout is read as a table with units in its headers.
  • Your plate data are not placed in links: an assay is kept in this browser as an object and in the session file you export, and a shared link carries the view and fit settings only.
  • Literature potencies are links to ChEMBL, never rows in the app or its exports.
  • No offline use: the pages are served by the site, and nothing is installed.
  • Version 2 intervals are unavailable for relative IRLS and numerically zero-residual fits. Unweighted intervals condition on normalised observations and omit uncertainty shared through estimated control means. Permutation response evidence assumes exchangeability within plate; technical wells are not biological replicates. Relative IRLS requires positive observed responses and positive fitted predictions throughout; nonpositive responses are refused rather than offset or silently excluded. This is an app domain restriction, not a requirement of all constant-CV estimators.
  • A compound known only by its label stays in the assay's data; its C50 is written on the target only when the assay names one, and a structure (a SMILES column, or a compound sent from the molecule app) is what lets a value sit on the compound itself.
  • Reopening an assay under a newer engine version recomputes only on request and shows the differences against the stored results; the stored results stay until you refit.
  • Reads a plate export or table up to 4.1 MB and opens a project file up to 50.0 MB; a larger file is refused, not cut.
  • The figure is edited through its settings: text, reference lines, shaded ranges and arrows are anchored to data values, never placed or drawn by hand, at most 50 on a figure; a saved figure style is kept in this browser on this device.
  • A negative result is a statement about the test, not the compound: no monotonic trend at p < 0.05 within plates; offered only where the design could have reached p < 0.05; no power calculation.