為什麼 WB 定量是公認最不可靠的方法之一?
Western blot 的訊號來自抗體—二抗—化學發光/螢光三層放大,每層都有非線性。傳統用 GAPDH 或 β-actin 當 loading control,但 Aldridge 2008 與 Romero-Calvo 2010 已證實:在缺氧、肥大、分化、藥物處理下 housekeeping protein 本身會變動,導致差異被低估或反向。
2025 年 Hagstrom 等於 PLOS ONE 比較 10 種 normalization 策略,total protein normalization (TPN)(stain-free 膠、Ponceau S 或 REVERT 染色)變異係數比 GAPDH/tubulin 低 50–80%,現已被 JBC、MCP、PNAS 列為推薦方法。
Western blot signal traverses three layers of amplification (primary → secondary → chemiluminescence / fluorescence), each non-linear. The traditional GAPDH / β-actin loading control is unreliable: Aldridge 2008 and Romero-Calvo 2010 showed these "housekeepers" change under hypoxia, hypertrophy, differentiation, and drug treatment — masking or reversing true differences.
In 2025, Hagstrom et al. (PLOS ONE) compared 10 normalization strategies in human adipocytes: total protein normalization (TPN) (stain-free gels, Ponceau S, REVERT) yielded 50–80% lower CV than GAPDH/tubulin, and is now recommended by JBC, MCP, and PNAS.
一、Normalization 三大策略
| 策略 | 原理 | 優點 | 缺點 |
|---|---|---|---|
| Housekeeping (GAPDH/ACTB/TUB) | 同膜單一參照 | 易做 | 會變動 |
| Total protein (Stain-free / Ponceau / REVERT) | 總蛋白染色 | 低 CV | 多一步驟 |
| Spike-in | 已知量校正 | 跨膜可比 | 成本高 |
線性動態範圍模擬器
調整曝光時間,觀察 band 強度如何進入飽和。綠色區段為可定量區間,紅色為飽和區。記住:ImageJ 量化的數字不會告訴你它已飽和——必須先看膠片。
Adjust exposure time and observe how band intensity saturates. Green = quantifiable region; red = saturated. ImageJ won't warn you about saturation — you must inspect the blot first.
X:loading μg | Y:強度
二、ImageJ 結果在 R / Python 的後處理
# 從 Fiji 的 Gels Plug-in 匯出 .csv(含 Area, IntDen) library(tidyverse) wb <- read_csv("wb_intensity.csv") # 1. 扣背景(lane background mean) wb <- wb %>% mutate(IntDen_bg = IntDen - bg_mean * Area) # 2. Total Protein Normalization:把 target 除以該 lane 的總蛋白訊號 wb <- wb %>% group_by(blot, lane) %>% mutate(target_norm = IntDen_bg[protein=="TargetX"] / IntDen_bg[protein=="TotalProtein"]) %>% ungroup() # 3. 對照組標為 1,比較 fold change wb <- wb %>% group_by(blot) %>% mutate(rel = target_norm / mean(target_norm[group=="control"])) # 4. 統計:log 轉換再 t-test t.test(log2(rel) ~ group, data=wb %>% filter(protein=="TargetX"))
import pandas as pd, numpy as np from scipy import stats wb = pd.read_csv("wb_intensity.csv") wb["IntDen_bg"] = wb["IntDen"] - wb["bg_mean"] * wb["Area"] # Total Protein Normalization def tpn(g): target = g.loc[g.protein=="TargetX", "IntDen_bg"].values[0] tp = g.loc[g.protein=="TotalProtein", "IntDen_bg"].values[0] return target / tp norm = wb.groupby(["blot","lane"]).apply(tpn).reset_index(name="target_norm") # 對照組標為 1 ctrl = norm.loc[norm.group=="control", "target_norm"].mean() norm["rel"] = norm.target_norm / ctrl # Welch's t-test on log2(rel) — 不假設等變異 treat = np.log2(norm.loc[norm.group=="treated", "rel"]) ctl = np.log2(norm.loc[norm.group=="control", "rel"]) stats.ttest_ind(treat, ctl, equal_var=False)
三、五個 reviewer 一定會問的問題
❌ 飽和 band 量化
ImageJ 不會警告飽和。膜上肉眼「最暗」的 band 通常已飽和;改用較短曝光的同一膜或螢光偵測 (LI-COR)。
ImageJ doesn't flag saturation. The "darkest" band on film is usually saturated — re-expose shorter or switch to fluorescence (LI-COR).
❌ 跨膜比較
不同膜的轉印效率、抗體孵育時間不可能完全相同。只能比較同一膜內樣品的相對比;跨膜需 spike-in 才合理。
Transfer efficiency and antibody incubation differ between membranes. Compare relative ratios within one blot; use spike-ins for cross-blot comparisons.
❌ ECL 與螢光混用
ECL 動態範圍 ~1.5 logs、非線性;fluorescent secondary ~3 logs、近線性。同篇論文若一處用 ECL 一處用螢光卻不註明,比較會失真。
ECL: ~1.5 logs, non-linear. Fluorescent secondary: ~3 logs, near-linear. Mixing within one paper without disclosure distorts comparisons.
❌ 未報告 n 與膠片數
必須清楚標示 biological n(獨立樣本)與技術重複(膜的數量)。同一樣品打 3 個 well 不是 n=3。
State biological n (independent samples) AND number of blots. Three wells of one sample is NOT n=3.
🎯 章末小測驗
1. 2025 年比較研究中,TPN 相較 GAPDH 的優勢主要在?
2. ECL 動態範圍約是?
3. 下列何者最不適合作為 hypoxia 處理組的 loading control?