跳转至

多组学整合分析入门

彭文强 | 2026届 | 生信分析工程师求职

1. 一句话说明

多组学整合分析就是把基因组、转录组、蛋白质组、代谢组、宏基因组等不同层面的数据"拼"到一起分析,找到单看一层数据看不到的跨层关联和调控规律——好比你之前只看了"菜谱"(基因组),现在把"采购清单"(转录组)、"做好的菜"(蛋白质组)和"客人的反馈"(代谢组)一起看,才能真正搞清楚这家餐厅怎么运作的。


2. 为什么要学

2.1 单组学的局限

你目前做过宏基因组和转录组,两个方向都是"单组学分析"。单组学就像只从一个角度看问题:

宏基因组(你做过的):
  能回答:T2D 患者肠道里有哪些菌?丰度怎么变化?
  不能回答:这些菌的代谢产物对宿主血糖调控有什么影响?

转录组(你做过的):
  能回答:哪些基因在 T2D 患者中差异表达?
  不能回答:这些 mRNA 真的被翻译成蛋白质了吗?蛋白活性如何?

基因组:
  能回答:有没有致病突变?
  不能回答:这个突变在活的细胞里到底有没有造成影响?

白话总结:单组学就像盲人摸象——你摸到了腿,别人摸到了鼻子,各自说得都对,但谁也没看到完整的大象。多组学整合就是把大家摸到的部分拼起来,看到全貌。

2.2 多组学能回答什么更深层的问题

问题 单组学能做到吗 多组学怎么回答
T2D 患者肠道菌群变化导致了哪些代谢通路异常? 宏基因组只能预测菌群功能,不能确认代谢产物 宏基因组 + 代谢组:直接对应菌群组成变化和代谢产物浓度变化
某个差异基因到底有没有在蛋白水平也异常? 转录组看到 mRNA 升高,但翻译效率未知 转录组 + 蛋白质组:同时看 mRNA 和蛋白质丰度,确认调控是否传导
肠道菌群、宿主免疫和代谢之间是怎么互作的? 单组学只能描述一个层面 宏基因组 + 转录组 + 代谢组:用整合模型找到跨层面的调控枢纽
不同组学数据中,哪些变量共同指向同一个生物学过程? 每个组学各自找各自的特征 多组学降维后,找到共同变异方向(潜在因子)

一句话:多组学让你从"描述现象"升级到"揭示机制"。

2.3 就业市场需求

多组学整合分析是近 3 年生信领域最热的方向之一:

  • CNS 高分文章 几乎标配多组学整合分析
  • 药企研发岗 普遍要求"多组学数据分析经验"
  • 临床研究 从单组学走向多组学是必然趋势
  • 你的竞争力:已有宏基因组 + 转录组经验,再加上多组学整合的知识,面试时可以说"我不仅会做单组学,还理解多组学整合的策略和工具"

3. 核心概念白话版

3.1 什么是多组学(Multi-omics)

"组学"(omics)就是对某一类生物分子做全面/系统的测量。
加个"多"字,就是同时测量多个层面:

DNA 层面 → 基因组学(Genomics)     → "设计图纸"
RNA 层面 → 转录组学(Transcriptomics)→ "施工指令"
蛋白层面 → 蛋白质组学(Proteomics)   → "造出来的零件"
代谢层面 → 代谢组学(Metabolomics)   → "工厂的产出"
微生物层面 → 宏基因组学(Metagenomics)→ "车间里的工人们"

多组学整合 = 把这些层面的数据同时分析,找层与层之间的关联

3.2 常见组学类型一览

