Blog
Back to Blog

Your Housekeeping Gene Ct Value Changes Between Tissues — Now What?

If your housekeeping gene Ct value jumps from 18 in liver to 24 in brain, you don't have a normalizer — you have another variable. That 6-Ct difference represents a ~64-fold difference in expression, and every fold-change calculation you derive from it will be distorted. This is one of the most common and most silently damaging problems in qPCR, because nothing in the run itself flags it. Your amplification curves look fine, your melt curves are clean, and your data exports without errors. The damage only shows up in your results as target genes that appear artificially up- or down-regulated depending on which tissue you're comparing.

The fix isn't complicated, but it requires you to actually validate your reference genes across your specific tissue panel before committing to a normalization strategy. If you've already collected data with a drifting reference gene, there are still options — including post-hoc correction with multiple reference genes and the Pfaffl method. Below, I'll walk through why this happens, how to quantify the problem, and what to do about it both prospectively and retrospectively.

Why "Housekeeping" Genes Aren't Housekeeping Across Tissues

The term "housekeeping gene" implies constitutive, invariant expression. In reality, no gene meets that standard across all tissues, treatments, and developmental stages. GAPDH is the classic offender — it's involved in glycolysis, so its expression scales with metabolic activity. Liver, which is metabolically hyperactive, routinely gives GAPDH Ct values of 15–18. Skeletal muscle at rest might come in at 20–22. Brain tissue, depending on region and dissection quality, often lands at 22–25. These are real numbers from real experiments, and they mean your "constant" is anything but.

ACTB has similar issues: it's highly expressed in muscle-rich tissues and significantly lower in adipose or certain epithelial tissues. 18S rRNA is abundant enough to be relatively stable in Ct across tissues (often Ct 8–12), but its sheer abundance creates its own problems — it overwhelms cDNA synthesis, it doesn't reflect mRNA pool dynamics, and a 1-Ct shift at Ct 10 is still a 2-fold change you might dismiss as noise.

This isn't a new observation. Vandesompele et al. (2002) showed that using a single, unvalidated reference gene leads to up to 6-fold errors in normalized expression, and that was using relatively homogeneous sample sets. Across tissues, the errors compound.

How to Quantify Reference Gene Stability

Before you run your actual experiment across tissues, you need a reference gene validation step. This means running a panel of candidate reference genes — typically 5–8 — across your tissue types, with 3+ biological replicates per tissue. Common candidates include GAPDH, ACTB, B2M, HPRT1, TBP, YWHAZ, RPL13A, PPIA, and SDHA.

There are three widely used algorithms to rank stability:

  1. geNorm (Vandesompele et al., 2002) — calculates a stability value M by iteratively removing the least stable gene. Genes with M < 0.5 are considered stable for homogeneous samples; M < 1.0 is acceptable for heterogeneous tissue panels. It also tells you how many reference genes you need via pairwise variation (V) analysis — if V2/3 < 0.15, two reference genes suffice.

  2. NormFinder (Andersen et al., 2004) — uses a model-based approach that accounts for inter-group variation. It's better than geNorm at handling structured experiments (e.g., treatment vs. control across tissues) because it penalizes genes that vary systematically between groups.

  3. BestKeeper (Pfaffl et al., 2004) — works directly on raw Ct values rather than relative quantities, calculating the standard deviation of Ct across samples. Genes with SD > 1.0 Ct across your tissue panel should be excluded.

In practice, I run all three and look for consensus. If HPRT1 and TBP rank in the top 3 across all algorithms but GAPDH falls in the bottom half, you have your answer. Drop GAPDH.

A worked example: say you're comparing kidney, liver, heart, and lung in mouse. You run 6 candidate reference genes across 4 tissues × 4 biological replicates. Your raw Ct data might look like this:

