Workflows
Cell-based Assays
Viability assays (MTT/MTS/AlamarBlue/CTG) and CFU plate counts
Two cell-based workflows in Gradiance: a viability assay that normalizes a colorimetric or luminescent readout against controls, and a colony-forming-unit count that turns observed colonies into CFU/mL with the right dilution and plating math.
Cell Viability
What it does
Computes percent viability for every treated well, normalized to untreated control wells. Works for any readout where signal scales with live-cell number: MTT, MTS, XTT, AlamarBlue (resazurin), CellTiter-Glo, WST-1.
Background-subtracts media-only wells before normalization. If your readout has a known maximum (e.g. 100% kill control), the agent will use that to bound viability between 0 and 100%; if not, percentages are reported relative to the untreated mean without forcing a ceiling.
What you need
- Untreated / vehicle controls. Three or more wells per plate. These set 100% viability.
- Background / media-only wells. Subtracted from everything before normalization. Two or three wells per plate is enough.
- Treated wells with whatever conditions you want to compare. If a dose column is present, the agent will also fit a CC₅₀ dose-response automatically — see Dose-Response.
What you get
- Percent viability per well and per condition, with mean and SD.
- Optional dose-response fit and CC₅₀ when a dose column is present.
- Pairwise significance testing across conditions when replicates allow it.
Common gotchas
- Compound interference. Many drugs are themselves colored or fluorescent. Run a no-cell + compound well and subtract the signal — otherwise you will measure drug, not viability.
- Plate-edge effects. Edge wells often evaporate faster and read differently than the middle. If your control wells are all on one edge, normalize per row or per plate region rather than to a global mean.
- Saturation. CellTiter-Glo and similar luminescent readouts can saturate the detector at high cell density. If your untreated wells are at the top of the dynamic range, you can't see further increase — only decrease.
CFU / Plate Counts
What it does
Converts colony counts at one or more dilutions into CFU/mL, applying the dilution factor and plating volume. Reports the countable plate (typically 30–300 colonies) and flags plates outside that range.
The math
CFU/mL = (colonies counted) / (plating volume in mL * dilution factor)For a serial dilution, Gradiance picks the most-countable plate (closest to the 30–300 range) for the headline number and cross-checks against the others. Wide disagreement across dilutions flags pipetting or dilution errors.
What you need
One row per plate, with:
- The dilution factor (e.g. 10⁻³, 10⁻⁴)
- Plating volume in mL (typically 0.1 or 0.5)
- Observed colony count
- (Optional) sample identifier if you have multiple cultures
Sample,Dilution,Volume_mL,Colonies
A,1e-3,0.1,TNTC
A,1e-4,0.1,287
A,1e-5,0.1,32
B,1e-4,0.1,156
B,1e-5,0.1,18TNTC (too numerous to count) and 0 are recognized as plate-out-of-range and excluded from the headline number, but kept in the audit trail.
QC specific to CFU
- Outside countable range. Plates with
< 30or> 300colonies are flagged. They're still computable; they're just less accurate. - Inter-dilution disagreement. If the CFU/mL computed from each dilution differs by more than 2-fold, your dilution series wasn't consistent. Re-plate.
- Single countable plate. When only one dilution lands in 30–300, you have no internal cross-check. The fit proceeds; the reported value just lacks redundancy.
What the result looks like
Viability runs return percent viability per condition with mean, SD, and (when applicable) a CC₅₀ fit. CFU runs return CFU/mL per sample with a chosen dilution and a cross-check table. Both export to PNG/SVG/PDF, CSV, and a standalone Python script. See Understanding your results for reading the result panel.