组学 测什么 白话解释 典型技术 数据特点
基因组 DNA 序列和变异 生命的"源代码" WGS、WES、SNP 芯片 稳定、不随时间变化
转录组 mRNA 表达量 此刻哪些基因在"开工" RNA-seq、scRNA-seq 动态变化、组织特异
蛋白质组 蛋白质种类和丰度 真正干活的"工人" 质谱(TMT/iTRAQ/DIA) 翻译后修饰增加复杂度
代谢组 小分子代谢物 生命活动的"副产品"和"原料" LC-MS/MS、GC-MS、NMR 种类极多,标准化难
宏基因组 微生物群落的总 DNA 一个生态系统里所有"居民"的基因组 宏基因组测序、16S/ITS 你的强项!组成极复杂
表观基因组 DNA 甲基化、组蛋白修饰 基因的"开关"和"音量旋钮" WGBS、ChIP-seq、ATAC-seq 位点分辨率、高维度

3.3 整合策略分类

多组学整合的核心问题是:不同组学的数据格式、维度、规模都不一样,怎么把它们放到一起?

有三大策略:

策略一:早期融合(Early Integration / Data-level Fusion)

白话:先把所有组学数据拼成一张超大表格,再一起分析。

操作:把转录组矩阵(m个基因)和代谢组矩阵(n个代谢物)按样本横向拼接,
     变成一个 (样本数 × (m+n)) 的大矩阵,然后直接做 PCA、聚类、机器学习等。

优点:简单直接,保留了所有变量之间的关系
缺点:不同组学的量纲、稀疏度差异大,容易被某个组学"带偏"
适用:组学数据维度差不多、样本量足够大时

示意图:
  转录组 [100样本 × 5000基因]
  代谢组 [100样本 × 200代谢物]
  ───────────────────────────
  拼接后 [100样本 × 5200特征] → 一起做 PCA / 聚类 / 分类

策略二:晚期融合(Late Integration / Decision-level Fusion)

白话:每种组学数据各自单独分析,最后把各自的结论合起来。

操作:转录组独立做差异分析得到一组结果,代谢组独立分析得到一组结果,
     最后用投票、加权平均或网络叠加的方式合并结论。

优点:每种组学用最适合自己的方法分析,不怕量纲不同
缺点:丢失了组学之间的交互信息(你只是在比较最终结论,不知道中间的关联)
适用:不同组学样本不完全对应时、探索性分析

示意图:
  转录组 → 独立分析 → 结果A ─┐
  代谢组 → 独立分析 → 结果B ─┼→ 合并 → 最终结论
  宏基因组 → 独立分析 → 结果C ─┘

策略三:混合融合(Intermediate / Mixed Integration)

白话:先从每种组学中提取"特征"或"潜在因子",再把这些中间表示放到一起分析。

操作:用降维方法从每种组学中提取关键成分(比如前 10 个主成分),
     再把这些成分放到一个模型里联合分析。

优点:兼顾了组学间的关联 + 降低了维度灾难
缺点:方法论复杂,需要选择合适的降维方式
适用:大多数实际多组学项目

大部分主流多组学工具(MOFA+, mixOmics)都属于这类策略。

3.4 降维与特征选择

多组学数据的一个大难题是维度灾难

白话解释维度灾难:
假设你有 50 个样本,但同时测了 20000 个基因 + 5000 个代谢物 = 25000 个变量。
变量比样本多 500 倍!

这就像你只考了 50 道选择题,却要根据这 50 题的成绩预测你能不能考上清华、北大、
复旦……等 25000 所大学——信息根本不够用,模型会"过拟合"(强行找规律,实际不靠谱)。

解决办法就是"降维":把 25000 个变量压缩成少数几个"综合指标"(主成分/因子),
保留最重要的信息,丢弃噪声。

常用降维方法:

方法 白话解释 用于多组学时
PCA(主成分分析) 找到数据变化最大的方向,把高维数据投影到少数几个方向上 早期融合后做 PCA
CCA(典型相关分析) 找到两组数据最相关的方向 两个组学之间找最大关联
PLS(偏最小二乘) 类似 CCA 但更稳定,适合变量远多于样本的情况 mixOmics 的核心方法
NMF(非负矩阵分解) 把数据拆成几个非负的"因子"叠加 适合丰度数据(都是正数)
MOFA 因子分析 从多组学数据中提取共享和组学特有的潜在因子 MOFA+ 的核心

