Codar
下载

多组学整合分析:MOFA 与 DIABLO

多组学整合分析把同一批样本的转录组、蛋白组、代谢组、甲基化等数据放在一起建模,寻找跨组学共享或某一组学特有的变异来源。MOFA(Multi-Omics Factor Analysis)是无监督方法,把多个组学矩阵分解为少数潜在因子,并给出每个因子在各组学中解释的方差。DIABLO 来自 R 包 mixOmics,是有监督的多块稀疏判别分析,以已知分组为目标,选出区分组别且彼此相关的跨组学特征。MOFA 可容忍部分样本缺失某种组学,DIABLO 需要完整配对。

什么时候用

  • 同一批样本测了两种及以上组学,想找出主要的变异来源
  • 想知道某个变异轴由哪种组学驱动,或是否在多个组学中共享
  • 有明确分组,想选出跨组学的联合判别特征组合
  • 部分样本缺少某种组学数据,仍希望利用全部样本建模
  • 把分子层面的因子与表型、批次等协变量关联,解释样本异质性

不适合的情况

  • 不同组学来自不同样本且无法配对,应改为通路或基因层面的结果整合
  • 每组只有几个样本却用 DIABLO 挑选特征,极易过拟合
  • 单一组学已足以回答问题时,强行整合只会增加复杂度

需要准备的数据

各组学矩阵
各自完成标准化、log 转换和缺失值处理;样本 ID 在所有组学间统一
特征筛选结果
每个组学保留高变特征,数量级尽量接近,避免特征多的组学主导模型
样本信息
分组、批次、性别等协变量;DIABLO 必须有分组标签,MOFA 用于事后解释
样本缺失情况
MOFA 允许部分样本缺整块组学;DIABLO 需要所有组学样本一致

分析步骤

  1. 1

    设计整合方案

    先明确目标:探索主要变异来源选 MOFA,区分已知分组并挑特征选 DIABLO。同时盘点每个样本有哪些组学、各组学样本量和特征数,判断数据能否满足方法要求。

  2. 2

    单组学预处理

    每种组学按各自惯例处理:RNA-seq 用 vst 或 log CPM,蛋白组和代谢组做 log 转换与缺失值处理,甲基化芯片常用 M 值。批次先在各组学内部检查和处理。

  3. 3

    特征选择与平衡

    按方差在每个组学中选出高变特征,常各取数百到数千个,使各组学特征数量级相近。特征过多的组学在 MOFA 中会占据更多解释方差,掩盖其他组学的信号。

  4. 4

    训练 MOFA 模型

    用 MOFA2 创建对象、设置数据和模型选项后训练。检查是否收敛,去掉几乎不解释方差的因子;必要时换随机种子重复训练,确认主要因子能稳定出现。

  5. 5

    解读 MOFA 因子

    先看方差分解图确定每个因子由哪些组学驱动,再把因子值与分组、协变量做相关,最后对高载荷特征做富集分析,为因子赋予生物学含义。

  6. 6

    构建 DIABLO 模型

    用 mixOmics 的 block.splsda 设定设计矩阵和成分数,用 tune.block.splsda 通过交叉验证确定每个组学保留的特征数 keepX,再用 perf 评估分类错误率。

  7. 7

    评估与可视化

    用 plotIndiv 看样本分离,用 circosPlot 和 cimDiablo 展示跨组学特征相关。条件允许时在独立样本中检验所选特征;交叉验证错误率低得反常时,要警惕过拟合。

关键参数与决策

MOFA 因子数

初始因子数常设 10–15,训练中会剔除解释方差很小的因子。因子过多会把噪声拆成许多小因子,过少则会把不同的生物学过程混进同一因子。

似然函数

MOFA 对连续数据用 gaussian,二值数据用 bernoulli,计数数据用 poisson。多数经过 log 转换的组学数据使用 gaussian,前提是分布近似正态。

scale_views

让各组学的总方差处于同一尺度。不同组学方差量级差别很大时建议开启,否则方差大的组学会主导因子;量级相近时可保持关闭。

DIABLO 设计矩阵

取值 0–1,表示模型对组学间相关的重视程度。值高更强调组学一致性,值低更强调分类效果;mixOmics 教程常用 0.1 左右在两者间折中。

keepX 与 ncomp

keepX 是每个成分在各组学中保留的特征数,ncomp 是成分数,两者都应通过交叉验证确定。手动设得过大,模型会选入大量与分组无关的特征。

