首页 AI科研技能库 代谢组学数据分析
第17期 ⭐⭐⭐ 进阶

代谢组学数据分析

使用Metabolomics Workbench和HMDB完成代谢组学数据全流程分析

📊 Metabolomics Workbench 🧪 HMDB ⏱️ 约1小时
⚠️
免责声明: 本内容仅供医学学习参考,不作为临床诊断依据。 实际临床决策请结合患者具体情况和多学科意见。
🎯

技能简介

代谢组学是研究生物体中代谢物整体变化的学科,能够揭示疾病机制、发现生物标志物。 本教程使用Metabolomics Workbench(代谢组学数据库)和 HMDB(人类代谢组数据库), 从数据获取、代谢物注释、差异分析到通路富集,完整掌握代谢组学分析流程。

传统方式需要2周,AI辅助只需1小时

🧪 开始做代谢组学前先确定这 4 件事

研究问题与分组设计

先写清楚病例/对照、时间点、组织来源和主要混杂因素,否则后面看到差异代谢物也很难判断是不是疾病效应。

平台与原始矩阵信息

要明确是 LC-MS、GC-MS 还是 NMR,正负离子模式、峰表格式、内标信息和批次信息最好一开始就整理好。

质控与标准化方案

QC 样本、批次漂移校正、缺失值处理、归一化和 log 变换策略都要提前定好,避免分析到后面再返工。

代谢物注释等级

要分清 feature、候选代谢物和已验证代谢物,最好记录 HMDB/KEGG 映射和 MSI 注释等级,避免把“峰”直接当成“代谢物结论”。

📦 一次像样的代谢组学分析至少交付这 4 样

清洗后的代谢矩阵与 QC 记录

至少保留样本数、代谢物数、缺失值比例、批次处理方式和 QC 表现,保证别人能知道你的数据是如何被清洗出来的。

差异代谢物结果表

结果表中应包含 fold change、P 值/FDR、注释名称、数据库 ID 和方向,而不是只给一张火山图或热图截图。

通路与生物学解释证据

至少整理出显著通路、命中的代谢物、数据库来源和与你研究问题的关联说明,避免富集结果停留在列表层面。

后续验证优先级

建议明确哪些代谢物要做靶向验证、哪些结果适合联动临床指标或多组学整合,帮助分析结果真正落到下一步实验。

💡 使用场景

🫀

心血管疾病研究

分析心衰、高血压等疾病患者的代谢物变化,发现潜在生物标志物

💊

药物作用机制

研究药物对代谢通路的影响,揭示作用机制

🔬

疾病分型

基于代谢谱特征进行疾病亚型分型,实现精准医疗

🧬

多组学整合

将代谢组学与基因组学、转录组学数据整合,全面解析生物过程

🛠️ 核心技能调用

Step 1: 数据获取(Metabolomics Workbench)

# 使用Scientific Skills获取代谢组学数据
# 技能:scientific-skills:metabolomics-workbench-database

# 检索心衰相关的代谢组学数据集
# 返回:数据集信息、样本数、代谢物数量

import metabolomics_workbench as mb

# 搜索心衰相关研究
studies = mb.search_studies(
  disease="heart failure",
  organism="Homo sapiens"
)

# 下载数据集
data = mb.download_study(study_id="ST000001")

# 查看数据维度
print(f"样本数: {data.n_samples}")
print(f"代谢物数: {data.n_metabolites}")

💡 Metabolomics Workbench: 由美国NIH资助的代谢组学数据库,包含大量公开数据集,涵盖人类、动物、植物等多种研究。

Step 2: 代谢物注释(HMDB)

# 使用Scientific Skills查询HMDB数据库
# 技能:scientific-skills:hmdb-database

import hmdb_query as hmdb

# 注释代谢物信息
metabolites = ["Carnitine", "Acetylcarnitine", "Glutamate"]

for metab in metabolites:
  info = hmdb.get_metabolite_info(metab)
  print(f"代谢物: {info.name}")
  print(f" 化学分类: {info.classification}")
  print(f" 生物学功能: {info.biological_role}")
  print(f" 相关疾病: {info.diseases}")

📌 HMDB(Human Metabolome Database): 最全面的人类代谢组数据库,包含超过220,000个代谢物条目,提供化学结构、生物学功能、疾病关联等信息。

Step 3: 差异代谢物分析

# 使用scipy进行统计检验
# 技能:scientific-skills:scipy

from scipy import stats
import pandas as pd
import numpy as np

# 分离心衰组和对照组
hf_group = data[data.group == "heart_failure"]
control_group = data[data.group == "control"]

# 对每个代谢物进行Wilcoxon检验
results = []
for metab in data.metabolites:
  # Wilcoxon秩和检验
  statistic, p_value = stats.mannwhitneyu(
    hf_group[metab],
    control_group[metab],
    alternative='two-sided'
  )

  # 计算log2倍数变化
  log2fc = np.log2(
    hf_group[metab].mean() / control_group[metab].mean()
  )

  results.append({
    'metabolite': metab,
    'log2FC': log2fc,
    'p_value': p_value
  })