4. 常用工具与方法

4.1 MOFA+(Multi-Omics Factor Analysis)

白话解释:
MOFA+ 把多组学数据看成一个"拼图",每种组学是拼图的一部分。
它自动从中找出若干个"潜在因子"(latent factors),每个因子代表一种
跨组学的变异模式。

比如因子1可能代表"与 T2D 相关的代谢紊乱",它在转录组中对应一组
上调的炎症基因,在代谢组中对应升高的短链脂肪酸,在宏基因组中对应
丰度变化的厚壁菌门。

核心思想:不是暴力拼接数据,而是找到各组学"共同讲述的故事"。

适用场景: - 2 种及以上组学数据的探索性整合 - 需要找出哪些因子在多组学间共享、哪些是组学特有的 - 样本量较小(几十到几百个)也能用 - 支持多组别(如多个时间点、多个分组)

技术特点: - 基于贝叶斯因子分析模型 - 自动判断每个因子对每种组学的贡献(权重矩阵) - Python 包 mofapy2 + R 包 MOFA2

4.2 mixOmics / DIABLO

白话解释:
mixOmics 是一个 R 语言工具包,专门做多组学数据的整合和变量选择。
其中最核心的方法叫 DIABLO(Data Integration Analysis for Biomarker discovery
using Latent cOmponents)。

DIABLO 的思路:
1. 从每种组学中提取几个"成分"(类似 PCA 的主成分)
2. 这些成分不是各自提取的,而是要求跨组学之间的成分最大程度"相关"
3. 同时做变量选择:每个成分只挑最重要的几十个变量(稀疏化)

白话比喻:就像从三个班级各选出一支代表队,要求这三支队伍必须"步调一致"
(高相关),而且每队只选最强的几个队员(变量选择)。

适用场景: - 有明确分组(如 T2D vs 健康对照)的监督式整合分析 - 需要做 Biomarker 筛选:找到跨组学的最少特征组合来区分分组 - 需要可解释的稀疏模型 - 适合临床研究、疾病分型

技术特点: - 基于广义 sPLS(稀疏偏最小二乘) - 输出:样本得分图、变量载荷图、circos 关联图、热图 - 纯 R 语言实现,文档和教程丰富

4.3 SNF(Similarity Network Fusion,相似网络融合)

白话解释:
SNF 的思路和前面的方法完全不同。它不是去降维找因子,而是:
1. 从每种组学数据分别构建一个"样本相似网络"
   (谁和谁像?把相似的样本连起来)
2. 然后把多个网络"融合"成一个综合网络
3. 在融合网络上做聚类,得到整合后的样本分型

白话比喻:
你有三个老师分别根据语文、数学、英语成绩给学生分组。
SNF 不是把三科成绩拼在一起算总分,而是把三个老师各自的"学生关系图"
叠加融合,最终得到一个综合的学生分组。

适用场景: - 疾病亚型发现(如肿瘤分子分型) - 无监督聚类为主 - 不需要找具体的 biomarker,更关注样本分群 - 对噪声和缺失数据比较鲁棒

技术特点: - 基于图/网络理论 - R 包 SNFtool,Python 也有实现 - 核心函数少,代码简洁

4.4 WGCNA(Weighted Gene Co-expression Network Analysis)

白话解释:
WGCNA 严格来说是单组学工具(最早用于转录组),但在多组学整合中非常常用。

它的思路:
1. 计算所有基因两两之间的相关性(谁和谁表达趋势一致)
2. 把高度相关的基因归成一个"模块"(module)
3. 看每个模块和临床表型(如 T2D 分组、BMI、血糖值)的关联

