用途:在多个 bulk 组学层(如 RNA-seq、蛋白质组、甲基化)的共同样本轴上,用 MOFA2 做无监督跨视图因子建模,找出共享变异轴与视图特异轴,输出因子得分(Z)、每视图载荷(W)以及每(因子,视图)的方差解释 R²。因子不看表型,方差分解表才是核心读数。
主要能力与用法:R/Bioconductor 的 MOFA2 通过 basilisk/reticulate 调用 Python mofapy2 后端训练,模型序列化为版本耦合的 .hdf5。R 流程为 create_mofa(data_list) -> prepare_mofa() -> run_mofa();Python 用 mofapy2 训练,muon/mofax 做下游。数据须为特征×样本,逐组学标准化、方差稳定并做 HVG 过滤,使各视图特征数在同一量级。建议过度指定因子数让 ARD 剪枝,num_factors 默认上限依样本量而定(N<=25 为 5,N<=1000 为 15),drop_factor_threshold 可设约 0.01,设 seed 保证可复现。计数数据宜先转换为高斯似然而非泊松;仅当真为二值时才用 bernoulli。
解读:先用 get_variance_explained 与 plot_variance_explained 判断哪些因子为共享轴、哪些为视图特异轴,近乎零 R² 的因子视为噪声。再通过 samples_metadata 附加元数据(须含 sample 列,拟合后才加入,不参与训练),用 correlate_factors_with_covariates 检查与条件、批次、深度的相关性,与批次相关的因子应作为技术因子排除。对带符号权重分正负两极运行 run_enrichment。
适用场景:跨视图可解释变异轴与假设生成;样本缺失整层组学时 MOFA 原生容忍缺失,可直接传入嵌合队列而无需补齐。若样本带空间或时间坐标,可用 MEFISTO(mefisto_options + set_covariates)沿协变量学习平滑因子。多组模式(create_mofa 中的 group)允许因子活性随组变化而权重共享,但它不是批次校正,也不因放入表型而变为监督。
限制与易错点:MOFA 贪婪捕获最大方差,未回归的批次常成头部因子;K 个因子中挑出分开组别者存在确认偏差;大视图会主导因子;小样本配过多因子会过拟合;随机推断下种子脆弱需重训验证。有监督判别整合应改用 mixOmics DIABLO;离散亚型分群用 iCluster;显式分离联合与个体结构用 JIVE;单细胞多模态 MOFA+ 见单细胞整合流程。资料未提供具体收费、价格与平台信息。