MOFA 简介

很多人都问我:“多组学数据堆在一起,我该用什么方法去整合?”我记得几年前第一次面对转录组+蛋白质组+代谢组的联合数据时,差点被维度淹死。后来我接触到 MOFA,才觉得这条路打通了。

说白了,MOFA 就是一款能帮你从多组学数据里“揪出”共享和特有结构的因子分析工具。你想想看,每个组学都有自己的噪音和异质性,但生物机制往往是跨组学协同的。MOFA 就负责把那些共同变化的信号拆解成几个可解释的因子。

什么是 MOFA?

MOFA 全称 Multi-Omics Factor Analysis,我习惯把它理解成“多组学版的 PCA”。但它比 PCA 聪明的地方在于:它能处理不同组学之间的数据缺失、尺度差异和噪音结构。我不止一次在项目里遇到这样的场景——转录组有 20000 个基因,蛋白质组只测了 5000 个蛋白,而且两个数据集的样本还不完全重叠。传统 PCA 一跑就报错,MOFA 却可以优雅地收敛。

核心公式(简化理解)
对一个数据矩阵 X (样本 × 特征),MOFA 建模为:
X = Z · W + ε
其中 Z 是共享因子得分(样本 × 因子数),W 是因子载荷(因子数 × 特征数),ε 是噪音。不同组学共享同一套 Z,但各自有自己的 W 和 ε。

MOFA 的应用场景

说实话,MOFA 最让我惊艳的不是它的数学,而是它在“真实世界”数据中的韧性。我总结了几类我亲手踩过的场景:

  • 肿瘤多组学整合:同时输入突变、拷贝数、甲基化、转录组和蛋白质组,找出驱动因子。我曾在肺癌项目里用 MOFA 发现了一个与免疫微环境高度相关的共享因子。
  • 发育/分化时序分析:不同时间点的 RNA-seq 和 ATAC-seq 联合,提取时序模式。
  • 微生物-宿主互作:宏基因组与代谢组配对,拆解微生物群对代谢物的影响。
  • 跨平台批次校正:当同一个组学用不同平台测量时,MOFA 可以建模平台相关的因子。
场景 传统方法痛点 MOFA 的优势
多组学缺失样本 需要完整配对数据 支持部分缺失,自动处理
组学尺度差异大 标准化后仍难统一 自动建模各自噪音
想要分离共享 vs 特有信号 通常只给出一个全局降维 显式拆分成因子载荷
结果可解释性 主成分意义模糊 因子与生物通路直接关联

MOFA 的核心流程

我把 MOFA 的经典工作流画成了一张图,你跟着这个顺序理解基本就通了。

MOFA 分析框架 转录组 RNA-seq 表达矩阵 蛋白质组 质谱定量 代谢组 LC-MS/MS 预处理:缺失填充 + 方差稳定变换 MOFA 因子分解 共享因子 Z + 各组学载荷 W 因子得分 Z 样本 × 因子 因子载荷 W 因子 × 特征(每个组学) 方差贡献 各组学解释率 输出可用于聚类、样本分型、通路富集、生物标志物筛选等下游分析

MOFA 的优势总结

我个人觉得 MOFA 在三个点上非常实用:

  1. 天然处理缺失数据 —— 我之前接手过一个项目,蛋白质组只测了 30% 的样本,其他组学都是全测。MOFA 利用因子结构自动补全缺失,不需要你插值或删样本。
  2. 因子可解释性很强 —— 每个因子对应一组基因/蛋白/代谢物的共表达模块,直接做通路富集就能看出生物学意义。嗯,这里要注意:因子数需要基于方差解释率曲线和交叉验证选择,不要贪多。
  3. 支持分层/分组结构 —— 如果你有多个条件(比如正常 vs 肿瘤),MOFA 可以建模条件特异因子。这个特性我在临床队列里用过,效果比全局因子更灵敏。
一个我踩过的坑
我曾经在整合单细胞转录组和批量蛋白质组时,没有对组学数据做合适的方差稳定变换。结果 MOFA 的第一个因子几乎全是蛋白质组的信号——因为原始值量级差异太大。后来我先对每个组学做对数标准化和方差缩放,因子才真正反映了生物协同变化。
实用建议
在运行 MOFA 之前,建议先做一步“组学内部降维”:对高维组学(如转录组)用 PCA 压缩到前 500~1000 个主成分,再输入给 MOFA。这样既能保留主要变异,又能大幅减少计算时间。我一般写个简单的预处理脚本:
import pandas as pd
from sklearn.decomposition import PCA

rna = pd.read_csv('rna.csv', index_col=0)
pca = PCA(n_components=500)
rna_pca = pca.fit_transform(rna.T)   # 样本 × PC
# 再将 rna_pca 与其他组学合并,喂给 MOFA
注意事项
MOFA 对因子数的选择比较敏感。我习惯用训练集-验证集拆分来做:先设 15 个因子,用 5 折交叉验证看验证集似然值,选择衰减趋缓的点。不要只看训练集拟合,容易过拟合。

说到底,MOFA 不是魔法,但它给了你一个结构化的视角去看多组学数据。当你面对一大堆不同格式、不同尺度的表格时,MOFA 就像一把瑞士军刀——能切、能拧、能撬,关键还不会弄丢你手里的材料。我个人用下来,最痛快的一点是:它的结果可以直接放进论文里的热图和网络图,评审一眼就能看懂。