我们提出了一种灵活且可扩展的基于 Jupyter-lab 的工作流程,用于对复杂的多组学数据集进行无监督分析,该流程整合了不同的预处理步骤、多组学因子分析模型的估计以及多种下游分析方法。
需要JoVE订阅才能观看此内容。 请登录或开始免费试用
我们提出了一种灵活且可扩展的基于 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 脚本执行期间出现错误提示,且不会生成任何图表或数据。...
访问受限。请登录或开始试用以查看此内容。
通过本方案,介绍了一种基于 Jupyter Notebook 的模块化且可扩展的工作流程,可用于快速探索复杂的多组学数据集。该工作流程的主要部分包括数据预处理与数据整合(提供多种标准步骤用于数据的过滤与标准化)、MOFA9 模型的估计以及一些示例性的下游分析。其中最关键的步骤之一是对不同的组学数据集进行预处理、整合与标准化。本文介绍了一种针对包含单细胞 RNA 测序(scRNA-seq)数据、prime-seq 大量 RNA 测序、细胞因子检测、血浆蛋白质组学及临床指标的数据集的处理策略, 最终获得了一个整合且标准化的数据集,可用于识别心肌梗死(MI)11 中相关的重要生物学过程。若其他组学数据需要额外的预处理方法,则应在 MOFA 分析之前完成这些步骤。预处理后的数据可作为当前工作流程的输入。该模型的输出结果可用于评估不同数据集整合的质量以及预处理对识别潜在技术偏差的影响。例如,可首先仅应用最少的预处理和标准化步骤,随后评估进一步标准化的效果。在本应用中观察到,加入“按特征进行的分位数标准化”可使蛋白质组学 与其他检测方...
访问受限。请登录或开始试用以查看此内容。
作者声明无利益冲突。
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 |
访问受限。请登录或开始试用以查看此内容。