qPCR replicates and statistics: from counting n to error bars

About 7 min read · Updated 2026-09-30

Before you put a p-value on qPCR data, check two things: is n an independent experimental unit, and on which scale did you run the statistics?

Try it with the tool

Load several files and each plate is normalized to its own control, then combined with Welch’s t-test and error bars.

Open the qPCR tool →

1. Technical vs biological replicates

TypeWhat it isWhat it captures
TechnicalThe same cDNA in several wellsPipetting and instrument noise; average to one value per sample
BiologicalIndependently grown cells, different animals, different daysReal biological variation — the n for statistics

RNA from one dish measured in three wells is n = 1, not n = 3. Publications usually need at least three biological replicates.

Technical vs biological replicatesBiological replicates: 3 independent cultures/animalsSample 13 technical wells24.124.324.2mean 24.2Sample 23 technical wells23.623.823.7mean 23.7Sample 33 technical wells24.524.424.6mean 24.5→ Use only these 3 values in the test (n = 3, not 9 wells)
In statistics, n is the number of biological replicates (3 here). Average each sample's three wells (technical replicates) into one value first. Treating 9 wells as n = 9 makes the p-value misleadingly small.

2. Test on the log scale

Fold change is asymmetric (a 2-fold increase and a 2-fold decrease are 2 and 0.5). Run t-tests on ΔCt or log2 fold change (= −ΔΔCt), which are closer to normal and treat increases and decreases symmetrically.

Linear vs log scaleLinear scale (fold change)00.5124halfdoublelog₂ scale−2 (0.25)−1 (0.5)0 (1)+1 (2)+2 (4)halfdouble
Half (0.5×) and double (2×) are changes of equal size, yet on a linear scale their distances from 1 look different (0.5 vs 1). On a log2 scale they become −1 and +1 — symmetric, so means and tests are accurate.

3. Which test

4. Error bars: SD vs SEM

Either way, state it in the legend, e.g. “mean ± SD, n = 3”, and ideally plot individual values as dots.

5. Combining plates

Experiments on different days shift overall Ct slightly. Normalize each plate to its own control (= 1) before combining and most of that shift disappears — so always run the control on every plate.

Load several files and each plate is normalized to its own control, then combined with Welch’s t-test and error bars.

Open the qPCR tool →