我们提出了一种灵活且可扩展的基于 Jupyter-lab 的工作流程,用于对复杂的多组学数据集进行无监督分析,该流程整合了不同的预处理步骤、多组学因子分析模型的估计以及多种下游分析方法。
我们提出了一种灵活且可扩展的基于 Jupyter-lab 的工作流程,用于对复杂的多组学数据集进行无监督分析,该流程整合了不同的预处理步骤、多组学因子分析模型的估计以及多种下游分析方法。
疾病机制通常十分复杂,由多种不同的分子过程相互作用所决定。复杂且多维度的数据集是深入理解这些过程的宝贵资源,但由于高维度性(例如来自不同疾病状态、时间点以及在不同分辨率下获取的组学数据)使得此类数据集的分析具有挑战性。
本文展示了一种无监督分析方法,通过将多组学因子分析(MOFA)应用于来自血液样本的数据集,以分析和探索急性与慢性冠状动脉综合征中免疫应答的复杂多组学数据。该数据集包含多种不同分辨率的检测数据,包括样本水平的细胞因子数据、血浆蛋白质组学和中性粒细胞prime-seq,以及单细胞RNA测序(scRNA-seq) 数据。此外,每位患者在多个不同时间点进行了测量,并包含多个患者亚组,进一步增加了数据的复杂性。
分析工作流程概述了如何分多个步骤整合和分析数据:(1)数据预处理与标准化,(2)MOFA模型的估计,(3)下游分析。步骤1概述了如何处理不同数据类型的特征,过滤低质量特征,并对其进行标准化以统一其分布,为后续分析做准备。步骤2展示了如何应用MOFA模型,并探索在整个数据集所有组学数据和特征中主要的变异来源。步骤3介绍了多种针对所捕获模式的下游分析策略,将其与疾病状态及可能调控这些状态的分子过程相联系。
总体而言,我们提出了一种针对复杂多组学数据集的无监督数据探索工作流程,可用于识别由不同分子特征构成的主要变异轴,该方法也可应用于其他场景和多组学数据集(包括示例性应用案例中所示的其他检测方法)。
疾病机制通常十分复杂,由多种不同的分子过程相互作用所决定。解析导致特定疾病或调控疾病进展的复杂分子机制是一项具有重要医学意义的任务,因为这可能为理解和治疗疾病提供新的见解。
近年来的技术进步使得能够在更高分辨率(例如单细胞水平)和多个生物层面(例如DNA、mRNA、染色质可及性、DNA甲基化、蛋白质组学)上同时测量这些过程。这导致了大规模多维生物数据集的不断增多,这些数据集可进行联合分析,从而更深入地揭示潜在的生物学过程。与此同时,以符合生物学意义的方式整合并分析不同数据来源仍是一项具有挑战性的任务1。
不同组学技术之间的技术限制、噪声水平以及变异范围差异构成了一个挑战。例如,单细胞RNA测序(scRNA-seq)数据通常非常稀疏,并常受到较大的技术偏差或批次效应影响。此外,其特征空间通常非常庞大,涵盖数千个被检测的基因或蛋白质,而样本量却有限。复杂的实验设计进一步加剧了这一问题,这些设计可能包含多种疾病状态、混杂因素、时间点以及不同分辨率。例如,在本展示的应用案例中,不同类型的数据分别来自单细胞水平或样本(批量)水平。除此之外,数据可能不完整,并非所有分析对象都具备全部测量值。
由于这些挑战,不同的组学及其包含的特征通常仍被单独分析2,尽管整合分析不仅能够提供对整个过程的全面认识,而且一种组学中的生物学或技术性噪声也可能被其他组学所补偿3,4。已有多种方法被提出用于开展多组学数据的整合分析,包括贝叶斯方法、基于网络的方法5,6、多模态深度学习7,以及通过矩阵分解实现的降维方法8,9。在这些方法中,一项大规模基准研究10的结果表明,当需要将数据与临床注释关联时,MOFA9(多组学因子分析)方法是较为适用的工具之一。
在复杂场景中,无监督矩阵分解方法是一种有效手段,可用于降低复杂性,并从不同数据源和特征中提取共有的及互补的信号。通过将复杂空间分解为低秩的潜在表征,可快速探索数据中的主要变异来源,并将其与已知的协变量关联起来。当多个特征(例如基因或蛋白质)之间存在相同的变异模式时,这些模式可被聚合为少数几个因子,同时降低噪声。正则化可用于提高模型系数的稀疏性,这使得该方法在特征空间较大而样本数量有限的情况下尤为适用9。
本方案介绍了一种灵活的分析工作流程,利用MOFA模型展示如何快速探索复杂的多组学数据集,并提取表征该数据集的主要变异模式。该工作流程包括三个主要步骤。第一步为数据预处理与标准化,介绍了针对不同输入数据类型(单细胞RNA测序、蛋白质组学、细胞因子、临床数据)的数据预处理策略。本方案详细阐述了如何处理不同输入数据集的特征,过滤低质量特征,并对其进行标准化以统一其分布。我们还展示了这些预处理决策可能对下游分析结果产生的影响。第二步是将MOFA模型应用于数据,所得的方差分解结果可用于评估不同数据集的整合效果。第三步展示了如何将提取出的潜在因子与协变量关联,进而揭示定义这些因子的分子程序。通过本工作流程,我们能够从冠状动脉综合征患者数据集中提取出多个与临床协变量相关的潜在因子,并从先前的研究项目中识别出潜在的多细胞免疫程序11。本文将以该数据集为例进行说明,但本方案也可轻松应用于其他场景,包括其他组学数据。
该数据集包含来自稳定型慢性冠状动脉综合征(CCS)患者、急性冠状动脉综合征(ACS)患者以及冠状动脉健康对照组(非CCS)的样本(图1)。ACS通常由既有的CCS斑块破裂引起,导致心肌血流急性中断,进而造成心肌缺血性损伤。这种损伤会引发免疫系统的炎症反应,随后进入修复阶段,该阶段可持续至急性事件发生后的数天12。为了表征ACS患者的免疫反应,分别在四个不同时间点采集了血液样本:急性期(TP1);再通后(14 [± 8] h)(TP2);再通后60 [± 12] h(TP3);出院前(6.5 [±1.5] 天)(TP4)(图1A)。对于CCS患者及冠状动脉健康者,仅有一个时间点的样本可用(TP0)。针对所有患者及各时间点,基于血液样本开展了多种检测:炎症临床标志物(肌酸激酶(CK)、CK-MB、肌钙蛋白、C反应蛋白(CRP))、外周血单个核细胞(PBMCs)的单细胞RNA测序(scRNA-seq)、细胞因子分析、血浆蛋白质组学以及中性粒细胞的prime-seq13数据。

