Built by a UPenn bioengineering PhD

Plate reads to publishable figures.

Upload a CSV. Gradiance picks the right model, fits the curve, and exports a figure with the Python script and audit trail attached.

No template requiredResults match SciPy exactlyEvery fit ships with its code

Live · 4PL fit
n = 19R² = 0.998
0.111010010000255075100[Concentration] · nM (log₁₀)Response · %IC₅₀1.04 nMRun #4127 · sample_03.csv
Top
96.6%
Bottom
5.9%
Hill
1.10
95% CI
0.91 – 1.19
· IC₅₀ ·· EC₅₀ ·· Dose-response ·· ELISA standard curves ·· qPCR ΔΔCt ·· Michaelis-Menten ·· Saturation binding ·· Cell viability ·· Audit trail ·· Reproducible ·· GraphPad alternative ·
· IC₅₀ ·· EC₅₀ ·· Dose-response ·· ELISA standard curves ·· qPCR ΔΔCt ·· Michaelis-Menten ·· Saturation binding ·· Cell viability ·· Audit trail ·· Reproducible ·· GraphPad alternative ·

Numbers that match the paper.

We re-ran a public xanthine-oxidase study through Gradiance. Every parameter lands within 1.5% of the paper, and an independent scipy.optimize.curve_fit reproduces our values to four decimal places.

Source data: Li et al., Zenodo 10.5281/zenodo.19378973

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%
Allopurinol dose-response 4PL fit
Allopurinol · 4PL
Xanthine oxidase Michaelis-Menten fit
XO Michaelis-Menten
ELISA linear standard curve
ELISA standard curve
qPCR ΔΔCt fold-change
qPCR · ΔΔCt

Less time on plates, more on the science.

<5
min
per assay

Median time from CSV to a labeled figure. No templates, no macros.

0.0%
Δ
vs published

Every parameter from a re-run xanthine-oxidase study lands within this of the paper.

0%
trace
every result

Every fit links to the rows, the model, and a script that re-runs it.

Four steps.
That's the whole app.

Drop, confirm, fit, ship. No templates, no SOPs.

  1. 01
    Upload your CSV

    Excel, TSV, or CSV. No template required.

  2. 02
    Confirm the mapping

    Controls, standards, doses, and replicates auto-detected. Override in one screen.

  3. 03
    Fit the right model

    4PL, 5PL, linear, Michaelis-Menten. Confidence intervals included.

  4. 04
    Export anything

    PNG, SVG, PDF, CSV, audit report, Python script.

The figure. The data. The receipts.

Every fit ships with CIs, R², the equation, the raw wells, and a Python re-run. Paste it straight into a supplementary.

allopurinol_dose_response.pngpng · 300 dpi
Allopurinol dose-response figure
Model
4-parameter logistic (4PL)
Equation
y = bottom + (top − bottom) / (1 + (x/IC₅₀)^h)
Fitted parameters
IC₅₀ 2.46 µg/mL · Hill 1.11
Confidence
95% CI 2.31 – 2.61 · R² 1.000

Six categories. Plus anything else.

Organized around what you're measuring. A freestyle agent covers anything the named workflows don't.

How much

Quantification

Standard curves, sandwich ELISA, BCA/Bradford protein, endpoint titer ELISA. Back-calculated unknowns with limits of detection.

How active

Potency & dose response

4PL/5PL fits for IC₅₀, EC₅₀, CC₅₀, and NT₅₀. Hill slope, asymptotes, selectivity index. Non-linear regression with CIs on every parameter.

How much transcript

Gene expression

qPCR ΔΔCt with reference-gene normalization, absolute quantification from a Ct-vs-log(copies) curve, and PCR efficiency.

Over time

Kinetics

Michaelis-Menten (Km, Vmax), bacterial/cell growth curves (doubling time, lag), kinetic ELISA initial-slope analysis.

How healthy

Cell-based

Viability % vs untreated controls (MTT, MTS, AlamarBlue, CellTiter-Glo). CFU counts with dilution-factor and plating-volume math.

How tight

Binding & affinity

Saturation binding to fit Kd and Bmax with a one-site model. Cheng-Prusoff Ki conversion from competition displacement curves.

Custom · freestyle agent

For the long tail. Describe the experiment in your own words and the agent picks the right model, fits it, and shows its work with the same audit trail as a named workflow.

AI-driven · audited · re-runnable

Every well, accounted for.

Chain of custody from raw CSV to published figure. No silent transforms.

chain of custody · run #4127
  1. in
    sample_03.csv
    raw plate read · 96 wells
  2. fit
    4PL fit
    scipy.optimize · 19 dose points
  3. ci
    95% CI
    covariance-based · 4 params
  4. ver
    frozen_inputs.json
    sha 4e8c…b9 · 1.2 KB
  5. out
    report_01.pdf
    fig + audit + .py rerun

Reproducible by design

Every result ships with a Python script. Re-run next year, get the same fit.

Statistically honest

Confidence intervals on every parameter. R² in every caption.

Reviewer-ready exports

PDFs include method, parameters, data, and trace. Paste into the supplementary.

Every lab deserves a reproducible workflow it can still trust a year from now.
Founder · UPenn bioengineering PhD

Free to start, and affordable as you grow.

Three runs a month, free forever, no card. When you need more, Pro is billed by the week you're actually at the bench.

Run it in Gradiance.

Drop a CSV. Get a publishable figure. No card required.

We don't sell data
Audit trail built in
Open methodology