Normalising plate readings: methods and when to use them

From percent-of-control to Z-score: a practical guide to removing plate-to-plate variation without removing your signal

Why normalisation is necessary

Raw signal values such as OD, RFU, and RLU are not comparable between plates. Differences in reagent batch, cell passage number, incubation time, and reader lamp intensity all shift the absolute scale. Normalisation anchors each plate to its own internal controls, making values comparable across time, plates, and experiments.

Normalisation removes systematic between-plate variation. It does not remove within-plate spatial effects or biological noise. Address those separately with layout design and replication.

Percent of control (POC)

The simplest and most widely used method. Each well is expressed as a percentage of the control mean on its plate.

POC = (Signalwell / Meancontrol) × 100

A value of 100 means the well looks like your control; lower values mean reduced signal relative to it.

VariantFormulaBest when
Percent of control(S / μ₋) × 100Measuring activation or induction
Percent effect((μ₋ − S) / (μ₋ − μ₊)) × 100Measuring effect; scales 0–100

Z-score normalisation

Z-score expresses each well as the number of standard deviations from the plate mean. It is computed from the whole-plate population rather than dedicated control wells, so it works when you have no clean controls, but it assumes most wells are inactive and is sensitive to outliers and skewed distributions, which is exactly why the robust variant below exists.

Z = (Signalwell − Meanplate) / SDplate

Z-score normalisation is sensitive to outliers: a single extreme well shifts the mean and inflates the SD, making everything else look closer to zero. Consider robust Z-score (using median and MAD) for screens with expected high hit rates.

Robust Z-score

Replaces mean with median and SD with median absolute deviation (MAD). Much less sensitive to outliers and preferred for primary screens where you do not know hit rate in advance.

Robust Z = (Signalwell − Medianplate) / (1.4826 × MADplate)

The 1.4826 scaling factor makes MAD comparable to SD under a normal distribution.

B-score

B-score corrects for row and column effects simultaneously using a median polish algorithm. It is more complex to compute but significantly outperforms POC and Z-score when systematic spatial gradients are present.

MethodHandles spatial effectsRequires controlsBest for
POCNoYesSimple assays with clean controls
Z-scoreNoNoGeneral use, symmetric distributions
Robust Z-scoreNoNoScreens with unknown hit rate
B-scoreYesNoAssays with strong row/column gradients

Choosing a method

Start with percent inhibition if your assay has reliable controls. Switch to robust Z-score if control variability is high or hit rate is uncertain. Apply B-score only when spatial diagnostics (a heatmap of raw values) show clear row or column gradients.

The same raw plate, normalised five ways. Notice that only B-score flattens the row/column gradient, and that robust Z is the one that tames the outlier well:

ABCDEFGH123456789101112
Raw
1.021.542.06
a.u.

Raw signal: a clear top-to-bottom and edge gradient, plus one hot outlier well (C8).

Platelet applies normalisation in the Data Cleaning tab and shows before/after heatmaps so you can verify the effect on your plate visually before committing to analysis.

Ready to run this analysis on your own data?