在多组学整合中的用法:
- 在转录组中找到和 T2D 强相关的模块
- 再看这些模块的 hub 基因,在蛋白质组中是否也差异表达
- 或者看这些 hub 基因对应的代谢通路,在代谢组中是否有变化
→ 实现"以转录组模块为桥梁"连接多组学数据

适用场景: - 基因共表达网络分析 - 找到与表型强关联的基因模块和 hub 基因 - 作为多组学整合的"桥梁"工具 - 样本量要求:至少 15-20 个样本

技术特点: - R 包 WGCNA - 计算量较大(大矩阵的相关性计算) - 输出:模块-表型关联热图、hub 基因网络

4.5 工具速查对比

工具 策略类型 监督/无监督 核心方法 适合几种组学 输出重点 语言
MOFA+ 混合融合 无监督 贝叶斯因子分析 2+ 潜在因子、权重矩阵 Python + R
DIABLO 混合融合 监督 稀疏 PLS 2+ Biomarker、分类 R
SNF 晚期融合 无监督 网络融合 2+ 样本分型 R / Python
WGCNA 桥梁式 无监督 相关网络 1(可扩展) 基因模块、hub 基因 R
iCluster+ 早期融合 无监督 联合聚类 2+ 样本聚类 R

5. 实操教程:用 MOFA+ 做两组学整合分析

以下用 Python 的 mofapy2 包演示一个简化的两组学整合分析流程。

5.1 环境准备

# 创建 conda 环境(或使用你现有的 bioinfo 环境)
conda activate bioinfo

# 安装 MOFA+ 的 Python 端
pip install mofapy2

# 安装 R 端(在 R 中执行,用于下游可视化)
# install.packages("BiocManager")
# BiocManager::install("MOFA2")

5.2 Python 端构建模型

#!/usr/bin/env python3
"""
MOFA+ 多组学整合分析示例
场景:模拟"转录组 + 代谢组"整合,找到跨组学的共同变异因子
"""

import numpy as np                    # 数值计算库
from mofapy2.run.entry_point import entry_point  # MOFA+ 模型入口

# ============================================================
# 第一步:准备模拟数据(实际项目中替换为你的真实数据)
# ============================================================

np.random.seed(42)                    # 设置随机种子,确保结果可重复

n_samples = 50                        # 50个样本(如25个T2D + 25个健康对照)
n_genes = 500                         # 转录组:500个基因的表达量
n_metabolites = 100                   # 代谢组:100个代谢物的浓度

# 模拟一个"真实的"潜在因子(比如:T2D疾病相关的变异)
# 前25个样本(T2D)因子值较高,后25个(健康)较低
true_factor = np.concatenate([        # 拼接两组样本的因子值
    np.random.normal(2, 0.5, 25),     # T2D组:均值2,标准差0.5
    np.random.normal(-2, 0.5, 25)     # 健康组:均值-2,标准差0.5
])

# 基于潜在因子生成两种组学数据
# 转录组数据 = 因子 × 基因权重 + 噪声
gene_weights = np.random.normal(0, 1, n_genes)            # 每个基因的因子载荷
transcriptome = np.outer(true_factor, gene_weights)        # 外积生成表达矩阵
transcriptome += np.random.normal(0, 0.5, transcriptome.shape)  # 加噪声

# 代谢组数据 = 因子 × 代谢物权重 + 噪声
metabolite_weights = np.random.normal(0, 1, n_metabolites) # 每个代谢物的因子载荷
metabolome = np.outer(true_factor, metabolite_weights)     # 外积生成代谢矩阵
metabolome += np.random.normal(0, 0.5, metabolome.shape)   # 加噪声

# ============================================================
# 第二步:初始化 MOFA+ 模型
# ============================================================

ent = entry_point()                   # 创建 MOFA+ 入口对象