图 1:心肌梗死多组学输入数据集。 输入数据集:分析的数据包括来自急性冠脉综合征(ACS)患者(n = 62)、慢性冠脉综合征(CCS)患者以及冠状动脉健康患者(非 CCS)的血液样本。ACS 患者的血液样本包含四个不同时间点(TP1–4),CCS 和非 CCS 患者的样本则仅包含一个时间点(TP0)。每个患者与时间点的组合在分析中被视为独立的样本。对样本进行了多种组学检测:临床血液检测(n = 125)、单细胞 RNA 测序(scRNA-seq,n = 121)、血浆蛋白质组学(plasma-proteomics,n = 119)、细胞因子检测(cytokine assay,n = 127)以及中性粒细胞 prime-seq(neutrophil prime-seq,n = 121)。随后,应用所述方案对所有组学数据进行整合,并利用 MOFA 模型及后续下游分析(因子分析、通路富集)对数据进行探索。请点击此处查看该图的放大版本。
在此工作流程中,我们采用经过 cellranger 处理并完成质控(QC)后的单细胞 RNA 测序(scRNA-seq)数据的原始计数作为输入,质控步骤例如参照 scanpy14 预处理教程所述。对于细胞类型注释,我们使用了自动化的 Azimuth15 分析流程。随后,针对每一样本和每种细胞类型,通过计算所有细胞的均值得到样本水平的计数汇总(伪批量聚合)。血浆蛋白质组学数据以归一化并经中位数中心化的强度值形式纳入分析;对于中性粒细胞,则采用 prime-seq 数据中的唯一分子标识符(UMI)外显子计数。细胞因子和临床指标数据未进行任何前期预处理。有关(实验)数据生成的更多细节详见相应研究论文11。由于本文所呈现的结果基于在 scRNA-seq 数据中使用自动化的 Azimuth 注释方法,而参考文献中采用的是基于标记基因的注释策略,因此本文结果与发表结果相似,但并不完全相同。原论文已表明,细胞类型注释策略不会改变分析的主要模式和生物学解释,但模型得出的具体数值可能存在细微差异。总体而言,输入数据是一个复杂的多维数据集,包含超过 10,000 个不同特征(基因、蛋白质、临床指标),并涵盖多个时间点以及不同测量层次(单细胞与批量)的数据。严格的预处理与数据标准化策略结合 MOFA 分析,已被证明是探索数据并提取相关免疫程序的有效且快速的工具。在 MOFA 分析中,每个时间点与患者的组合被视为一个独立的样本,每种数据类型和每种细胞类型均被视为一个独立的“视角”(view)。
本方案提供了准备工作流程输入数据、执行不同工作流程步骤、自定义配置参数、解读所得结果图以及根据解读结果迭代调整配置参数的操作说明。各步骤的技术流程概览(图2)展示了本方案各个步骤的总体流程、每步所需的输入数据集以及生成的图表和数据集。

