代谢组学研究的是生物体内分子量小于约 1500 Da 的小分子代谢物全集——葡萄糖、乳酸、氨基酸、脂质、胆汁酸、激素……它们是酶促反应的终产物,直接反映细胞当前的生理状态。
两个病人的肿瘤基因组测序结果几乎一样,预后却天差地别。基因层面的解释力在这里断了。但测他们血浆里的乳酸、色氨酸代谢物、磷脂谱,常常能分出两个亚群——因为肿瘤细胞实际"吃"什么、"排"什么,是基因测不出来的。代谢组学就是冲着这个缺口来的。
它 1990 年代末才成形,比基因组学晚了十几年,原因很实际:代谢物太杂。DNA 由四种核苷酸组成、蛋白质由 20 种氨基酸组成,而人体内源代谢物估计有上万种,横跨极性、脂溶性、带电、中性、易挥发、热不稳定各种性质,没有一种仪器能一网打尽。这是代谢组学一切方法学矛盾的根源。
| 尺度 | 数字 | 含义 |
|---|---|---|
| 单个样品可检测特征峰 | 数千至上万 | 非靶向 LC-MS 的典型规模 |
| 已鉴定的人源代谢物(HMDB 注释级) | 约 3 千余种 | 真正"认识"的部分 |
| 通路中常被报告的差异代谢物 | 几十种 | 论文结果表里的规模 |
从"检测到"到"鉴定"之间隔着一个数量级的鸿沟,这个鸿沟在第 5 章会专门处理。
中心法则是一条单行道:DNA → RNA → 蛋白 → 代谢 → 表型。但代谢组还有一个别的组学没有的特点——外源输入多。你昨晚吃的那顿火锅、上周的抗生素、肠道里的菌群,都直接改写代谢物谱。这让代谢组既是"最敏感的表型传感器",也是"最容易被混杂因素污染的层"。
⚠️ 常见坑:临床代谢组学研究里,最大的混杂往往不是疾病,而是采样时间(晨起与下午的皮质醇差数倍)和近期饮食。设计阶段不控,数据阶段救不回来。
下一节把这门学科按"做法"拆成四种范式。
基因给出"可能发生什么"的指令清单,转录本反映"正在准备发生什么",蛋白质执行"正在发生什么",而代谢物记录"已经发生了什么、结果如何"。代谢组处于信息流的末端,距离表型最近:酶活的微小变化、转运体的开关、能量状态的偏移,最终都会落到代谢物浓度的变化上。这个位置决定了代谢组学的两个基本属性——信号放大(上游基因层面的中等扰动可能被代谢网络放大为浓度的大幅变化)与整合效应(代谢物是基因组、转录组、蛋白质组加上环境与微生物组共同作用的总和读出)。
代价是解释的复杂性:看到一个代谢物升高,无法直接倒推是哪一层出了问题。因此代谢组学的工作流里,"发现信号"只占三分之一,另外三分之二是"排除假信号"(批次效应、不稳定代谢物、污染)与"把信号放回通路语境"(第 5 章的通路分析)。理解这个分工,是避免"测了一堆峰、讲不出故事"的第一步。
| 层级 | 数量级 | 代表数据库 |
|---|---|---|
| 人类基因 | 约 2 万 | Ensembl |
| 蛋白质编码转录本 | 约 10 万(含剪接变体) | GENCODE |
| 人类代谢物(已知注释) | 约 3 千–11 万(口径不同) | HMDB 5.0 收录 11 万条目 |
| 单次非靶向检测可注释 | 约 1 千–3 千峰 | 依赖平台与数据库 |
HMDB 从 2007 年首版的 2500 条目涨到 5.0 版的 11 万条目,但其中"检测到且浓度可靠定量"的核心代谢物只有数千种——数量级与基因相当。这意味着代谢组学不是"测得越多越好",而是"注释得越深越好":能定量的几百种代谢物,往往比半注释的几千个峰更有生物学说服力。
import math # 两组各 5 个样本、3 个代谢物的浓度矩阵(uM) control = [[210, 45, 12.5], [225, 43, 11.8], [198, 47, 13.1], [205, 44, 12.2], [220, 46, 12.9]] treated = [[232, 41, 15.2], [245, 39, 16.0], [228, 42, 14.8], [240, 40, 15.6], [236, 43, 14.5]] def stats(rows, i): col = [r[i] for r in rows] m = sum(col)/len(col) v = sum((x-m)**2 for x in col)/(len(col)-1) return m, math.sqrt(v) for i, name in enumerate(["葡萄糖", "乳酸", "琥珀酸"]): m1, s1 = stats(control, i); m2, s2 = stats(treated, i) # 简易效应量(合并标准差的 Cohen's d) sp = math.sqrt((s1**2 + s2**2)/2) print(f"{name}: 对照 {m1:.1f}±{s1:.1f} vs 处理 {m2:.1f}±{s2:.1f}, d={abs(m2-m1)/sp:.2f}")
三行输出里,琥珀酸的效应量最大(d 约 9)——尽管它绝对浓度最低。这正是代谢组学选指标的常见情形:浓度低不等于信号弱,效应量才是排序依据。此脚本的骨架(分组均值、离散度、效应量)会在第 5 章扩展成完整的差异代谢物筛选流程。
代谢组学(metabolomics)测全部可测代谢物,代谢物组(metabolome)指其集合;脂类组学(lipidomics)只测脂质但深度细分到分子种(sn 位点、双键位置);代谢通量组学(fluxomics)测的不是浓度而是同位素标记随时间的重新分布;暴露组学(exposome)则把外源化学物(污染物、药物、食品添加剂)纳入同一测量框架。边界重叠处常生混称:一篇"代谢组学"论文若只报了三百种脂质,更准确的定位是脂类组学;反之,把暴露组信号与内源代谢物一起分析,正成为环境健康研究的主流设计。称谓的准确影响审稿人预期—— lipidomics 的读者会追问 sn 位置异构体的分离证据,metabolomics 的读者关心通路的覆盖平衡。
# 用一张检测报告判定研究属于哪个子领域 report = {"脂质种数": 280, "氨基酸/有机酸种数": 35, "是否同位素标记": False, "是否含外源物(污染物/药物)": False} if report["脂质种数"] > 100 and report["氨基酸/有机酸种数"] < 50: field = "脂类组学(lipidomics)" elif report["是否同位素标记"]: field = "通量组学(fluxomics)" elif report["是否含外源物(污染物/药物)"]: field = "暴露组学导向" else: field = "一般代谢组学" print(f"按报告内容判定: {field}")