STEP 1 / 14

qPCR / RT-qPCR 定量

從 Cq 值到生物學意義——理解 PCR 效率、ΔΔCt 法與 2025 年最新的 MIQE 2.0 規範。

From Cq values to biological meaning — master PCR efficiency, the ΔΔCt method, and the 2025 MIQE 2.0 guidelines.

為什麼 qPCR 看似簡單卻最常出錯?

即時定量 PCR (qPCR) 是分子生物學最常用的核酸定量工具,但 MIQE 作者群在 2009 年指出,文獻中超過半數的 qPCR 報告缺少基本資訊(如 PCR 效率、reference gene 驗證),導致結果不可重現。16 年後 MIQE 2.0 (Bustin et al. 2025, Clin Chem) 首度大改版,新增 LOD/LOQ 信賴區間、原始資料強制公開、效率校正的目標量等要求。

RT-qPCR 的訊號是對數放大:Cq 每差 1 代表起始量差 ~2 倍(100% 效率時)。任何一個環節的小錯誤(pipette 1 μL 差異、reference gene 選錯、效率忽略)都會被指數放大。

Real-time quantitative PCR (qPCR) is the workhorse of nucleic-acid quantification, but the MIQE authors showed in 2009 that over half of published qPCR reports lack basic information (PCR efficiency, reference-gene validation), making results irreproducible. Sixteen years later, MIQE 2.0 (Bustin et al. 2025, Clin Chem) is the first major revision — now requiring LOD/LOQ confidence intervals, mandatory raw-data sharing, and efficiency-corrected target quantities.

RT-qPCR signal is logarithmic: every Cq unit represents a ~2-fold difference in starting material (at 100% efficiency). Small errors anywhere (1 μL pipetting, wrong reference gene, ignored efficiency) are exponentially amplified.

💡
核心原則:qPCR 數據的可信度取決於最薄弱的環節:RNA 完整性 (RIN ≥ 7)、reverse transcription 效率、PCR 效率 (90–110%)、reference gene 穩定性 (geNorm/NormFinder)、與 no-RT / NTC 對照。任何一項缺失,後續統計都是沙上城堡。 Core principle: qPCR reliability is determined by the weakest link — RNA integrity (RIN ≥ 7), RT efficiency, PCR efficiency (90–110%), reference-gene stability (geNorm/NormFinder), and no-RT / NTC controls. Without any one of these, downstream statistics are castles in the sand.

一、四個必須懂的數字

📈

Cq (Quantification Cycle)

螢光訊號超過閾值的循環數,等同 Ct。Cq 越小代表起始量越多(早期就放大到偵測閾值)。Cq 是指數空間的值,不可直接相減或平均,必須先轉成 2^(-Cq) 線性化。

Cycle at which fluorescence crosses the threshold (= Ct). Lower Cq = more starting material. Cq lives in log space — never subtract or average raw Cq values; transform to 2^(-Cq) first.

PCR Efficiency (E)

由 10 倍序列稀釋標準曲線計算:E = 10^(−1/slope) − 1。理想 slope = −3.32(100% 效率)。可接受範圍 90–110%。效率差 5% 在 30 個循環會放大成 4 倍誤差。

Derived from 10-fold dilution standard curve: E = 10^(−1/slope) − 1. Ideal slope = −3.32 (100% efficiency). Acceptable range 90–110%. A 5% efficiency difference compounds to ~4× error after 30 cycles.

📐

R² of standard curve

反映劑量反應的線性度。MIQE 2.0 要求 R² ≥ 0.98,並覆蓋至少 5 個 10 倍稀釋點。R² 高但 slope 偏離 −3.32,仍代表效率有問題。

Linearity of dose-response. MIQE 2.0 requires R² ≥ 0.98 across ≥5 ten-fold dilution points. High R² but slope ≠ −3.32 still indicates an efficiency problem.

🎯

LOD / LOQ

LOD:能可靠偵測(≥95%)的最低濃度。LOQ:能可靠定量(CV ≤ 25%)的最低濃度。MIQE 2.0 強制報告兩者的 95% CI 而非單一數字。

LOD: lowest concentration detected reliably (≥95%). LOQ: lowest concentration quantified with CV ≤ 25%. MIQE 2.0 now requires 95% CIs for both, not just point estimates.

二、相對 vs 絕對定量

方法原理適用情境關鍵假設
ΔΔCt (Livak)2^(−ΔΔCt)效率相近差距 <5%
Pfaffl效率校正已知效率已量測 E
Standard curve標準曲線內插絕對量化純度可靠
dPCR (Digital)分隔+泊松絕對定量符合 dMIQE

PCR 效率對 ΔΔCt 結果的影響