Gene Kidney (mean Ct) Liver Heart Lung SD across tissues
GAPDH 19.2 16.1 18.8 20.4 1.79
ACTB 17.5 18.9 15.2 19.1 1.66
HPRT1 24.1 24.5 24.8 24.3 0.30
TBP 27.3 27.0 27.8 27.1 0.35
B2M 18.4 17.1 19.6 18.0 1.03
PPIA 20.2 20.5 20.0 20.8 0.34

Here, HPRT1, TBP, and PPIA have cross-tissue SDs under 0.5 Ct. Those are your candidates. GAPDH and ACTB, despite being the defaults on every pre-designed plate, are the worst choices for this tissue panel.

What If You've Already Collected Data with an Unstable Reference Gene?

This is the situation nobody wants to be in, but plenty of people are. You've run 200 samples across 4 tissues with GAPDH as your sole normalizer, and now you realize the Ct values drift by 3–4 across tissue types. Options:

Option 1: Add reference genes retroactively. If you still have cDNA left, run 2–3 additional candidate reference genes on your existing samples. If at least two of them are stable (check with geNorm/NormFinder), you can re-normalize using the geometric mean of the stable references. This is the best-case fix.

Option 2: Use the Pfaffl correction with efficiency adjustments. If your target gene and your reference gene have different amplification efficiencies — which they almost certainly do — use the Pfaffl method (Pfaffl, 2001) rather than the Livak 2^−ΔΔCt method. The Pfaffl formula:

Ratio = (E_target)^ΔCt_target / (E_ref)^ΔCt_ref

This won't fix a fundamentally unstable reference gene, but it at least prevents efficiency mismatches from compounding the error.

Option 3: Acknowledge the limitation. If you can't re-run anything and you only have one unstable reference gene, you can still present the data — but you need to show the raw Ct values for both the target and reference across tissues, note the instability, and restrict your quantitative claims. A reviewer will be more forgiving of transparent limitations than of normalized fold-changes built on a shaky foundation.

Option 4: Within-tissue comparisons only. If your experimental design includes treatment vs. control within each tissue, you may still be fine. The reference gene instability is a problem for cross-tissue comparisons. If GAPDH is at Ct 16 in all your liver samples (treated and untreated) and Ct 22 in all your brain samples, your within-liver and within-brain ΔΔCt calculations are still valid. You just can't compare the liver fold-change to the brain fold-change on the same scale.

Practical Recommendations for Multi-Tissue Studies

Plan ahead. Budget one qPCR plate and one afternoon for reference gene validation before your main experiment. Use pre-designed primer panels — IDT, Bio-Rad, and Qiagen all sell reference gene panels for human, mouse, and rat — or design primers yourself against the candidates listed above. Run them with the same master mix you'll use for the experiment (PowerUp SYBR, Luna Universal, whatever it is). Primer concentration at 200–400 nM, annealing at 60°C, and standard cycling.

Use at least two validated reference genes. Normalize to their geometric mean. This is the MIQE guideline (Bustin et al., 2009), and it's one of those recommendations that actually matters in practice. A single reference gene, even a stable one, introduces more noise than the geometric mean of two.

Accept that higher Ct reference genes are fine. People avoid TBP because it comes in at Ct 27–28, which feels "too high." It's not. As long as your NTC is clean (Ct >35 or undetermined) and your replicate SD is <0.5 Ct, a Ct of 27 is perfectly usable for normalization. What matters is stability across your conditions, not absolute abundance.

Watch for batch effects masquerading as tissue effects. If you extracted RNA from liver on Monday and brain on Thursday, any shift in reverse transcription efficiency or RNA quality between batches could look like reference gene instability. Randomize your extractions across tissues, or at minimum include cross-batch controls.

If you're running multi-tissue comparisons and want to check reference gene stability without setting up a spreadsheet from scratch, VoilaPCR flags Ct drift in your reference genes automatically across sample groups and warns you when normalization assumptions may not hold.

The bottom line: a reference gene that works beautifully in one tissue can be the worst choice across tissues. Validate before you commit, use at least two stable normalizers, and if GAPDH doesn't make the cut — let it go.