图2:技术工作流程概览。 多组学数据集分析的工作流程示意图。不同元素通过不同颜色和符号加以区分。属于“数据预处理与整合”(1)步骤的 Jupyter Notebook 以蓝色表示。属于“MOFA 模型”(2)步骤的 Jupyter Notebook 以橙色表示。属于“下游分析”(3)步骤的 Jupyter Notebook 以绿色表示。用于结果比较的一个 Jupyter Notebook 以黄色表示。可修改工作流程执行参数的配置文件以紫色突出显示。运行工作流程所需的输入数据集以数据集符号表示,并以灰色突出显示。工作流程执行过程中生成的所有图形输出均以放大镜符号表示。工作流程执行过程中生成的数据集以表格形式表示。总体而言,该工作流程按顺序执行:(1)数据预处理与整合包含两个步骤:首先基于单细胞 RNA 测序(scRNA-seq)输入数据生成伪批量数据表(01_Prepare_Pseudobulk),随后将该数据与其他所有样本水平(批量)输入数据进行整合与归一化(02_Integrate_and_Normalize_Data)。在此步骤中,可通过配置文件分别为每个数据集单独配置应应用哪些指定的预处理和归一化步骤(例如样本过滤)。(2)“MOFA 模型”:使用配置文件(03_MOFA_configs.csv)中指定的配置,对第一步生成的输入数据运行 MOFA 模型。(3)“下游分析”:包含三个不同的 Notebook,可独立运行,用于深入解析生成的 MOFA 结果,并将其与通过“Sample Meta Data.csv”文件提供的样本元数据(协变量)相关联。(4)“模型比较”:是一个独立的小步骤,可用于比较在步骤 2 中生成的不同模型。请点击此处查看该图的放大版本。
该工作流程包含多个使用 R 和 Python 编写的 Jupyter Notebook(运行流程无需掌握 R 或 Python 语言,但若出现错误,具备相关知识可能有所帮助)。在本实验方案的多个步骤中,参数通过配置文件(文件名中包含后缀“_Configs”的“.csv”文件)进行修改。在本方案中,我们仅说明从默认配置出发需要更改的参数。
其他多个参数也可进行调整,例如用于自定义预处理过程。这些参数的详细说明包含在下载的代码库所附带的文件“Documentation_Config_Parameter”中。
1. 准备工作:技术设置与安装
注意:运行此程序前,请确保设备上已预安装 wget、git 和 Apptainer。有关在不同系统(Linux、Windows、Mac)上安装 Apptainer 的指南,请访问:https://apptainer.org/docs/admin/main/installation.html。有关 git 安装的信息,请参见:https://git-scm.com/book/en/v2/Getting-Started-Installing-Git。根据输入数据集的大小,建议在配置合适的计算机上运行该工作流(16 核 CPU,64 GB 内存)。可使用提供的示例数据在本地机器上执行冒烟测试。在示例数据上运行本实验方案的操作说明及预期结果详见补充文件 1。有关在上述数据集上执行的关键实验步骤,请参见补充视频文件 1。
2. 初始化与数据准备

图 3:数据输入与设置。 为执行该工作流程,所有数据必须存储在指定的 input_data 文件夹中。每个输入数据集应提供单独的文件。单细胞数据应以 .h5ad 格式提供,其中包含基于 cluster_id 的细胞注释(例如,来自先前的细胞类型注释步骤的结果)以及一列 sample_id(唯一标识每个待分析的独立样本)。所有其他输入数据集应以 '.csv' 格式提供,包含一列表示 sample_id(需与单细胞数据中的对应列匹配),其余各列则为将在 MOFA 分析中使用的特征。请点击此处查看该图的放大版本。