拖動下方滑桿:當 target 與 reference 的效率不一致時,ΔΔCt 報告的「fold change」會偏離真值。看看 5% 的效率差距如何在 25 個循環後變成多大的誤差。

Drag the sliders below. When target and reference efficiencies differ, ΔΔCt-reported "fold change" deviates from the truth. See how a 5% efficiency gap balloons after 25 cycles.

X:循環數 | Y:螢光訊號

三、R 與 Python 實作 ΔΔCt

# ΔΔCt + Pfaffl 效率校正示例
library(tidyverse)
df <- read_csv("qpcr_raw.csv")   # 欄位:sample, gene, group, Cq

# 1. 對每樣品計算 ΔCt = Cq_target − Cq_reference
dCt <- df %>% pivot_wider(names_from=gene, values_from=Cq) %>%
  mutate(dCt = TargetGene - rowMeans(across(c(GAPDH, ACTB, HPRT1))))   # 多 reference 平均

# 2. ΔΔCt = ΔCt_treated − mean(ΔCt_control)
ctrl_mean <- mean(dCt$dCt[dCt$group=="control"])
dCt <- dCt %>% mutate(ddCt = dCt - ctrl_mean,
                       FC   = 2^(-ddCt))

# 3. Pfaffl 校正版(已量測 E_t, E_r)
E_t <- 1.95; E_r <- 2.02   # 從標準曲線計算: 10^(-1/slope)
dCt$FC_pfaffl <- (E_t^(ctrl_mean - dCt$dCt)) / (E_r^0)
import pandas as pd, numpy as np

df = pd.read_csv("qpcr_raw.csv")
wide = df.pivot(index=["sample","group"], columns="gene", values="Cq").reset_index()

# 多 reference 取算術平均(geNorm 推薦至少 2-3 個穩定基因)
ref_cols = ["GAPDH", "ACTB", "HPRT1"]
wide["Cq_ref"] = wide[ref_cols].mean(axis=1)
wide["dCt"]    = wide["TargetGene"] - wide["Cq_ref"]

ctrl_mean = wide.loc[wide.group=="control", "dCt"].mean()
wide["ddCt"] = wide["dCt"] - ctrl_mean
wide["FC"]   = 2 ** (-wide["ddCt"])

# 統計:log2(FC) 才適合 t-test(線性化避免 fold change 的偏態)
from scipy import stats
log2fc = np.log2(wide.FC)
stats.ttest_ind(log2fc[wide.group=="treated"], log2fc[wide.group=="control"])
⚠️
關鍵:統計檢定一律在 log2(FC) 空間執行(或直接用 ΔCt)。FC 本身為對數常態分佈,t-test 假設不成立。報告時可再 antilog 回 fold change。 Crucial: Always run statistical tests on log2(FC) (or on ΔCt directly). FC itself is log-normally distributed, violating t-test assumptions. Antilog back to FC only when reporting.

四、Reference Gene 選擇流程

如何選擇 housekeeping / reference gene?

Q1.
Q2.
Q3.

五、必避的五個錯誤

單一 GAPDH 當 reference

GAPDH 在低氧、發炎、分化條件下會變動。MIQE 與 Vandesompele 2002 都要求 至少 2 個 已驗證 reference gene。

GAPDH changes under hypoxia, inflammation, differentiation. MIQE and Vandesompele 2002 both require ≥2 validated reference genes.

忽略 PCR 效率

每對引子都應跑標準曲線確認 E∈[90%,110%]。直接套 ΔΔCt 而效率差 10%,30 cycle 後誤差可達 16 倍。

Every primer pair needs a standard curve confirming E∈[90%,110%]. ΔΔCt with 10% efficiency gap → up to 16× error after 30 cycles.

缺 no-RT / NTC 對照

無 no-RT 無法區分訊號來自 mRNA 或 gDNA 汙染;無 NTC 無法偵測 primer-dimer 或 reagent 汙染。

Without no-RT, you cannot distinguish mRNA signal from gDNA contamination; without NTC, you cannot detect primer-dimers or reagent contamination.

技術重複當生物 n

3 個技術 well ≠ n=3。生物 n 是獨立樣本/動物/培養盤,技術重複只反映管內變異。統計報告須清楚標示。

Three technical wells ≠ n=3. Biological n means independent samples/animals/plates; technical replicates only capture pipetting variation. State both clearly.

🎯 章末小測驗

1. 標準曲線 slope = −3.10,計算的 PCR 效率最接近?

90%
100%
110%
120%

2. 下列何者是 MIQE 2.0 與原版的新增要求?

必須報告 R²
LOD/LOQ 報告 95% CI
須用 SYBR Green
禁止使用 dPCR

3. 統計檢定 fold change 應用何種轉換?

平方根
log2 / ΔCt
1/FC 倒數
不用轉換