代谢组学研究设计的核心任务是让组间生物学差异大于一切系统性差异。样本量估算、随机化、混杂因素匹配、多队列验证——四件事共同保证最后看到的差异来自生物学而不是实验室流程。
非靶向代谢组学没有先验的效应量,常用经验做法是按"预期能被多重检验校正存活的最小差异"倒推。用 Python 快速演算一个双样本 t 检验的功效:
from statsmodels.stats.power import TTestIndPower analysis = TTestIndPower() # 假设:组间fold change 1.3,组内变异CV约25% -> 标准化效应量约1.1 # 但要活过Bonferroni校正,实际按更保守的效应量0.55设计 n = analysis.solve_power(effect_size=0.55, alpha=0.05, power=0.8, ratio=1.0) print(f"每组需要约 {n:.0f} 例") # 输出约每组53例
每组 20 例的先导研究为什么常常复现不了?按上面参数回算,每组 20 例对效应量 0.55 的功效只有约 44%——一半的概率错过真实差异。这不是玄学,是算术。
| 设计 | 什么时候用 | 代谢组学特有优势 | 陷阱 |
|---|---|---|---|
| 病例对照 | 罕见病、快速出信号 | 样本易得 | 因果方向不明,混杂最多 |
| 前瞻队列 | 疾病预测、标志物验证 | 基线状态干净 | 周期长、费用高 |
| 自身配对/干预 | 药物反应、饮食干预 | 个体间变异被消掉 | 需严格洗脱期与交叉设计 |
我更倾向能配对就配对:同一个体服药前后各采一针,个体间那 60-70% 的基线代谢差异直接从分母里消失,小样本也能出干净信号。
不是"随便"。随机化清单要覆盖全部系统误差来源:
⚠️ 常见坑:临床上病例来自住院部、对照来自体检中心,采样时间、禁食状态、抗凝管类型全都系统性不同。这种"完美预测"的数据集任何分类器都能 100% 准确,然后换一个队列立刻崩掉。
除了年龄、性别、BMI 常规项,代谢组学还要匹配:用药史(他汀直接改脂谱、二甲双胍改氨基酸谱)、吸烟饮酒、肠道相关状态(便秘/腹泻/益生菌)。病例组若 60% 在用抗生素,对照组 10%,菌群代谢物维度的差异全是药的。
下一节进入取样与提取的具体工序。
非靶向代谢组学的经验起点是"每组 6–10 个生物学重复",但这个数字有明确出处:对效应量 d = 1.5 的差异(代谢组学常见),双样本 t 检验在 α = 0.05、功效 0.8 下每组只需 8 个样本;对 d = 1.0 则需 17 个。公式 n ≈ 16/d² 是会议室里最实用的速算——声称"每组 3 只小鼠够了"的方案,只在 d > 2.3 时成立,而这样的巨大效应在代谢组学中是少数。
| 效应量 d | 每组样本数(α=0.05, 功效 0.8) | 代谢组学语境 |
|---|---|---|
| 0.8 | 26 | 个体差异主导的人队列 |
| 1.0 | 17 | 温和干预(膳食改变) |
| 1.5 | 8 | 基因敲除、药物处理 |
| 2.0 | 5 | 强扰动(毒性剂量) |
还要叠加多重检验的惩罚:如果用 t 检验筛 500 个峰,Benjamini-Hochberg 校正后功效进一步下降,实践中往往把"发现用"的样本量再上浮 30–50%。人队列还要计入混杂层(性别、年龄、BMI、用药)分层后的每格样本数,这通常是队列研究真正的瓶颈而非总样本量。
import math def n_per_group(d, alpha=0.05, power=0.8): z_a, z_b = 1.96, 0.84 # 双侧 0.05 与功效 0.8 的 z 值 return math.ceil(((z_a + z_b) ** 2) * 2 / d ** 2 / 1) # 近似 for d in [0.8, 1.0, 1.5, 2.0]: print(f"d={d}: 每组约 {n_per_group(d)} 例") # BH 校正的功效惩罚示意:有效 alpha 从 0.05 降到 0.05/预期真信号数 for n_true in [10, 50]: eff_alpha = 0.05 / (500 / n_true) ** 0.5 # 粗略缩放 print(f"500 个峰中约 {n_true} 个真信号: 有效 alpha ≈ {eff_alpha:.4f}" f" → 每组样本需上浮约 20–40%")
随机化要落到"仪器运行顺序"而不只是分组:批次内交错对照与处理组,可以阻断"分组"与"漂移"共线。 blocking 按"采血日期、操作者、仪器批号"分层,每层内完成一次完整随机化。盲法对代谢组学尤其关键——进样顺序单盲(操作者不知样本组别)能防止无意的顺序偏倚。三条原则的执行成本几乎为零,但漏掉任何一条,后续再强的统计也救不回系统性混杂,这是设计节的全部要义。
设计节最后要打破一个迷思:生物学重复与技术重复不可互换。同一只小鼠的肝脏分成三份提取进样,得到的是技术重复,只反映操作方差,对统计功效的贡献为零;三只小鼠各测一次才是生物学重复。把技术重复当生物学重复上报,是代谢组学(以及一切组学)数据造假与错误结论的重灾区,审稿人核对的首项即样本数与动物数的对应关系。计划书里应当明写:每组生物学重复 n = X,技术重复仅用于异常排查,统计一律按生物学单位聚合后进行。