方法文章

应用无监督多组学因子分析揭示与心血管疾病相关的变异模式及分子过程

2.6K 次观看

DOI:

10.3791/66659

2024年9月20日

本文内容

摘要

我们提出了一种灵活且可扩展的基于 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数据。

STEMI 流程、血液采样、多组学数据整合与分析的患者队列示意图
图 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)展示了本方案各个步骤的总体流程、每步所需的输入数据集以及生成的图表和数据集。

数据整合工作流程图、伪批量数据制备、MOFA因子分析、基因归一化。
图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

  1. 打开控制台,选择或创建一个文件夹用于存储所有分析代码和输出结果。在终端中输入命令:cd path_to_folder ,进入该文件夹。
  2. 从 Github 下载或克隆代码仓库(https://github.com/heiniglab/mofa_workflow),或在终端窗口中输入命令:git clone https://github.com/heiniglab/mofa_workflow.git
  3. 在终端窗口中输入命令:wget https://zenodo.org/records/11192947/files/mofa_image.sif,从 Zenodo 下载包含所有必要安装程序的镜像文件。
  4. 在终端窗口中输入命令:mkdir results,创建一个用于存储所有结果数据的文件夹。
  5. 在终端窗口中输入命令:mkdir input_data,创建一个用于存放分析所需输入数据的文件夹。
  6. 在终端中输入以下命令以启动容器并开启 JupyterLab 会话:apptainer run mofa_image.sif。将命令返回的 URL 复制到浏览器中,即可打开 JupyterLab 会话(有关 JupyterLab 的更多信息,请参见软件文档16)。
    注意:若在本地笔记本电脑上运行该工作流程,建议改用命令 apptainer exec mofa_image.sif jupyter-lab,该命令将直接返回本地主机地址。如果在集群计算环境中运行容器,可能需要通过 ssh 设置端口转发。

2. 初始化与数据准备

  1. 在 Jupyter-Lab 会话中,使用左侧的导航菜单。导航至 input_data 双击文件夹 input_data.
  2. 将所有将用作分析输入的数据集复制到 input_data 目录中 拖拽&滴将文件从当前所在文件夹拖动到 Jupyter-lab 会话中 input_data 文件夹下方的区域。
    注意:所有数据集必须位于以下任一位置 .csv.h5ad (对于单细胞数据而言)格式。所有 .csv 文件必须包含匹配的 样本编号 列(数据集之间必须使用相同的 ID)。所有其他列将用作特征。在 h5ad- 文件中,细胞注释必须包含两个标识符以指定 样本编号 cluster_id这些数据将用于聚合和匹配。其他格式的组学数据集需要转换为指定格式 .csv 使用前进行格式化(图3)。给定的单细胞RNA测序(scRNA-seq)数据集 .h5seurat 格式可能会被转换 .h5ad 执行 Jupyter 笔记本: 00_数据转换.ipynb.
  3. 导航至 构型 点击文件夹 文件夹 符号,然后双击文件夹 mofa_workflow,脚本, 构型在文件夹中,打开该文件 Data_configs.csv 双击即可。
  4. 列,添加文件夹路径到 input_data (data_path)和 结果 (result_path)文件夹。添加一个名称,该名称将作为文件扩展名添加到所有保存的文件中 用于的柱 配置名称 (本方案采用 MI_v1 [心肌梗死 第1版]图4).
  5. 单击以保存更改 文件 > 保存 CSV 文件 在顶部菜单中。
  6. 使用左侧的导航菜单,通过点击进入脚本文件夹 脚本. 双击以打开初始化笔记本 00_配置更新.ipynb。通过点击执行该脚本 重启内核并运行所有单元格 顶部的按钮,然后单击 重启 在弹出窗口中(图5).

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

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

使用 Jupyter Notebook 进行 MOFA 分析的集成开发环境代码。
图 5:Jupyter Notebook 脚本。 完整的工作流程由一系列 Jupyter Notebook 组成,需在修改相应的配置文件后依次执行。通过双击左侧的 Jupyter Notebook,可在右侧打开对应的文件。可点击顶部高亮显示的按钮开始完整执行该文件。请点击此处查看该图的放大版本。

3. 数据预处理与标准化

  1. 预处理——将单细胞数据转换为伪批量数据。
    注意:仅当分析中使用单细胞数据时,才需要执行此步骤。
    1. 使用左侧的导航菜单,通过双击configuration进入配置文件夹。通过双击打开文件01_Preprocessing_SC_Data.csv。检查文件中自动填充的值,如有必要,调整data_name 列中的值,使其与input_data 文件夹中将用于分析的单细胞数据集的文件名相对应。
      注意:默认情况下,初始化脚本会将输入数据文件夹中所有.h5ad文件的名称添加到配置文件中。如果某些数据集不应用于分析,可在此处将其移除。
    2. 在顶部菜单中点击文件 > 保存 CSV 文件,以保存所做的更改。
    3. 使用左侧的导航菜单,点击scripts进入scripts 文件夹。通过双击打开笔记本01_Prepare_Pseudobulk.ipynb 。点击顶部的重启内核并运行所有单元格 按钮,并在弹出窗口中点击重启,以执行该脚本。
    4. 使用左侧的导航菜单,先双击figures ,再双击01_figures,进入图表文件夹。通过双击打开新生成的图表FIG01_Amount_of_Cells_overview
      注意:笔记本的执行可能需要数分钟。当笔记本成功执行后,将弹出提示窗口,且文件FIG01_Amount_of_Cells_Overview 将被笔记本更新或重新生成。最后修改时间列可指示文件的生成时间,以判断其为新文件或旧文件。
    5. 检查图表,识别每个样本中细胞数量极少的细胞类型簇。记录下需在后续步骤中排除的簇 ID 名称(图 6)。
    6. 使用左侧的导航菜单,点击 …,然后双击configurations,返回配置文件夹。通过双击打开文件02_Preprocessing_Configs_SC.csv
    7. 检查configuration_name data_name 列中的值,并根据需要进行调整。
      注意:在初始化脚本中,这些值会预先填充为输入数据文件夹中所有.h5ad文件的名称,以及先前在Data_Configs.csv文件中设置的configuration_name 值。如果需要从分析中排除某些文件,或使用其他文件名扩展名,可在此处进行调整。
    8. cell_type_exclusion 列中调整值,添加上一步中确定需排除的所有 cluster_id,各 ID 之间用“”分隔。
    9. 在顶部的导航栏中点击文件 > 保存 CSV 文件,以保存更改。
  2. 预处理——整合与标准化其他组学数据源。
    1. 通过双击打开文件02_Preprocessing_Configs.csv,并为将要包含且存储在data_input 文件夹中的每个数据集调整预处理配置(每行对应一个数据集)。
    2. 检查configuration_name data_name 列中的值,并根据需要进行调整。
    3. 根据需要应用的预处理步骤,相应地调整各列中的其他参数。
      注意:对于输入数据集文件夹中找到的每个数据集,系统会添加默认值,但这些值并不针对特定数据类型。因此,必须进行调整。参数的详细说明见Documentation_Config_Parameter.doc文件。
    4. 点击文件 > 保存 CSV 文件以保存更改。
    5. 使用左侧的导航菜单,点击scripts进入scripts 文件夹。通过双击打开笔记本02_Integrate_and_Normalized_Data_Sources.ipynb。点击顶部的重启内核并运行所有单元格 按钮,并在弹出窗口中点击重启,以执行该脚本。
    6. 使用左侧的导航菜单,点击folder 图标,然后依次双击results 02_results,进入生成的02_results 文件夹。检查其中是否包含文件02_Combined_data_'configuration_name'_Integrated.csv,该文件为整合后的预处理数据输入文件。

细胞簇分布热图;颜色编码的细胞丰度图;样本间比较。
图6:数据预处理与整合。 “01_Prepare_Pseudobulk”步骤的输出之一是图表“Fig01_Amount_of_Cells_Overview”。在此图中,每个cluster_id(y轴表示先前细胞类型注释步骤所得的细胞类型)对应各样本('sample_id')中的细胞数量。在所展示的结果中,每样本细胞数量较少的细胞类型已被排除在后续分析之外(以删除线标示)。请点击此处查看该图的放大版本。

4. 运行 MOFA

  1. 在 Jupyter-Lab 中,使用左侧的导航菜单,通过点击进入 configurations 文件夹 文件夹 符号,然后双击 mofa_workflow,然后双击 脚本 构型. 打开文件 03_MOFA_配置.csv 双击即可。
  2. 检查以下条目的输入内容 配置名称 mofa_result_name 列并根据需要调整条目,若应使用替代名称。
    注意: mofa_result_name 将作为 MOFA 生成的所有结果文件的文件扩展名。该扩展名可以不同于 配置名称 值,因为相同的输入数据可能会用于不同的 MOFA 设置(本方案使用 MI_v1_MOFA).
  3. 输入应在 MOFA 模型中估计的因子数量(因素数量 柱) 并定义是否应应用加权和缩放(视图加权 比例视图 列)通过调整文件中的数值。
  4. 单击以保存更改 文件 > 保存 CSV 文件.
  5. 使用左侧的导航菜单进行浏览 脚本 点击“文件夹”即可脚本. 打开笔记本 03_运行_MOFA.ipynb 双击文件即可打开。通过单击来执行该脚本 重启内核并运行所有单元格 顶部的按钮并点击 重启 在弹出窗口中。
  6. 导航至 03_图示 双击文件夹 然后 03_图示. 打开生成的图表 图03_概述_方差分解_'mofa_result_name 并分析模型结果(图7A).
  7. 使用左侧的导航菜单跳转至生成内容 03_结果 点击文件夹 文件夹 符号,然后双击 结果 03_结果检查是否包含样本因子值文件 03_Factor_Data_'mofa_result_name'.csv 以及特征因子权重文件 03_体重数据_'mofa_result_name'.csv.

5. 下游分析

  1. 因子解释
    1. 使用左侧的导航菜单进行导航 输入数据 点击文件夹 文件夹 符号,然后双击 输入数据.
    2. 制备一种 .csv 文件(已制备样本元数据.csv) 包含将与生成因子进行关联分析的样本的所有元数据(协变量)。将该文件复制到 input_data 使用文件夹 拖动&滴 将文件放入文件夹概览中 input_data 文件夹
      注意:必须包含 样本编号 用于匹配先前使用数据的列,以及用于分析每个特征的其他列。
    3. 在 Jupyter-Lab 中,使用左侧的导航菜单,通过点击返回到配置文件夹 文件夹 符号,然后双击 mofa_workflow,随后 脚本 构型. 打开文件 04_因子分析.csv 双击即可。
    4. 检查条目是否正确 配置名称 mofa_result_name 包含将在脚本中分析的配置和 MOFA 结果的名称,并在必要时进行调整。
    5. 数值协变量 柱,添加所有数值型列的名称 制备样品元数据.csv 将用逗号分隔的、拟与MOFA因子相关联分析的文件(本方案使用 C反应蛋白,肌酸激酶).
    6. 分类协变量列,添加所有分类列的名称 已制备样本元数据.csv 将用逗号分隔的、拟针对MOFA因子进行分析的文件(本方案使用 测量).
    7. 单击以保存更改 文件 > 保存 CSV 文件.
    8. 使用左侧的导航菜单,通过点击进入“scripts”文件夹 脚本打开笔记本 04_下游因子分析.ipynb 双击该脚本,然后单击以执行。 重启内核并运行所有单元格 单击顶部的按钮,在弹出窗口中点击重启。
    9. 使用左侧的导航菜单进行浏览 04_图表 双击文件夹 然后 04_图表. 双击生成的图表以打开,并分析各因素之间的有趣模式和关联: 图4 因子与数值型特征的关联
      mofa_result_name.pdf图7B图4 因子关联性
      带分类特征的_mofa_结果名称.pdf图7C). 图4_按因子划分的特征重要性概览_'mofa_result_name.pdf图8A)
      .
  2. 特征分析
    1. 使用左侧的导航菜单,通过点击返回配置文件夹 然后双击 构型. 打开文件 05_Feature_Analysis_Configs.csv 双击即可。
    2. 检查条目是否正确 配置名称 mofa_result_name 列对应于将用于下游分析的配置名称和生成的 MOFA 结果,必要时可对其进行调整。
    3. 因子 柱,添加下一个脚本中将用于绘制顶部特征的因子。
    4. 在柱中 分面变量,添加一个分类列的列名 预处理样本元数据.csv 文件,将用于在图中对样本进行分组(本方案使用 测量)
    5. 单击以保存更改 文件 > 保存 CSV 文件.
    6. 使用左侧的导航菜单进行导航 脚本 点击文件夹 脚本. 打开笔记本 05_下游分析_探究特征_热图.ipynb 双击该文件,然后单击以执行脚本 重启内核并运行所有单元格 顶部的按钮,然后单击 重启 在弹出窗口中。
    7. 使用左侧的导航菜单进行导航 05_图表 双击文件夹即可打开 然后在 05_图示. 打开并分析生成的图表 图05_热图_特征概述_ mofa_result_namepdf 通过双击文件(图8B).
      注意:根据图中将显示的特征数量,可能需要调整参数 绘图宽度 绘图高度 在……之内 05_特征分析配置.csv 重新运行脚本,以确保所有内容均适配图表。
  3. 通路分析
    1. 使用左侧的导航菜单进行导航 input_data 通过点击文件夹 文件夹 符号,然后双击 input_data.
    2. 制备 .csv 文件(制备通路数据.csv) 包含将用于富集分析的通路列表。将该文件复制到 input_data 使用文件夹 拖动&滴 将文件拖放到文件夹概览中 input_data 文件夹
      注意:必须包含三列: ID (该通路的唯一标识符), 基因 (按基因名称(SYMBOL)列出的通路相关基因,每行一个基因) 通路名称 (通路的名称/文字描述)
    3. 在 Jupyter-Lab 会话中,使用左侧的导航菜单,点击 …,然后双击 configurations 文件夹以进入该目录 构型. 打开文件 06_通路配置.csv 双击即可。
    4. 检查条目中的 mofa_result_name 柱,并确保其名称与将用于通路富集分析的 MOFA 结果文件名称相对应。
    5. 检查条目中的内容 类型 柱并移除其中的条目 类型 不包含匹配特征的列 基因 柱中的 已准备通路数据.csv 文件。
      注意:默认情况下,在工作流程执行过程中,MOFA 模型中使用的所有不同视图都会被添加到此文件中。如果某些视图不包含至少匹配一个通路的特征,则需要将其移除;否则,执行将失败。例如,通路文件仅包含基因的通路注释,但存在一个包含蛋白质名称的视图。
    6. 单击以保存更改 文件 > 保存 CSV 文件.
    7. 使用导航菜单进行导航 脚本 通过点击文件夹 脚本打开笔记本电脑 06_下游通路.ipynb 双击该脚本,然后单击以执行。 重启内核并运行所有单元格 顶部的按钮,并单击 重启 在弹出窗口中。
    8. 使用左侧的导航菜单进行导航 06_图示 文件夹,首先双击 然后 06_图表. 打开生成的图表 图06_通路与基因 mofa_result_name 通过双击它来查看可视化通路(图8C).
      注意:可视化通路的选择方式可通过配置文件进行设置。更多详情,请参阅参数的相关文档。
    9. 使用左侧的导航菜单跳转至生成内容 06_结果 通过点击文件夹来 文件夹 符号,然后双击 结果 06_结果检查是否包含含有富集通路的文件 06_通路富集_'mofa_result_name'.