# 设置数据:告诉MOFA+你有几种组学、几组样本
# data 的格式:data[组别][组学] = 矩阵(样本 × 特征)
# 这里只有一个组别(group0),两种组学(view0=转录组, view1=代谢组)
ent.set_data_options(
    scale_groups=False,               # 不按组别缩放(只有一个组别)
    scale_views=False                  # 不按组学缩放(后面手动标准化更好)
)

# 把数据传入模型
# 格式要求:列表的列表 → data_mat[group][view] = numpy数组(样本×特征)
# 注意:此代码基于 mofapy2 >=0.7.0,不同版本 API 可能略有差异
data_mat = [[transcriptome, metabolome]]  # [[组1的转录组, 组1的代谢组]]

# samples_names: 嵌套列表 [groups][samples]
# features_names: 嵌套列表 [views][features]
sample_names = [["sample_{}".format(i) for i in range(n_samples)]]
feature_names = [
    ["gene_{}".format(i) for i in range(n_genes)],        # 视图1:转录组特征名
    ["metabolite_{}".format(i) for i in range(n_metabolites)]  # 视图2:代谢组特征名
]

ent.set_data_matrix(
    data_mat,                         # 数据矩阵
    views_names=["Transcriptome", "Metabolome"],   # 组学名称
    groups_names=["All_samples"],     # 组别名称
    samples_names=sample_names,       # 样本名称
    features_names=feature_names      # 特征名称
)

# ============================================================
# 第三步:配置模型参数
# ============================================================

ent.set_model_options(
    factors=10,                       # 提取10个潜在因子(通常设5-15个)
    spikeslab_weights=True,           # 使用 spike-and-slab 先验(自动做变量选择)
    ard_factors=True,                 # 自动相关性检测(自动关闭不重要的因子)
    ard_weights=True                  # 自动关闭不重要的权重
)

ent.set_training_options(
    convergence_mode="fast",          # 快速收敛模式("medium"或"slow"更精确)
    seed=42,                          # 随机种子
    gpu_mode=False                    # 不使用GPU(小数据集CPU就够了)
)

# ============================================================
# 第四步:训练模型
# ============================================================

ent.build()                           # 构建模型
ent.run()                             # 开始训练(会看到迭代过程和ELBO值)

# ============================================================
# 第五步:保存结果
# ============================================================

output_file = "mofa_t2d_example.hdf5"
ent.save(output_file)                 # 保存为HDF5文件,后续在R中可视化
print(f"模型已保存到 {output_file}")
print("接下来可以用 R 的 MOFA2 包加载该文件进行可视化分析")

5.3 R 端可视化(可选)

# ============================================================
# 在 R 中加载 MOFA+ 结果并可视化
# ============================================================

library(MOFA2)                        # 加载MOFA2包

# 加载训练好的模型
model <- load_model("mofa_t2d_example.hdf5")  # 读取Python保存的HDF5文件

# 查看每个因子解释了多少方差
plot_variance_explained(model)         # 柱状图:每个因子在每种组学中解释的方差比例
# 如果因子1在两种组学中都解释了大量方差 → 它是跨组学共享因子(可能就是T2D信号)

# 查看因子值的分布
plot_factor(model, factor = 1)         # 因子1的样本散点图
# 如果T2D和健康样本在因子1上清晰分开 → 该因子捕获了疾病信号

# 查看每种组学中哪些特征对因子1贡献最大
plot_weights(model, view = "Transcriptome", factor = 1, nfeatures = 20)
# 显示因子1权重最大的前20个基因 → 这些就是跨组学关联中最重要的基因

plot_weights(model, view = "Metabolome", factor = 1, nfeatures = 20)
# 显示因子1权重最大的前20个代谢物 → 结合上面的基因,就能解读生物学意义

5.4 结果解读思路

训练完成后你会关注三个问题:

1. 哪些因子是跨组学共享的?
   → 看 variance explained 图:因子在两种组学中都有较高方差解释量
   → 这些因子代表转录组和代谢组共同反映的生物学过程

