Reference
Statistical Methods
Gradiance uses industry-standard algorithms to ensure your results are accurate, reproducible, and publication-ready.
Non-linear regression
For dose-response analysis, we utilize the Levenberg-Marquardt algorithm for iterative non-linear least squares minimization. This is the gold standard for fitting 4PL and 5PL models.
The 4PL Equation
Y = Bottom + (Top - Bottom) / (1 + 10^((LogIC50 - X) * HillSlope))
Where X is the log of concentration, Y is the response, and HillSlope describes the steepness of the curve.
Weighting
Biological data often exhibits heteroscedasticity (variance increases with signal). Gradiance supports 1/Y² weighting to correctly prioritize lower-signal data points, which is crucial for accurate IC₅₀ determination in many assays.
Outlier handling
Points whose residuals exceed a configurable studentized threshold are flagged on the result panel (rendered as a red ×) and listed in the QC section, but they are not silently removed from the fit. Excluding a point requires an explicit instruction (“exclude the 100 µM replicate”), at which point the agent refits and re-emits a result that records the exclusion in the audit trail. We picked this pattern deliberately: an automatic drop changes the headline number without leaving an obvious receipt, and silent outlier rejection in published curves is a known source of irreproducibility.
Confidence intervals
For non-linear fits, 95% CIs come from the covariance matrix returned by scipy.optimize.curve_fit, scaled by the t-statistic at α = 0.05 with the degrees of freedom of the residuals. For parameters fitted in log space (e.g. logIC₅₀), CIs are computed in fit space and back-transformed to the reported scale, which preserves asymmetry on the linear axis.
Other estimators in the pipeline
- Cheng-Prusoff — converts the IC₅₀ of a competition curve to Ki using the radioligand concentration and previously-determined Kd.
- Spearman-Kärber — TCID₅₀ from fraction-positive viral dilution series; ships behind the freestyle workflow as
calc_tcid50. - 2−ΔΔCt — relative qPCR fold-change with reference-gene normalization. ANOVA + Tukey HSD on ΔCt for >2 conditions; t-test on ΔCt for two.
- Logistic / Gompertz — growth-curve parameter estimation; Vmax / Km from a non-linear Michaelis-Menten fit (the linearized Lineweaver-Burk and Eadie-Hofstee plots are produced as diagnostics, never as estimators).
IC₅₀: relative vs absolute
The IC50 parameter in a 4PL fit is, by convention, the relative IC₅₀: the concentration at the midpoint between the fitted top and bottom asymptotes. When a curve's lower asymptote sits well above zero (e.g. when the lowest doses already produce meaningful inhibition), this differs from the absolute IC₅₀ that most papers and regulatory submissions report, namely the concentration where response actually crosses 50 %.
Gradiance reports the absolute IC₅₀ as the headline whenever the two diverge by >10 %, computed by linear interpolation in log-concentration space on the raw data, and surfaces the relative IC₅₀ alongside as a secondary parameter with an explanatory note.
Validation against published data
We re-ran the dose-response, enzyme-kinetics, and standard-curve datasets from a peer-reviewed 2026 xanthine-oxidase study (Li et al., Zenodo 10.5281/zenodo.19378973) end-to-end through Gradiance and compared against both the published values and an independent scipy fit:
| Assay | Parameter | Paper | Gradiance | Δ |
|---|---|---|---|---|
| Allopurinol IC₅₀ | IC₅₀ (µg/mL) | 2.47 | 2.46 | 0.4 % |
| Alcalase YFP IC₅₀ | IC₅₀ (mg/mL) | 0.60 | 0.59 | 1.4 % |
| SRGQIEEL IC₅₀ | IC₅₀ (µg/mL) | 180 | 178.4 | 0.9 % |
| XO Michaelis–Menten | Vmax (µM/min) | 6.112 | 6.137 | 0.4 % |
| XO Michaelis–Menten | Km (µM) | 9.915 | 10.04 | 1.3 % |
Every fit matched scipy.optimize.curve_fit to four decimal places, and matched the paper to within ~1.4 %.