6. 比较不同配置和版本(补充图1、补充图2、补充图3、补充图4)

  1. 为了比较在工作流程中使用不同参数/配置的效果,请重新运行第 3-5 节,修改配置文件中的参数,并使用不同的 configuration_name mofa_result_name 标识符。
    注意:新结果将使用这些名称进行存储,以便比较不同运行结果。
  2. 在 Jupyter-Lab 中,使用左侧的导航菜单进入 configurations 文件夹。通过双击打开文件 07_Comparison_Configs.csv
  3. mofa_result_name 列中,添加所有将被比较的先前 MOFA 运行的名称(每个名称/配置占一行,例如 MI_v1_MOFA, MI_v2_MOFA)。
  4. compare_factors 列中,添加将在模型之间进行比较的因素。默认值为 Factor1,Factor2,Factor3。(补充图 2A)。
    注意:在本脚本中,将通过相关性分析来比较不同模型的特征和因子值。此方法仅适用于基于相同样本(由 sample_id 指示)和相同特征集的模型。如果被比较版本之间的样本或特征不匹配,则这些样本或特征将被排除在比较之外。
  5. 通过点击 文件 > 保存 CSV 文件 来保存更改。
  6. 使用左侧菜单,点击 scripts 进入 scripts 文件夹。通过双击打开笔记本 07_Compare_Models.ipynb。点击 重启内核并运行所有单元格 按钮,并在弹出窗口中点击 重启,以执行脚本。
  7. 使用左侧菜单,先双击 figures ,再双击 06_figures,进入 06_figures 文件夹。通过双击文件打开生成的图表,以分析不同版本之间的相似性:
    FIG07_Variance_Model_Comparison.pdf(补充图 2B)
    FIG07_Factor_Correlations.pdf
    (补充图 2C)
    FIG07_Feature_Correlations.pdf
    (补充图 3C)