图 4:Jupyter-lab 配置文件。 在工作流程执行过程中,参数的更改(例如调整过滤选项等)通过“.csv”配置文件进行指定。在克隆的代码仓库中,已包含每个步骤的默认配置文件。这些文件可在 Jupyter-lab 控制台中直接编辑,方式类似于电子表格。 请点击此处查看此图的放大版本。

图 5:Jupyter Notebook 脚本。 完整的工作流程由一系列 Jupyter Notebook 组成,需在修改相应的配置文件后依次执行。通过双击左侧的 Jupyter Notebook,可在右侧打开对应的文件。可点击顶部高亮显示的按钮开始完整执行该文件。请点击此处查看该图的放大版本。
3. 数据预处理与标准化

图6:数据预处理与整合。 “01_Prepare_Pseudobulk”步骤的输出之一是图表“Fig01_Amount_of_Cells_Overview”。在此图中,每个cluster_id(y轴表示先前细胞类型注释步骤所得的细胞类型)对应各样本('sample_id')中的细胞数量。在所展示的结果中,每样本细胞数量较少的细胞类型已被排除在后续分析之外(以删除线标示)。请点击此处查看该图的放大版本。
4. 运行 MOFA
5. 下游分析
6. 比较不同配置和版本(补充图1、补充图2、补充图3、补充图4)
7. 拓展工作流程:添加其他参数和配置
注意:除了当前可在配置文件中设置的参数外,代码中可能还包含其他调整或参数。例如,MOFA 模型本身提供了多个其他训练参数17,这些参数既可以直接在代码中修改,也可以通过配置文件使其可调。本方案的下一节将举例说明如何为额外的 MOFA 模型训练参数实现这一设置。完成此部分需要具备 R 编程知识。
成功执行工作流程后,将生成多个表格和图示,如图2所示。图示文件将存放于/figures文件夹中(图6、图7、图8、补充图1、补充图2、补充图3、补充图4),表格文件将存放于指定的/results文件夹中。
如果工作流执行未成功,可能主要由以下原因导致:技术性错误,例如内存不足(尤其是在第一步加载大型单细胞数据集时)、数据格式不正确(例如,不同数据集之间的 sample_id 列不匹配)或配置文件中的参数设置错误(例如,排除了过多的特征)。在这种情况下,通常会在 Jupyter Notebook 脚本执行期间出现错误提示,且不会生成任何图表或数据。建议使用脚本执行过程中生成的默认配置文件,并仅根据本实验方案中的说明修改特定参数。
成功的执行表现为生成相应的图表和表格,每一步都将揭示有关数据及其内在主要变异模式的额外信息。然而,并非每次执行都必然产生具有生物学意义且可解释的结果。数据通常具有较大的技术效应和不同的分布特征,这些因素需要在“数据预处理与整合”步骤或“MOFA9 模型”中予以考虑(该模型也允许为不同类型的输入数据指定不同的分布),以便提取反映潜在生物学过程的数据变异。
在所展示的工作流程中,可使用不同的多组学数据集作为输入。目前,该工作流程可接受常用的 .h5ad 单细胞数据的文件格式及一种非常通用的 .csv 所有其他数据集的输入文件格式(图3)。不同的组学数据集通常具有截然不同的文件格式。为了不限制工作流程对特定文件格式的执行, .csv 被用作一种非常通用的格式。因此,各种不同的组学数据集均可作为工作流程的输入,但需转换为相应的格式 .csv 按指定格式排列 图3 在使用本工作流程之前,首先需要完成此步骤。该步骤可通过电子表格或特定组学软件进行准备。为了对不同的组学数据集进行预处理,本工作流程提供了多种选项,可通过配置对不同输入数据集应用相应的预处理和标准化步骤(例如,文库大小调整、对数转换、样本分位数标准化)。 02_预处理配置.csv 和 02_预处理配置_SC.csv 文件(图2)。然而,此处可用的选项主要基于本数据集中提供的特定输入数据(scRNA-seq、细胞因子检测、蛋白质组学、prime-seq)。若使用其他组学/数据类型,则可能需要根据现有最佳实践应用额外的、针对特定组学的标准化步骤。在此情况下,数据可以以已完成预处理的形式导入工作流程,并将与其他数据集一并整合,不再进行进一步的预处理步骤。在许多情况下,应用 特征维度分位数归一化 该步骤有助于将所有数据类型的分布调整为正态分布,使不同输入特征之间的下游分析更具可比性,并更符合模型设定的要求。 高斯 噪声
在工作流程执行过程中,会生成多个图表和输出结果,以支持数据整合及后续的生物学下游分析。对于单细胞RNA测序(scRNA-seq)数据,FIG01_Amount_of_Cells_Overview(图6)中的图表显示了哪些细胞类型在每个样本和细胞类型中可能包含的细胞数量过少,从而无法可靠地检测基因表达信号;因为在后续分析中,每个样本中同一细胞类型所有细胞的基因表达均值被用作表达量估计值(即拟 bulk 分析方法)。在此应用场景中,若大多数样本中某细胞类型的细胞数少于3个,则将其排除。
方差分解图 FIG03_Overview_Variance_Decomposition(图7,补充图1)可用于评估不同数据源的整合效果,以及各数据源中方差的共享程度和特有部分。例如,对本研究所用数据集测试不同的预处理策略表明,若在预处理中移除特征层面的分位数标准化步骤,会导致潜在因子更集中于特定数据视图,从而降低蛋白质组数据与其他数据源的整合程度。这一点可从解释方差的减少中看出(补充图1B)。若运行MOFA模型时不对特征进行任何过滤或标准化,则潜在因子所捕获的不同数据视图之间的共享方差会减少(补充图1C)。这表明潜在因子主要反映了特定数据类型的技术性效应。此外,当数据预处理不佳时,MOFA9模型本身也可能返回警告信息。补充图1展示了在替代预处理配置MI_v2和MI_v3下的一个警告示例(具体的示例配置文件存储在克隆的GitHub仓库的config_examples文件夹中)。
此外,在运行 MOFA 模型后,可通过将因子与样本已知的生物学元信息以及技术性和其他混杂协变量进行关联,开展多项下游分析(04_Downstream_Factor_Analysis),以识别因子所捕获变异的可能来源。例如,若 MOFA 模型中的某个因子与某一技术协变量(如批次信息)高度相关,则可能表明该因子主要反映了数据中的技术性变异,而非生物学变异。
为了在下游分析部分缩小生物学解释的范围,本文基于输入数据集概述了几项发现(更精细的解释可参见原始出版物11)。第一步中,我们观察到,采用所设定的预处理策略后,识别出若干能够捕获多种细胞类型以及其它多组学数据类型间变异性的因子(图7A)。例如,因子2捕获了临床输入特征以及单细胞RNA测序(scRNA-seq)数据集中多种细胞类型的变异。将前三个因子与“CRP”和“CK”等相关的临床协变量进行关联(图7B),并分析不同患者亚组(“对照组(包括CCS和非CCS)”与“ACS”)在不同时间点(TP1–TP4)的因子值差异(图7C),我们发现因子2与“CK”值显著相关,因子3与“CRP”值显著相关。同时,在TP1和TP2时间点的“ACS”样本(反映心肌梗死(MI)后免疫应答的急性期)相较于“对照组”以及后续时间点样本(TP3/TP4)显示出因子值的升高。CK是已知的心肌损伤标志物,通常在TP1/TP2时升高,这与因子2所捕获的模式相似。
为了深入了解影响Factor2的生物学过程,我们通过查看模型生成的特征权重表来评估该因子中排名靠前的特征03_Weight_Data.csv)。分析该因子上绝对权重最高的前1%特征,我们发现主要为CD4.TCM和CD14。与输入特征的总体数量相比,单核细胞来源的特征被过度代表图8A),表明这些细胞类型在心肌梗死(MI)后的炎症过程中具有高度相关性(注意:如果预处理过程中未进行特征水平的分位数标准化,不同特征分布也可能影响此结果,应按数据类型分别进行评估)。分析CD4.TCM细胞类型在该因子上的高排名特征,我们发现了一些有趣的基因,如EIF3E18 强健的T细胞活化和HMGB1所必需19,可促进T细胞的扩增和活化(图8B接下来,我们使用 REACTOME 数据库中的免疫通路进行通路富集分析20 数据库作为通路集合(已制备通路数据.csv)。我们发现多个“白细胞介素”通路存在富集现象,包括“白细胞介素-6”信号通路。单细胞RNA测序数据中不同细胞类型内多个基因的表达水平以及细胞因子检测所测得的“IL6”细胞因子数值共同促成了该结果(图8C)。识别这些跨数据类型的共有模式凸显了整合分析的附加价值。总体而言,该方法还可识别多种其他反映疾病状态或与治疗结局相关的因素,以及潜在的多细胞免疫程序,具体细节详见相应发表文献11.
为了进一步强调跨多个组学数据进行整合分析的优势,我们还仅使用蛋白质组学输入数据运行了相同的分析流程(补充图4)。分析所得因子后发现,与整合分析类似,存在一个与“CRP”值高度相关的因子(因子1)。该模式描述了蛋白质组学数据中主要的变异来源,也与整合分析中“因子3”所捕获的其他数据集中的部分变异一致(图7C)。然而,仅基于蛋白质组学数据,无法识别出与整合分析中因子2所反映的炎症时间进程相似的模式。
所介绍的工作流程及MOFA9模型本身具有高度可定制性,包含大量可调节参数。因此,对不同配置所产生的结果进行可视化和系统性比较至关重要。为便于完成此项任务,该工作流程最终可生成针对不同命名运行(即在预处理和模型估计阶段采用不同参数设置)的比较结果。例如,MOFA模型可使用不同数量的潜在因子进行估计(补充图2A),或对特征数量较少的数据视图进行加权处理(补充图3A)。配置并运行工作流程中的最后一个脚本“07_Compare_Models”后,将生成多个图表,用于评估不同流程运行结果之间的相似性。FIG07_Variance_Model_Comparison(补充图2B、补充图3B)展示了不同运行条件下各数据视图所解释的总方差的比较情况。不同运行之间因子值以及特征因子权重的相关性,可用于判断在修改某一特定参数时结果的变化程度(补充图2C、补充图3C)。此处可见,修改因子数量仅导致估计得到的因子值和特征权重发生轻微变化(补充图2C)。而对数据视图进行加权处理,则显著提高了特征数量较少的视图(如“临床”视图)中方差的解释比例(补充图3B)。尽管如此,在前三个因子中,相关特征仍与未加权版本推断出的结果高度相关(补充图3C)。
在 results 文件夹中生成的模型输出 .csv 文件(例如,估计的因子和特征权重)可用于进一步开展个体化的下游分析。所有代码及必要的配置文件(包括文档)均可在 GitHub 上获取,网址为 https://github.com/heiniglab/mofa_workflow。为便于安装分析所需的 conda 软件包而创建的 Singularity 镜像,可从 https://doi.org/10.5281/zenodo.10815146 下载。一个可用于对分析流程进行初步测试的小型示例数据集,也可从同一 Zenodo 记录中下载。

图7:MOFA输出分析。 在运行MOFA模型(03_Run_MOFA.ipynb)并对因子值进行下游分析(04_Downstream_Factor_Analysis.ipynb)后,生成了多个图表:(A)FIG03_Overview_Variance_Decomposition:展示所估计的MOFA因子在不同数据视图中方差解释情况的可视化结果。热图(左侧):显示每个因子在各个视图中捕获该视图总方差的百分比。柱状图(右侧):显示所有因子共同捕获每个视图总方差的百分比。(B)FIG04_Factor_Association_Numerical_Features:显示因子值与选定的数值型样本协变量之间的皮尔逊相关性,此处为临床变量(CRP、CK)。(C)FIG04_Factor_Association_Categorical_Features:以箱线图形式展示分类样本协变量在因子值上的差异。此处比较了ACS患者和对照组患者在各个时间点上因子1-3的因子值。请点击此处查看该图的放大版本。

图 8:MOFA 特征分析。 在运行下游分析(04_Downstream_Factor_Analysis.ipynb,05_Downstream_Investigate_Features.ipynb)后,生成多个图表。此处所有图表均可视化 MOFA 因子 2:(A)FIG04_Top_Feature_Overview_per_Factor:热图(左侧)显示每个视图中被选定因子捕获的方差百分比。条形图(右侧)表示不同视图中各特征对该因子的重要性。左侧显示在该因子所有视图中排名前 1% 的最高特征中,特定视图所占特征总数;右侧则为该数值除以该视图的特征总数所得的百分比。(B)FIG05_Heatmap_Feature_Overview:热图(左侧)显示 CD4.TCM 细胞类型中排名前 1% 的特征,其各样本的标准化表达值,比较“对照组”患者(CCS 和非 CCS)与“ACS”患者在不同时间点的情况。条形图(右侧)显示特征的权重。权重符号的方向在细胞类型名称左侧标示:“+”表示正因子权重;“-”表示负因子权重。(C)FIG06_Pathway_and_Genes:显示属于富集的白细胞介素通路的因子中排名前 25% 的基因的权重。上方热图中为跨视图的平均值,下方热图中为各视图单独展示。请点击此处查看该图的放大版本。
补充图1:数据整合的效果。 该图展示了多种不同数据预处理配置下的FIG03_Overview_Variance_Decomposition:即在不同数据视图中,估计的MOFA因子所解释的方差可视化结果。热图(左侧):显示每个视图中,某一因子所捕获的该视图总方差的百分比。柱状图(右侧):显示每个视图中,所有因子共同捕获的总方差百分比。(A)基于此前各图中生物学下游分析所采用的配置(“MI_v1”)(参数设置与克隆仓库中的默认配置文件一致)。(B)与“MI_v1”相同的预处理配置,但修改为不进行特征层面的分位数标准化(参数设置与仓库中“config_examples”文件夹内的示例配置文件一致)。此配置下MOFA模型输出警告的截图已添加至下方图表中。(C)当不应用任何预处理步骤时所得的方差分解结果,所有数据均未经任何预处理或特征过滤而直接作为输入(参数设置与仓库中“config_examples”文件夹内的示例配置文件一致)。此配置下MOFA模型输出警告的截图已添加至下方图表中。请点击此处下载该文件。
补充图2:MOFA配置——因子数量的影响。 使用“07_Compare_Models.ipynb”脚本生成的结果图,该脚本运行MOFA模型时采用了多种不同的配置。(A)“03_MOFA_configs.csv”:用于运行“03_Run_MOFA.ipynb”脚本的不同配置示例,其中指定了多个不同的因子数量(10、15、20、25)。“07_Comparison_configs.csv”:为执行脚本“07_Compare_Models.ipynb”而指定配置输入文件的示例。(B)“FIG07_Variance_Model_Comparison”:显示在模型中指定的所有因子下,各个数据视图(y轴)的总解释方差。(C)“FIG07_Factor_Correlations”:显示不同配置之间因子样本值的相关性。请点击此处下载该文件。
补充图3:MOFA配置——视图加权的影响。 使用“07_Compare_Models.ipynb”脚本生成的结果图,该脚本采用多种不同配置运行MOFA模型。(A)“03_MOFA_configs.csv”:用于运行“03_Run_MOFA.ipynb”脚本的不同配置示例,其中指定“weighting_of_views”参数为“TRUE”(MI_v1_MOFA_weighted)或“FALSE”(MI_v1_MOFA)。“07_Comparison_configs.csv”:用于指定“07_Compare_Models.ipynb”脚本执行时配置输入文件的示例。(B)“FIG07_Variance_Model_Comparison”,显示在模型中指定的所有因子下,各个视图(y轴)的总解释方差。(C)“FIG07_Feature_Correlations”,显示不同配置之间特征因子权重的相关性。请点击此处下载该文件。
补充图4:多组学整合效果——仅使用蛋白质组学数据。 仅以蛋白质组学数据作为输入时,潜在因子所捕获的结果模式。(A)FIG04_Factor_Association_Numerical_Features:因子值与临床变量(CRP、CK)的皮尔逊相关性。(B)FIG04_Factor_Association_Categorical_Features:ACS患者与对照组患者各时间点因子值的箱线图比较。请点击此处下载该文件。
补充文件 1:Supplementary_File_
使用示例数据运行流程 有关在示例数据上运行流程的说明及预期输出结果,详见另附的补充文件。 请点击此处下载此文件。
补充视频文件1:实验方案的屏幕录制视频。 请点击此处下载该文件。
通过本方案,介绍了一种基于 Jupyter Notebook 的模块化且可扩展的工作流程,可用于快速探索复杂的多组学数据集。该工作流程的主要部分包括数据预处理与数据整合(提供多种标准步骤用于数据的过滤与标准化)、MOFA9 模型的估计以及一些示例性的下游分析。其中最关键的步骤之一是对不同的组学数据集进行预处理、整合与标准化。本文介绍了一种针对包含单细胞 RNA 测序(scRNA-seq)数据、prime-seq 大量 RNA 测序、细胞因子检测、血浆蛋白质组学及临床指标的数据集的处理策略, 最终获得了一个整合且标准化的数据集,可用于识别心肌梗死(MI)11 中相关的重要生物学过程。若其他组学数据需要额外的预处理方法,则应在 MOFA 分析之前完成这些步骤。预处理后的数据可作为当前工作流程的输入。该模型的输出结果可用于评估不同数据集整合的质量以及预处理对识别潜在技术偏差的影响。例如,可首先仅应用最少的预处理和标准化步骤,随后评估进一步标准化的效果。在本应用中观察到,加入“按特征进行的分位数标准化”可使蛋白质组学 与其他检测方法之间的整合效果更佳。
工作流程的另一个重要部分是MOFA的估计9 基于样本水平汇总数据的模型。MOFA 模型的其他扩展形式也存在,例如
MOFA+21 (特别适用于单细胞数据),MEFISTO22 (特别适用于包含时间成分的数据),以及 MuVI23 (在因子分析方法中整合领域知识)。这些扩展方法对于特定类型的数据集或应用场景非常有用,但其应用具有特定要求。例如,使用 MOFA+21 特别是对于单细胞数据而言,在我们的情况下意味着无法轻松利用现有的样本水平上的其他组学数据。使用 MEFISTO22 方法 能够特异性地模拟时间过程,但在无法获得多个时间点的情况下不适用,或者在我们当前的情况下不适用 将仅在一个时间点有测量值的“对照”样本与“ACS”样本的时间分辨数据相结合。因此,在这一通用工作流程中,我们选择使用 MOFA9 方法,因为它是一种探索各类数据集最灵活的方法,能够在快速分析的同时满足较少的前提条件。值得注意的是,工作流程中生成的预处理数据也可使用这些方法进行分析,或者在数据集符合方法要求的前提下,可对现有脚本进行扩展以整合这些方法。有关更多应用场景、教程和文档,请参考 MOFA 开发者在 GitHub 上的代码仓库24.
与主成分分析(PCA)等更为通用的降维方法相比,MOFA9 模型具有多项优势,尤其是在多组学场景中。例如,可以按输入视图对变异分解进行分析,并可为不同视图分配权重,以考虑特征数量的差异。该模型鼓励稀疏性,从而提高结果的可解释性。此外,即使某个组学数据中存在缺失值的样本也无需被排除,且该模型具备一些特性,可专注于学习稀疏的特征因子权重。同时,MOFA模型还提供多种设置,用于整合具有不同分布特征的数据(可建模“Gaussian”、“Bernoulli”或“Poisson”似然)。在此工作流程中,我们仅整合连续型数据,并将其标准化以符合“Gaussian”分布;但如有需要,现有代码也可扩展用于整合其他类型的数据。此外也存在其他基于分解的方法,例如针对单细胞RNA测序(scRNA-seq)数据的scITD25,但这些方法的局限性在于其并未设计用于处理其他组学数据。
本工作流程展示了一种用于无监督探索大规模复杂多组学数据集的方案,旨在识别驱动数据内部变异的潜在生物学过程及其他特征。该方法几乎可应用于任何需要研究数据变异性的场景,例如由疾病或其他生物学或技术性扰动引起的数据变化。通过分析不同组学层面变异的下游结果及其驱动特征集合,可揭示在特定背景下值得进一步研究的相关生物学过程。例如,在疾病研究背景下,该方法可能有助于发现新的诊断标志物或治疗靶点。
作者声明无利益冲突。
C.L. 由亥姆霍兹协会在联合研究生院"Munich School for Data Science - MUDS"项目下提供资助。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Apptainer | NA | NA | https://apptainer.org/docs/admin/main/installation.html |
| 计算服务器、工作站或云平台 (Linux、Mac 或 Windows 环境)。 根据不同输入数据集的大小,建议在合适的设备上运行该工作流程(在我们的设置中使用:16 核 CPU,64GB 内存) | 任意厂商 | 16 CPU, 64GB Memory | 大内存仅在处理原始单细胞数据时需要。预处理完成后,后续分析步骤也可在普通台式机或笔记本电脑上进行 |
| git | NA | NA | https://git-scm.com/book/en/v2/Getting-Started-Installing-Git |
| GitHub | GitHub | NA | https://github.com/heiniglab/mofa_workflow |