How this works
The ΔΔCt method (also called the Livak method, after the 2001 paper by Livak & Schmittgen) is the standard way to turn raw qPCR Ct values into a fold change between two conditions. Ct (the cycle threshold) is the amplification cycle at which a sample's fluorescence crosses a threshold above background — lower Ct means more starting template, because amplification reached threshold sooner. A one-cycle Ct difference corresponds to roughly a two-fold difference in starting amount, because each PCR cycle approximately doubles the product. ΔΔCt rolls four Ct values — target gene and reference (housekeeping) gene, in treatment and control samples — into a single relative-expression number.
The formula has three steps. First, ΔCt for each condition: subtract the reference-gene Ct from the target-gene Ct, separately for treatment and control. This normalises out sample-loading and reverse-transcription efficiency differences, on the assumption that the reference gene is expressed at constant levels regardless of treatment. Second, ΔΔCt: subtract the control ΔCt from the treatment ΔCt — this removes the baseline, leaving only the treatment-induced change. Third, fold change = 2^(−ΔΔCt). The minus sign matters: a lower Ct means more expression, so a negative ΔΔCt (treatment expresses earlier than control) corresponds to a fold change greater than 1 (upregulation). A positive ΔΔCt corresponds to a fold change less than 1 (downregulation). A ΔΔCt of zero gives 2^0 = 1, i.e. no change.
A few practical points. (1) The 2^(−ΔΔCt) formula assumes amplification efficiency is exactly 100% (the product doubles every cycle) for both target and reference. In practice efficiencies are usually 90-105%; if your validation shows a meaningful gap between the two, the Pfaffl method gives a more accurate fold change by using the actual efficiencies of each primer pair. The calculator above is the simple Livak version — fine for most discovery-phase work, less appropriate for tightly-quantitative publications where efficiencies have been measured. (2) Always run technical replicates (typically triplicates) and average them before plugging Ct into this calculator. A single Ct measurement has enough machine noise that one outlier in a triplicate can shift fold change by 30%. (3) The "fold change" number is descriptive, not a statistical test — to claim a real difference you also need biological replicates and a t-test or equivalent on the ΔCt values.
The formula
Ct values come straight from your qPCR machine — average the technical replicates (usually triplicates) for each well before entering them. The "target" gene is whatever you're measuring; the "reference" (or housekeeping) gene is one believed to be expressed at constant levels regardless of treatment, used to normalise out loading and RT-efficiency differences. Common reference genes include GAPDH, β-actin, 18S rRNA and HPRT — pick one that's been validated stable in your tissue/treatment combination. The 2^(−ΔΔCt) result is dimensionless and represents the ratio of target expression in treatment relative to control.
Example calculation
- Ct values: target/treatment 22.5, reference/treatment 18.0, target/control 24.0, reference/control 18.2.
- ΔCt(treatment) = 22.5 − 18.0 = 4.5; ΔCt(control) = 24.0 − 18.2 = 5.8.
- ΔΔCt = 4.5 − 5.8 = −1.3.
- Fold change = 2^(−(−1.3)) = 2^1.3 ≈ 2.46× — the target gene is upregulated about 2.5-fold under treatment.
Frequently asked questions
What does a fold change of 1, 2 or 0.5 actually mean?
Fold change is a ratio of expression in treatment to control. A fold change of 1 means no change — the treatment expresses the gene at the same level as the control. A fold change of 2 means the gene is expressed twice as much under treatment as in control (often called "2-fold upregulated"). A fold change of 0.5 means the gene is expressed at half the control level — equivalent to "2-fold downregulated", because 1/0.5 = 2. By convention, papers usually report upregulation as positive (e.g. "+2-fold") and downregulation either as the fraction (0.5) or as the inverted ratio with a minus (e.g. "−2-fold"). Be consistent within a figure. As a rough rule of thumb in many systems, a fold change between roughly 0.7 and 1.4 is generally considered noise; anything more extreme is at least worth a closer look, but the threshold for "biologically meaningful" depends entirely on what you're measuring and how variable your replicates are.
Should I use the Livak (ΔΔCt) method or the Pfaffl method?
Use Livak (this calculator) when you have validated that target and reference primers amplify with similar efficiencies — typically anywhere from 90 to 110%, and within ~5 percentage points of each other. The 2^(−ΔΔCt) formula assumes both efficiencies are exactly 100%; when they're close, the error from this assumption is small and Livak is the simpler, more widely-cited method. Use Pfaffl when efficiencies differ enough to matter — say target is 95% and reference is 105% — because Pfaffl puts the actual measured efficiencies into the formula: ratio = (E_target)^(−ΔCt_target) / (E_ref)^(−ΔCt_ref). For most discovery-phase qPCR work the difference between Livak and Pfaffl is well below the noise of biological replication, and Livak is fine. For tightly-quantitative publications, especially those reporting small fold changes (<2-fold), measure the efficiencies and use Pfaffl.
How do I pick the right reference (housekeeping) gene?
The reference gene's only job is to be expressed at constant levels regardless of treatment, tissue or experimental condition — that's the assumption ΔΔCt rests on. The classic candidates (GAPDH, β-actin, 18S rRNA, HPRT, B2M, TBP, GUSB) all work in some contexts and fail badly in others. GAPDH and β-actin are commonly used by reflex but are notoriously variable in cancer, hypoxia, glucose-stress and developmental contexts. The defensible approach is to validate at least 2-3 candidates in your specific tissue/treatment combination using a tool like geNorm or NormFinder, which rank genes by stability across your samples; pick the most stable one (or the geometric mean of the top 2-3). For exploratory work where you can't justify a full validation, lean on the published literature for your tissue type — there are usually 1-2 reference genes considered "least bad" for a given system. Whatever you choose, report it explicitly; reviewers ask.
My Ct values are all over the place — what counts as a "good" Ct?
Roughly: Ct between 15 and 30 is the comfortable working range; 30-35 is acceptable but noisy; above 35 the signal is barely above background and individual replicates can vary by a full Ct (which is a 2-fold error in starting amount). Within a single triplicate, the spread of Ct values should be under about 0.5 cycles for a reliable measurement — bigger than that and you should re-run the well, suspect a pipetting issue, or check whether one of the wells failed. If your treatment Ct is in the 35+ range, you're measuring at the edge of detection and even a real biological effect may not show through the noise. Possible fixes (in order): use more starting RNA, use a more sensitive primer set, switch to a target with higher baseline expression, or pool samples if biology allows. If the reference gene is also high-Ct, you have a degraded sample or low input — fix the upstream prep before trusting any fold change.