7. 拓展工作流程:添加其他参数和配置

注意:除了当前可在配置文件中设置的参数外,代码中可能还包含其他调整或参数。例如,MOFA 模型本身提供了多个其他训练参数17,这些参数既可以直接在代码中修改,也可以通过配置文件使其可调。本方案的下一节将举例说明如何为额外的 MOFA 模型训练参数实现这一设置。完成此部分需要具备 R 编程知识。

  1. 在 Jupyter-Lab 中,使用左侧的导航菜单进入 scripts 文件夹。通过双击打开笔记本 03_Run_MOFA.ipynb
  2. 点击左侧的 目录 选项卡,然后点击其中的子章节 4.3 设置 MOFA 训练选项并运行模型训练。向下滚动以查看笔记本中打印出的 MOFA 模型可配置参数的输出内容。
  3. 在标题下方代码中的 R for 循环内,所有 MOFA 的数据、模型和训练选项均已被设置。在代码行 model_opts$num_factors = mofa_configs$amount_of_factors[i] 下方,添加以下新行:
    model_opts$likelihoods['data_type'] = 'poisson'
    注意:这将更改模型在所有 MOFA 运行中对由名称 data_type 指定的视图所采用的输入分布。当为某一数据类型指定泊松分布(poisson)时,该模型仅在该数据类型的特征为整数(例如来自 RNA-seq 的读段计数)时才能运行。如需了解更多关于 MOFA 数据、训练和模型选项的信息,可参考 MOFA 教程和文档17
  4. 通过点击顶部的 保存 按钮,保存笔记本中的更改。
  5. 若要通过 .csv 配置文件传递新参数,请使用左侧导航栏,通过双击 configurations 进入配置文件夹,并通过双击打开文件 03_MOFA_Configs.csv
    1. 添加一个新列以指定参数名称,例如 number_iterations,并输入一个值,例如 1000。通过点击 文件 > 保存 CSV 文件 保存更改。
    2. 使用导航菜单点击 scripts 进入脚本文件夹。通过双击打开笔记本 03_Run_Mofa.ipynb。点击左侧的 目录 选项卡,然后点击子章节 4.3 设置 MOFA 训练选项并运行模型训练
    3. 将代码行 train_opts$maxiter = 50000 替换为 train_opts$maxiter = mofa_configs$column_name[i](如果新增列的名称为 number_of_iterations,则应写为 train_opts$maxiter = mofa_configs$number_of_iterations[i])。
      注意:该笔记本在开头部分(子章节:前置配置与参数)会读取配置文件 03_MOFA_Configs.csv,并将其作为 mofa_configs 数据框 加载到当前会话中,因此在该代码行中引用了该对象及其对应的新生成列。由于可同时运行多个配置,i 用于标识数据框中的行,因为模型估计是在一个 for 循环中遍历 .csv 文件中的每一行进行的。在笔记本开头的“前置配置与参数”部分读取配置文件的这一原则适用于所有笔记本,其他修改也可依此方式进行。
    4. 通过点击 保存 按钮保存笔记本中的更改。