# FDR校正
from statsmodels.stats.multitest import multipletests
results_df = pd.DataFrame(results)
results_df['FDR'] = multipletests(
  results_df['p_value'],
  method='fdr_bh'
)[1]

# 筛选差异代谢物
significant = results_df[
  (abs(results_df['log2FC']) > 1) &
  (results_df['FDR'] < 0.05)
]

Step 4: 通路富集分析

# 使用KEGG数据库进行通路分析
# 技能:scientific-skills:kegg-database

import kegg_query as kegg

# 获取差异代谢物列表
diff_metabs = significant['metabolite'].tolist()

# KEGG通路富集
pathways = kegg.enrich_metabolites(
  metabolites=diff_metabs,
  organism='hsa' # 人类
)

# 显示显著富集的通路
for pathway in pathways:
  if pathway.p_adjust < 0.05:
    print(f"通路: {pathway.name}")
    print(f" p值: {pathway.p_adjust:.4f}")
    print(f" 涉及代谢物: {pathway.metabolites}")

📖 实战示例

案例1:心衰患者血浆代谢组学分析

研究背景:心力衰竭(HF)是全球主要死亡原因之一, 代谢紊乱在心衰发生发展中起重要作用。

分析流程

  1. 从Metabolomics Workbench下载心衰患者血浆代谢组数据(n=100)
  2. 使用HMDB注释检测到的320个代谢物
  3. Wilcoxon检验筛选差异代谢物(|log2FC|>1, FDR<0.05)
  4. KEGG通路富集分析

主要发现

  • 鉴定出42个差异代谢物(28个上调,14个下调)
  • 显著改变的通路:脂肪酸β氧化、氨基酸代谢、TCA循环
  • 发现潜在生物标志物:乙酰肉碱、谷氨酸

启示:心衰患者能量代谢紊乱,脂肪酸氧化能力下降, 可能成为新的治疗靶点。

案例2:糖尿病肾病代谢标志物发现

研究背景:糖尿病肾病(DKD)是糖尿病的主要并发症, 早期诊断困难。

分析流程

  1. 收集糖尿病肾病患者血清样本(病例组50例,对照组50例)
  2. LC-MS非靶向代谢组学检测
  3. 多变量统计分析(PCA、PLS-DA)
  4. 差异代谢物筛选和通路分析

主要发现

  • 发现15个差异代谢物可作为DKD潜在标志物
  • 色氨酸代谢途径显著改变
  • 构建的代谢标志物模型AUC=0.92

应用价值:这些代谢标志物可能用于DKD的早期诊断和病情监测。

案例3:药物作用机制研究

研究背景:研究某新型心血管药物的作用机制。

分析流程

  1. 建立心肌细胞损伤模型
  2. 药物干预后收集细胞和培养上清
  3. 靶向代谢组学分析(氨基酸、脂质、能量代谢物)
  4. 比较药物组与对照组的代谢差异

主要发现

  • 药物显著改善线粒体功能相关代谢物水平
  • 激活AMPK信号通路
  • 促进ATP生成,减少氧化应激

结论:该药物通过改善能量代谢发挥心肌保护作用。

🧯 代谢组结果最容易翻车的 4 个点

把 feature 直接写成已确认代谢物

未做二级谱或标准品确认时,很多信号只能叫候选注释,直接写成“某代谢物显著升高”容易被审稿人质疑。

忽视批次漂移和归一化差异

代谢组特别容易受批次、仪器漂移和样本前处理影响,如果 QC 不稳,后面所有差异分析都可能是伪阳性。

只盯 P 值,不看效应量和缺失模式

代谢物经常受低丰度和缺失值影响,仅靠显著性排序会把统计噪声推到前面,必须结合 fold change 和检测稳定性一起看。

用少量命中代谢物过度解读通路

某条通路只命中 1-2 个代谢物时,通常更适合写成探索性线索,而不是直接上升到完整机制结论。

⚠️ 注意事项

数据质量控制

  • • 代谢物检测需要严格的质控,包括内标、QC样本
  • • 批次效应需要校正
  • • 缺失值需要合理处理(<20%缺失可删除或填补)

统计方法选择

  • • 数据不符合正态分布时,使用非参数检验(Wilcoxon)
  • • 多重检验必须进行FDR校正
  • • 小样本量时谨慎解读结果

生物学解释

  • • 代谢物变化需要结合生物学知识解释
  • • 查阅文献验证代谢物与疾病的关联
  • • 通路富集结果需要考虑代谢网络的复杂性

🔗 相关技能链接

📦

下载完整代码包

包含:示例代码、数据文件、结果图表 · 94个文件 · 8.1MB

立即下载

💡 代码包内含 README.md 文档,包含环境配置和运行说明。解压后即可使用。