2. 因子和你的分组(T2D vs 健康)有没有关联?
   → 看因子值散点图:因子值能区分两组吗?
   → 做统计检验(t检验/Wilcoxon)确认

3. 哪些具体的基因/代谢物驱动了这些因子?
   → 看 weights 图:权重绝对值最大的变量就是关键特征
   → 拿这些基因做通路富集(GO/KEGG),看落在什么通路上
   → 结合代谢物看这些通路的代谢端是否也有信号

6. 和你 T2D 项目的关联

你的毕业论文项目(/home/pweaz/t2d_ai_project/)目前做的是宏基因组分析(Kraken2 物种分类 + 机器学习分类器)。如果在面试中被问到"这个项目怎么往深做",多组学整合是一个很好的方向:

6.1 宏基因组 + 代谢组整合(最可行的扩展)

你已有的:
  宏基因组 → T2D 和健康人的肠道菌群组成差异(物种丰度表)

可以加入的:
  代谢组 → 粪便/血清代谢组数据(短链脂肪酸、胆汁酸、氨基酸等)

整合后能回答:
  1. T2D 患者中丰度变化的菌(如 Faecalibacterium 减少),
     是否和特定代谢物浓度变化(如丁酸降低)显著相关?
  2. 菌群-代谢物关联网络中,哪些是"枢纽节点"?
  3. 能否用菌群+代谢物的组合特征,比单用菌群,更准确地预测 T2D?

工具选择:
  - MOFA+:无监督找共同因子,适合探索阶段
  - DIABLO:有分组信息时,直接做 biomarker 筛选
  - Spearman 相关 + 网络可视化:最简单直接的关联分析

6.2 面试话术示例

面试官问:你这个 T2D 项目后续可以怎么扩展?

参考回答:
"我目前做的是宏基因组层面的分析,如果要进一步探索机制,
可以整合代谢组数据。具体来说,用 MOFA+ 做无监督因子分析,
看菌群组成变化和代谢物浓度变化之间是否有共同的潜在因子;
或者用 mixOmics 的 DIABLO 方法做有监督整合,筛选能区分
T2D 和健康对照的跨组学 biomarker 组合。

这样做的意义是:单看菌群只能说'这些菌变了',结合代谢组
才能说'这些菌变了导致了什么代谢后果',从相关性往因果性
推进一步。"

6.3 公开数据资源

如果想实际练手,这些公开数据集有 T2D 相关的多组学数据:

数据集 内容 来源
HMP2 (iHMP) 纵向多组学(宏基因组+代谢组+蛋白质组) ibdmdb.org
MetaHIT 欧洲人群宏基因组 + 代谢组 EMBL-EBI
Qin et al. 2012 T2D 宏基因组经典数据集 NCBI SRA
Pedersen et al. 2016 T2D 宏基因组 + 代谢组 NCBI SRA

7. 常见挑战

7.1 数据标准化

问题:不同组学的数据尺度完全不同。
  转录组:基因表达量可能是 0 ~ 几万(counts)
  代谢组:代谢物浓度可能是 0.001 ~ 100(mmol/L)
  宏基因组:物种丰度是 0 ~ 1 的比例

如果直接拼在一起,表达量大的组学会"压制"其他组学。

解决:
  1. 每种组学内部先各自标准化(z-score、log变换、CLR变换等)
  2. 宏基因组的组成数据要用 CLR(中心对数比)变换,
     因为丰度比例是"成分数据",普通标准化会引入假相关
  3. 再用整合工具(MOFA+ 等)时,让工具自动处理组学间的缩放

7.2 样本量不匹配

问题:并非每个样本都做了所有组学检测。
  100 个样本做了转录组,但只有 60 个同时做了代谢组。
  怎么办?丢弃 40 个只有转录组的样本?还是硬填缺失值?