交叉验证方案

tune 和 perf 中常用 M 折交叉验证并多次重复。样本少时折数不宜过多,重复次数要足够,报告平均错误率及其波动范围。

常见错误

  • 各组学特征数量悬殊却不做平衡:特征多的组学主导潜在因子,方差分解图上看起来只有一种组学重要。
  • 不在单组学内处理批次:若批次同时影响多个组学,MOFA 会把它识别为解释方差最大的因子,被误读为生物学信号。
  • DIABLO 用全部样本选特征后再报告分类效果:特征选择和评估使用同一批数据,错误率被严重低估。
  • 样本 ID 在不同组学间不一致或顺序错位:模型照样能运行,但学到的是错配的关系,结果没有意义。
  • 直接把 MOFA 因子命名为某种生物学过程:因子是数据驱动的变异轴,可能与多个协变量相关,应先检查相关再命名。

结果怎么看

方差分解图

展示每个因子在各组学中解释的方差比例。只在一个组学中有方差的因子代表组学特异变异,多个组学都有的代表共享信号;若第一个因子主要与批次相关,说明预处理不足。

因子散点图与协变量关联

用因子值给样本作图并按分组着色,或用热图把因子与协变量对应。能清楚区分分组的因子最值得深挖;与测序深度等技术变量相关的因子应单独标注。

特征载荷图

展示每个因子在各组学中权重最大的特征。高载荷特征在生物学上应相互关联,可对其做富集;若载荷集中在少数离群特征上,需回查原始数据。

DIABLO 样本图与 circos 图

plotIndiv 显示各组学成分空间中样本的分离程度;circosPlot 显示被选特征之间的跨组学强相关。样本分离很好但交叉验证错误率高,提示模型过拟合。

和相近方法怎么选

MOFA 与 DIABLO

MOFA 无监督,不使用分组标签,回答数据中有哪些变异来源;DIABLO 有监督,以分组为目标选出判别特征。探索阶段用 MOFA,有明确分组且需要特征组合时用 DIABLO,两者可先后使用。

整合建模与逐个组学分析

逐个组学做差异分析后在通路层面取交集,简单直观,但看不到跨组学的协同变化;整合模型能直接发现共享的变异轴,但要求样本配对,对预处理也更加敏感。

MOFA 与 WGCNA

WGCNA 在单一组学内构建共表达模块;MOFA 跨组学寻找潜在因子。只有转录组时用 WGCNA 更直接,多组学配对数据时 MOFA 能区分共享信号和组学特异信号。

常见问题

多组学整合分析该选哪种方法?

取决于是否有明确分组以及样本能否配对。只想看数据结构,选无监督的 MOFA;想区分已知组别并挑选特征,选 DIABLO;样本无法配对时,改为在通路或基因层面比较各组学的分析结果。

MOFA 的因子怎么解释?

先看方差分解确定因子主要来自哪些组学,再把因子与分组和协变量做相关,最后查看高载荷特征并做富集分析。三方面信息相互一致时,才适合为因子赋予生物学名称。

DIABLO 需要多少样本?

没有固定门槛,但样本少时交叉验证不稳定,选出的特征难以重现。每组样本越多越好,应通过重复交叉验证报告错误率的波动,条件允许时保留独立验证集。

部分样本缺少某种组学怎么办?

MOFA 可以直接纳入缺少整块组学的样本,用其他组学的信息推断这些样本的因子值;DIABLO 要求完整配对,只能使用所有组学都有数据的样本,或先对缺失部分做插补。

多组学数据需要先做标准化吗?

需要,而且要在每个组学内部按其数据特性分别处理,例如转录组用 vst,代谢组做 log 转换和缩放,甲基化用 M 值。整合模型不会替你修正分布偏斜和批次差异。

在 Codar 里怎么做

在 Codar 中,上传各组学矩阵和样本信息并说明研究目标,Codar 会先做多组学整合方案设计,核对样本配对、特征数量和预处理方式;再按问题训练 MOFA 因子模型解读主要变异来源,或用 DIABLO 构建监督模型并交叉验证选特征。交付方差分解图、因子关联图、载荷表、DIABLO 图、报告和脚本。

可以这样提问
我有 60 例结直肠癌组织的转录组、甲基化芯片和蛋白组数据,想先用 MOFA 看主要变异来源,再按分子分型用 DIABLO 找跨组学特征。
了解多组学整合插件