结果

成功执行工作流程后,将生成多个表格和图示,如图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_v2MI_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"项目下提供资助。

材料

本文使用的材料清单
姓名公司目录编号评论
ApptainerNANAhttps://apptainer.org/docs/admin/main/installation.html
计算服务器、工作站或云平台 (Linux、Mac 或 Windows 环境)。
根据不同输入数据集的大小,建议在合适的设备上运行该工作流程(在我们的设置中使用:16 核 CPU,64GB 内存)
任意厂商16 CPU, 64GB Memory大内存仅在处理原始单细胞数据时需要。预处理完成后,后续分析步骤也可在普通台式机或笔记本电脑上进行
gitNANAhttps://git-scm.com/book/en/v2/Getting-Started-Installing-Git
GitHubGitHubNAhttps://github.com/heiniglab/mofa_workflow

参考文献

  1. Lähnemann, D., et al. Eleven grand challenges in single-cell data science. Genome Biol. 21 (1), 31(2020).
  2. Colomé-Tatché, M., Theis, F. J. Statistical single cell multi-omics integration. Curr Opin Syst Biol. 7, 54-59 (2018).
  3. Hawe, J., Theis, F., Heinig, M. Inferring interaction networks from multi-omics data. Front Genet. 10, 535(2019).
  4. Hawe, J. S., et al. Network reconstruction for trans acting genetic loci using multi-omics data and prior information. Genome Med. 14 (1), 125(2022).
  5. Koh, H. W. L., Fermin, D., Vogel, C., Choi, K. P., Ewing, R. M., Choi, H. iOmicsPASS: network-based integration of multiomics data for predictive subnetwork discovery. NPJ Syst Biol Appl. 5, 22(2019).
  6. Ogris, C., Hu, Y., Arloth, J., Müller, N. S. Versatile knowledge guided network inference method for prioritizing key regulatory factors in multi-omics data. Sci Rep. 11, 6806(2021).
  7. Lee, C., vander Schaar, M. A variational information bottleneck approach to multi-omics data integration. Proceedings of The 24th International Conference on Artificial Intelligence and Statistics. 130, 1513-1521 (2021).
  8. Singh, A., et al. DIABLO: an integrative approach for identifying key molecular drivers from multi-omics assays. Bioinformatics. 35 (17), 3055-3062 (2019).
  9. Argelaguet, R., et al. Multi-omics factor analysis-a framework for unsupervised integration of multi-omics data sets. Mol Syst Biol. 14 (6), e8124(2018).
  10. Cantini, L., et al. Benchmarking joint multi-omics dimensionality reduction approaches for the study of cancer. Nature Commun. 12 (1), 124(2021).
  11. Pekayvaz, K., et al. Multiomic analyses uncover immunological signatures in acute and chronic coronary syndromes. Nature Medicine. 30 (6), 1696-1710 (2024).
  12. Swirski, F. K., Nahrendorf, M. Cardioimmunology: the immune system in cardiac homeostasis and disease. Nat Rev Immunol. 18 (12), 733-744 (2018).
  13. Janjic, A., et al. Prime-seq, efficient and powerful bulk RNA sequencing. Genome Biol. 23 (1), 88(2022).
  14. Wolf, F. A., Angerer, P., Theis, F. J. SCANPY: large-scale single-cell gene expression data analysis. Genome Biol. 19 (1), 15(2018).
  15. Cao, Y., et al. Integrated analysis of multimodal single-cell data with structural similarity. Nucleic Acids Res. 50 (21), e121(2022).
  16. Get Started - JupyterLab 4.1.0a4 documentation. , Available from: https://jupyterlab.readthedocs.io/en/latest/getting_started/overview.html (2024).
  17. MOFA2: training a model in R. , Available from: https://raw.githack.com/bioFAM/MOFA2_tutorials/master/R_tutorials/getting_started_R.html (2020).
  18. De Silva, D., et al. Robust T cell activation requires an eIF3-driven burst in T cell receptor translation. eLife. 10, e74272(2021).
  19. Li, G., Liang, X., Lotze, M. HMGB1: The central cytokine for all lymphoid cells. Front Immunol. 4, 68(2013).
  20. Jassal, B., et al. The reactome pathway knowledgebase. Nucleic Acids Res. 48 (D1), D498-D503 (2020).
  21. Argelaguet, R., et al. MOFA+: a statistical framework for comprehensive integration of multimodal single-cell data. Genome Biol. 21 (1), 111(2020).
  22. Velten, B., et al. Identifying temporal and spatial patterns of variation from multimodal data using MEFISTO. Nat Methods. 19 (2), 179-186 (2022).
  23. Qoku, A., Buettner, F. Encoding domain knowledge in multi-view latent variable models: A Bayesian approach with structured sparsity. Proceedings of The 26th International Conference on Artificial Intelligence and Statistics. 206, 11545-11562 (2022).
  24. Multi-Omics Factor Analysis. MOFA. , Available from: https://biofam.github.io/MOFA2/ (2024).
  25. Mitchel, J., et al. Tensor decomposition reveals coordinated multicellular patterns of transcriptional variation that distinguish and stratify disease individuals. bioRxiv. , (2023).

重印与许可

标签

无监督数据整合单细胞RNA测序多组学工作流程免疫应答谱型分析分子过程发现血浆蛋白质组学细胞因子数据分析下游因子分析