解决:
  1. MOFA+ 原生支持缺失数据:有些样本某种组学完全缺失也能训练
  2. mixOmics 要求完整匹配:只取做了所有组学的 60 个样本
  3. 折中方案:先用完整样本训练模型,再用缺失样本做预测

7.3 批次效应

问题:不同批次/实验室/时间点测的数据会有系统性偏差。
  第一批测的转录组整体偏高,第二批偏低——这种差异不是生物学差异。
  多组学整合时,不同组学可能在不同批次测的,批次效应更难控制。

解决:
  1. 实验设计阶段:让不同分组均匀分布在每个批次
  2. 计算阶段:ComBat / limma::removeBatchEffect 去批次效应
  3. MOFA+:可以用 group 参数把批次信息纳入模型
  4. 最重要的:在分析前,画 PCA 图看样本是不是按批次聚类而不是按生物学分组聚类

7.4 其他注意事项

挑战 白话解释 建议
过拟合 变量太多样本太少,模型"死记硬背" 用交叉验证评估,用稀疏方法(sPLS)做变量选择
因果 vs 相关 多组学整合发现的是关联,不一定是因果 用时间序列数据或功能实验验证
计算资源 大规模多组学数据需要较多内存和计算时间 先降维/筛选,再做整合;MOFA+ 支持 GPU 加速
结果解读 得到一堆因子和权重,怎么和生物学对应 富集分析(GO/KEGG)、文献验证、临床关联

8. 常见问题

Q1:我做宏基因组的,没有蛋白质组和代谢组数据,多组学分析和我有关系吗?

有。你可以:(1) 用公开数据集(如 HMP2)练手学方法;(2) 宏基因组内部也可以做"多层"分析,比如物种组成 + 功能注释(KEGG 通路丰度)两层数据的整合,思路和多组学整合是一样的;(3) 面试时展示你理解多组学整合的策略和工具,本身就是加分项。

Q2:MOFA+ 和 mixOmics/DIABLO 我该选哪个?

简单判断:如果你有明确的分组(如 T2D vs 健康)且想筛选 biomarker,用 DIABLO(监督式);如果你更想探索性地看"数据里有什么共同模式",用 MOFA+(无监督)。实际项目中两个都做、互相验证是最好的。

Q3:样本量多少才够做多组学整合?

没有绝对标准,经验法则: - MOFA+:每组至少 15-20 个样本能跑,但 50+ 更可靠 - DIABLO:每组至少 20 个样本,变量选择后的特征数不应超过样本数 - SNF:对样本量要求相对宽松,20+ 即可 - 总之:样本数 > 每种组学选出的特征数,是基本底线

Q4:多组学整合的结果怎么发表?用什么图?

标准配图包括:(1) 方差解释图(每个因子在每种组学中的贡献);(2) 因子散点图(样本按因子得分着色,看分组效果);(3) 权重/载荷图(关键特征排名);(4) circos 图(不同组学特征之间的关联弧线);(5) 热图(多组学特征聚类)。mixOmics 自带 plotDiablocircosPlot 等函数直接出图。

Q5:多组学整合和机器学习是什么关系?

多组学整合可以和机器学习结合:(1) 用多组学整合方法(如 MOFA+)先降维/提取因子,再把因子作为特征输入机器学习模型(如随机森林)做分类预测;(2) 你的 T2D 项目已经用了随机森林,可以直接把宏基因组特征 + 代谢组特征一起作为输入特征,这就是"早期融合 + 机器学习"的方案。

Q6:深度学习在多组学整合中有应用吗?

有,但目前相对前沿,样本量要求大:(1) 多模态自编码器(Multi-modal Autoencoder):用神经网络学习多组学数据的共享低维表示;(2) 图神经网络(GNN):在 SNF 构建的网络上做节点分类;(3) 注意力机制:自动学习不同组学的权重。但对于你当前的样本量和面试需求,掌握 MOFA+ 和 mixOmics 已经足够。


9. 速查表

┌─────────────────────────────────────────────────────────┐
│                 多组学整合分析速查表                       │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  三大融合策略:                                          │
│    早期融合 → 拼表格 → 适合维度相近的组学                  │
│    晚期融合 → 各自分析再合并结论 → 简单但丢失交互信息       │
│    混合融合 → 提取中间特征再整合 → 最常用(MOFA+/DIABLO)  │
│                                                         │
│  工具选择速查:                                          │
│    探索性分析(没有明确分组)→ MOFA+                      │
│    Biomarker筛选(有分组标签)→ DIABLO(mixOmics)       │
│    样本分型/聚类 → SNF                                   │
│    基因共表达网络 → WGCNA                                │
│    联合聚类 → iCluster+                                  │
│                                                         │
│  数据预处理要点:                                        │
│    转录组 → log2(CPM+1) 或 VST 标准化                   │
│    代谢组 → log变换 + Pareto缩放                         │
│    宏基因组(组成数据)→ CLR 变换(不要用简单z-score)     │
│    蛋白质组 → log2变换 + 中位数归一化                     │
│                                                         │
│  质控检查清单:                                          │
│    □ 每种组学内部先单独 QC(去离群值、低质量样本)         │
│    □ 检查批次效应(PCA 着色看批次 vs 生物分组)           │
│    □ 确认样本 ID 匹配(多组学的样本名必须一致!)         │
│    □ 缺失数据比例(>30% 缺失的组学考虑剔除或单独处理)   │
│    □ 样本量检查(每组 > 选出的特征数)                   │
│                                                         │
│  R 包安装:                                              │
│    BiocManager::install("MOFA2")                        │
│    BiocManager::install("mixOmics")                     │
│    install.packages("SNFtool")                          │
│    install.packages("WGCNA")                            │
│                                                         │
│  Python 包安装:                                         │
│    pip install mofapy2                                  │
│    pip install scikit-learn  # PCA、聚类等               │
│    pip install snfpy        # SNF 的 Python 实现         │
│                                                         │
│  面试高频问法:                                          │
│    "你了解多组学整合分析吗?" → 三大策略 + 工具选择       │
│    "你的项目怎么扩展?" → 宏基因组+代谢组整合方案        │
│    "多组学整合的挑战?" → 标准化/样本量/批次效应          │
│    "监督 vs 无监督整合?" → DIABLO vs MOFA+              │
│                                                         │
└─────────────────────────────────────────────────────────┘

10. 延伸资源

入门教程

  • MOFA+ 官方教程:https://biofam.github.io/MOFA2/
  • mixOmics 官方教程:https://mixomics.org/(含 DIABLO 详细 vignette)
  • SNF 原始论文:Wang et al., Nature Methods, 2014
  • 多组学整合综述:Subramanian et al., Bioinformatics, 2020

经典论文

  • Argelaguet et al., "MOFA+: a statistical framework for comprehensive integration of multi-modal single-cell data", Genome Biology, 2020
  • Singh et al., "DIABLO: an integrative approach for identifying key molecular drivers from multi-omics assays", Bioinformatics, 2019
  • Qin et al., "A metagenome-wide association study of gut microbiota in type 2 diabetes", Nature, 2012(你 T2D 项目的经典参考文献)

实战数据

  • HMP2/iHMP:人体微生物组多组学纵向数据(最推荐练手)
  • TCGA 多组学:肿瘤多组学数据(基因组+转录组+甲基化+临床)
  • NCI-60:60个肿瘤细胞系的多组学数据(mixOmics 自带示例数据)

进阶方向

  • 单细胞多组学(scMulti-omics):CITE-seq、Multiome(scRNA + scATAC)
  • 空间多组学:空间转录组 + 空间蛋白质组
  • 因果推断:孟德尔随机化(MR)结合多组学数据推断因果关系
  • 时间序列多组学:纵向多时间点采样,追踪疾病发展过程中的多组学动态变化