方法文章

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

DOI:

10.3791/66659

2024年9月20日

本文内容

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

我们提出了一种灵活、可扩展的基于 Jupyter 实验室的工作流程,用于复杂多组学数据集的无监督分析,该工作流程结合了不同的预处理步骤、多组学因子分析模型的估计和多种下游分析。

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

疾病机制通常很复杂,并受几个不同分子过程的相互作用控制。复杂的多维数据集是生成对这些过程的更多见解的宝贵资源,但此类数据集的分析可能具有挑战性,因为例如,来自不同疾病状况、时间点和组学以不同分辨率捕获该过程的高维结果。

在这里,我们展示了一种以无监督方式分析和探索如此复杂的多组学数据集的方法,方法是将多组学因子分析 (MOFA) 应用于从捕获急性和慢性冠状动脉综合征免疫反应的血液样本生成的数据集。该数据集由不同分辨率的几种分析组成,包括样本水平的细胞因子数据、血浆蛋白质组学和中性粒细胞引物 seq 以及单细胞 RNA-seq (scRNA-seq) 数据。通过测量每个患者和几个患者亚组的几个不同时间点,进一步增加了复杂性。

分析工作流程概述了如何分几个步骤整合和分析数据:(1) 数据预处理和协调,(2) MOFA 模型的估计,(3) 下游分析。步骤 1 概述了如何处理不同数据类型的特征,过滤掉低质量的特征,并对其进行归一化以协调其分布以供进一步分析。第 2 步展示了如何应用 MOFA 模型并探索数据集中所有组学和特征的主要方差来源。第 3 步提出了几种用于捕获模式下游分析的策略,将它们与疾病状况和控制这些条件的潜在分子过程联系起来。

总体而言,我们提出了一种对复杂的多组学数据集进行无监督数据探索的工作流程,以能够识别由不同分子特征组成的主要变异轴,这些变异轴也可以应用于其他环境和多组学数据集(包括示例性用例中介绍的其他分析)。

引言

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

疾病机制通常很复杂,并受几个不同分子过程的相互作用控制。破译导致特定疾病或控制疾病演变的复杂分子机制是一项具有高度医学相关性的任务,因为它可能会为理解和治疗疾病提供新的见解。

最近的技术进步能够同时在更高分辨率(例如,在单细胞水平上)和各种生物层(例如,DNA、mRNA、染色质可及性、DNA 甲基化、蛋白质组学)上测量这些过程。这导致大型多维生物数据集的生成越来越多,可以对其进行联合分析以生成对基本过程的更多见解。与此同时,以具有生物学意义的方式组合和分析不同的数据源仍然是一项具有挑战性的任务1

不同组学之间的不同技术限制、噪音和变异范围构成了一个挑战。例如,单细胞 RNA 测序 (scRNA-seq) 数据非常稀疏,并且经常受到大型技术或批次效应的影响。此外,特征空间通常非常大,范围涵盖数千个测量基因或蛋白质,而样本量有限。复杂的设计使情况更加复杂,其中可能包括多种疾病状况、混杂因素、时间点和分辨率。例如,在所展示的用例中,在单单元或样本(批量)级别上提供了不同的数据类型。除此之外,数据可能不完整,并且并非所有测量结果都适用于所有分析对象。

由于这些挑战,不同的组学和包含的特征通常仍然只单独分析2,即使执行综合分析不仅可以提供完整的过程图,而且来自一个组学的生物学和技术噪音也可能被其他组学补偿 3,4已经提出了几种不同的方法来对多组学数据进行综合分析,包括贝叶斯方法、基于网络的方法 5,6、多模态深度学习7 和通过矩阵分解的降维方法 8,9对于后者,一项大型基准研究10 的结果表明,当数据应与临床注释相关联时,MOFA9(多组学因子分析)方法是更适合的工具之一。

特别是在复杂的环境中,无监督矩阵分解方法是降低复杂性并从不同数据源和特征中提取共享和互补信号的有用方法。通过将复杂空间分解为较低等级的潜在表示,可以快速探索数据中方差的主要来源并将其与已知的协变量相关联。如果多个特征(例如,基因或蛋白质)共享相同的变异模式,则可能会将其聚合为几个因子,同时降低噪声。正则化可用于增加模型系数的稀疏性,这使得该方法非常适合于特征空间较大而样本数量有限9 的设置。

该协议提供了一个灵活的分析工作流程,该工作流程使用 MOFA 模型来展示如何快速探索复杂的多组学数据集并提取表征该数据集的主要变化模式。该工作流包括三个主要步骤。在第一步,数据预处理和协调中,提出了基于不同输入数据类型(scRNA-seq、蛋白质组学、细胞因子、临床数据)的数据预处理的不同策略。该协议详细说明了如何处理不同输入数据集的特征,过滤掉低质量的特征,并对其进行归一化以协调它们的分布。我们还展示了这些预处理决策如何影响下游结果。在第二步中,将 MOFA 模型应用于数据,所得的方差分解可用于评估不同数据集的整合。第三步演示如何将捕获的因子与协变量联系起来,并揭示定义这些因子的分子程序。通过提出的工作流程,我们能够在冠状动脉综合征患者数据集中提取与临床协变量相关的几个潜在因素,并从以前的项目11 中确定潜在的潜在多细胞免疫程序。我们将在这里使用这个数据集,但该协议可以很容易地应用于其他环境,包括其他组学。

该数据集包括来自稳定期慢性冠脉综合征 (CCS)、急性冠脉综合征 (ACS) 和冠状动脉健康对照组(非 CCS)的样本(图 1)。ACS 是由先前存在的 CCS 中的斑块破裂引起的,导致流向心肌的血流急性中断,随后导致心脏缺血性损伤。这种损伤会引起免疫系统的炎症反应,然后是修复期,一直持续到急性事件发生后的几天12。为了能够描述 ACS 患者的这种免疫反应,在四个不同的时间点采集了血样:急性 (TP1);再通后 (14 [± 8] h) (TP2);60 [± 12] 小时后 (TP3);出院前(6.5 [±1.5] 天)(TP4)(图 1A)。对于 CCS 和健康冠状动脉患者,只有一个时间点可用 - (TP0)。对于所有患者和时间点,根据血样测量不同的检测方法:炎症的临床标志物 (肌酸激酶 (CK)、CK-MB、肌钙蛋白、C 反应蛋白 (CRP))、外周血单核细胞 (PBMC) 的 scRNA-seq、细胞因子分析、血浆蛋白质组学和中性粒细胞的 prime-seq13 数据。

figure-introduction-1
图 1:心肌梗死多组学输入数据集。 输入数据集:分析的数据包括急性冠脉综合征 (ACS)、慢性冠脉综合征 (CCS) 患者 (n = 62) 和健康冠状动脉 (non-CCS) 患者的血液样本。对于 ACS 患者,包括 4 个不同时间点 (TP1-4) 的血样,CCS 和非 CCS 患者的血样在单个时间点 (TP0)。在分析中,每个患者和时间点组合都被视为单独的样本。对样本测量不同的组学检测:临床血液检测 (n = 125)、scRNA-seq (n = 121)、血浆蛋白质组学 (n = 119)、细胞因子检测 (n = 127) 和中性粒细胞引物测序 (n = 121)。随后,应用所描述的方案来整合所有组学的数据,并使用 MOFA 模型和进一步的下游分析 (因子分析、途径富集) 对其进行探索。 请单击此处查看此图的较大版本。

作为此处介绍的工作流程的输入,我们在使用 cellranger 和质量控制 (QC) 处理后从 scRNA-seq 数据中提取原始计数,例如,如 scanpy14 预处理教程中所述。对于单元类型注释,我们使用了自动化的 Azimuth15 管道。然后,通过对每个样本和细胞类型的所有细胞进行平均值(伪批量聚合),在样本水平上聚合每种细胞类型的计数。血浆蛋白质组学包括归一化和以中位数为中心的强度,对于中性粒细胞,我们从 prime-seq 中获取 umi 唯一分子标识符 (UMI) 外显子计数。关于细胞因子和临床值,之前没有应用任何预处理。有关(实验)数据生成的更多细节,请参见相应的手稿11。由于此处提供的结果基于对 scRNA-seq 数据中的细胞类型使用自动 Azimuth 注释,与参考出版物中使用的基于标记的策略相比,此处提供的结果与出版物中提供的结果相似但不完全相同。在手稿中可以表明,细胞类型注释策略不会改变分析的主要模式和生物学解释,但模型导致的确切值的微小变化可能会有所不同。总体而言,输入数据是一个复杂的多维数据集,包括 10,000 多个不同特征(基因、蛋白质、临床值)的不同时间点和测量水平(单细胞与大量)。严格的预处理和数据协调策略,然后进行 MOFA 分析已被证明是探索数据和提取相关免疫程序的有用且快速的工具。在 MOFA 分析中,每个时间点和患者组合都被视为独立样本。在 MOFA 分析中,每种数据类型和单元格类型都被视为一个单独的视图。

此协议提供了为工作流准备输入数据、执行不同的工作流步骤、自定义配置、解释结果数字以及根据解释迭代调整配置的说明。技术工作流程概述概述了协议的不同步骤、每步所需的输入数据集以及生成的图形和数据集(图 2)。

figure-introduction-2
图 2:技术工作流程概述。 多组学数据集分析的工作流程概述。不同的元素由不同的颜色和符号突出显示。属于 Data Preprocessing and Harmonization (1) 步骤的 Jupyter Notebook 以蓝色显示。属于"MOFA 模型"(2) 步骤的 Jupyter Notebook 以橙色显示。属于"Downstream Analysis"(下游分析) (3) 步骤的 Jupyter Notebook 以绿色显示。一个用于比较结果的 Jupyter Notebook 为黄色。可以修改工作流执行参数的配置文件以紫色突出显示。运行工作流所需的输入数据集由数据集符号指示,并以灰色突出显示。在工作流执行期间生成的所有图窗输出都由放大镜符号指示。工作流程执行期间生成的数据集表示为表。通常,工作流程是按顺序执行的:(1) 数据预处理和协调包括两个步骤:首先基于 scRNA-seq 输入数据 (01_Prepare_Pseudobulk) 生成伪批量表,随后将此数据与所有其他样本级(批量)输入 (02_Integrate_and_Normalize_Data) 一起集成和标准化。在此步骤中,通过配置文件,可以为每个数据集单独配置应应用哪些指示的预处理和规范化步骤(例如,样本过滤器)。(2) "MOFA 模型":使用配置文件中指定的配置在第一步生成的输入上运行 MOFA 模型 (03_MOFA_configs.csv) (3) "下游分析":由三个不同的笔记本组成,它们可以彼此独立运行,以生成对生成的 MOFA 结果的见解,并将它们与通过"样本元Data.csv"文件作为输入提供的样本元数据(协变量)相关联。(4) "模型比较":是一个单独的小步骤,可用于比较步骤 2 中生成的不同模型。 请单击此处查看此图的较大版本。

该工作流由多个用 R 和 Python 编写的 Jupyter Notebook 组成(运行工作流不需要 R 和 Python 语言知识,但在出现错误时可能会有所帮助)。在协议的各个步骤中,参数通过配置文件(名称中包含后缀 '_Configs' 的 '.csv' 文件)进行更改。在协议中,我们只概述了从默认配置开始需要更改的参数。

还可以更改其他几个参数,例如自定义预处理。这些文件 'Documentation_Config_Parameter' 中提供了这些参数和解释的文档,该文件包含在下载的存储库中。

方案

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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,64GB 内存)上运行工作流。可以使用提供的示例数据在本地计算机上执行冒烟测试。补充文件 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 复制到浏览器,这将打开 Jupyter-lab 会话(有关 Jupyter-lab 的更多信息,请参阅软件文档16)。
    注意:在笔记本电脑上本地执行工作流时,建议使用命令 apptainer exec mofa_image.sif jupyter-lab ,该命令将直接返回本地主机地址。如果容器在集群计算环境中执行,则可能需要设置端口转发,这可以通过 ssh 完成。

2. 初始化和数据准备

  1. 在 Jupyter-Lab 会话中,使用左侧的导航菜单。双击 input_data 文件夹 input_data 导航到该文件夹。
  2. 使用 Drag&Drop 将所有将用作分析输入的数据集复制到 input_data 目录。将文件从当前所在的文件夹中拖放到 Jupyter-lab 会话中 input_data 文件夹下方的区域。
    注意:所有数据集都需要采用 .csv.h5ad (对于单单元格数据)格式。所有 .csv 文件都必须包含匹配的 sample_id 列(必须在数据集中使用相同的 ID)。所有其他列将用作特征。在 h5ad- 文件中,单元格注释必须包含两个标识符,分别指定 sample_id cluster_id。这些将用于聚合和匹配。使用前需要将其他格式的 Omic 数据集转换为指定的 .csv 格式(图 3)。以 .h5seurat 格式给出的 scRNA-seq 数据集可以转换为 .h5ad 执行 Jupyter-notebook: 00_Data_Conversion.ipynb
  3. 通过单击文件夹符号,然后双击文件夹 mofa_workflow、 scripts configurations 导航到 configurations 文件夹。在文件夹中,双击打开文件Data_configs.csv
  4. value 列中,将路径添加到 input_data (data_path) 和 results (result_path) 文件夹。在configuration_name的值列中添加一个名称,该名称将作为文件扩展名添加到所有保存的文件(该协议MI_v1 [Myocardial Infarction version1])(图 4)。
  5. 通过单击顶部菜单中的 文件 > 保存 CSV 文件 来保存更改。
  6. 使用左侧的导航菜单,通过单击 scripts 导航到 scripts 文件夹。双击 00_Configuration_Update.ipynb 打开初始化笔记本。通过单击顶部的 Restart kernel and run all cells 按钮,然后单击弹出窗口中的 Restart 来执行脚本(图 5)。

figure-protocol-1
图 3:数据输入和设置。 为了执行工作流,所有数据都需要存储在指定的 input_data 文件夹中。对于每个输入数据集,应提供一个单独的文件。单细胞数据应以 .h5ad 的形式给出,其中包含cluster_id上的细胞注释(例如,来自先前的细胞类型注释步骤的结果)和sample_id列(唯一标识应分析的每个单独样本)。所有其他输入数据集应以 ".csv" 格式给出,包括一列指定sample_id(与单细胞数据的相应列匹配)和所有其他列中要用于 MOFA 分析的特征。 请单击此处查看此图的较大版本。

figure-protocol-2
图 4:Jupyter-lab 配置文件。 在工作流执行期间,参数的更改(例如,调整过滤选项等)是通过".csv"配置文件指定的。在克隆的存储库中,包含每个步骤的默认配置文件。可以直接在 jupyter-lab 控制台中编辑它们,就像在电子表格中一样。 请单击此处查看此图的较大版本。

figure-protocol-3
图 5:Jupyter-notebooks 脚本。 完整的工作流由一系列 Jupyter 笔记本组成,这些笔记本将在修改相应的配置文件后按顺序执行。双击左侧的 Jupyter 笔记本,相应的文件将在右侧打开。文件的完整执行可以通过顶部突出显示的按钮开始。 请单击此处查看此图的较大版本。

3. 数据预处理和协调

  1. 预处理 - 将 sc 数据转换为 pseudobulk。
    注意:仅当分析中使用单单元格数据时,才需要执行此步骤。
    1. 使用左侧的导航菜单,双击 configuration 导航到 configurations 文件夹。双击打开文件 01_Preprocessing_SC_Data.csv 。检查文件中自动填充的值,如有必要,调整 data_name 列中的值,以对应于将用于分析的 input_data 文件夹中单单元数据集的文件名。
      注意:默认情况下,input data 文件夹中 .h5ad 文件的所有名称都将添加到初始化脚本的配置文件中。如果某些数据集不应用于分析,则可以在此处删除它们。
    2. 通过单击顶部菜单中的 文件 > 保存 CSV 文件 保存所做的更改。
    3. 使用左侧的导航菜单,通过单击 scripts 导航到 scripts 文件夹。双击 notebook 01_Prepare_Pseudobulk.ipynb 打开它。通过单击顶部的 Restart kernel and run all cells 按钮,然后单击弹出窗口中的 Restart 来执行脚本。
    4. 使用左侧的导航菜单导航到 figures 文件夹,方法是先双击 figures,然后双击 01_figures。双击新生成的绘图FIG01_Amount_of_Cells_overview
      注意:执行笔记本可能需要几分钟时间。 成功执行 notebook 后,将出现一个弹出窗口,文件 FIG01_Amount_of_Cells_Overview 将由 notebook 更新或重新生成。Last Modified (上次修改时间 ) 列可以指示文件的生成时间,以评估它是新文件还是旧文件。
    5. 研究该图以识别每个样品细胞数量非常少的细胞型簇。记下这些cluster_ids的名称,以便在后续步骤中将其排除(图 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,以 '' 分隔。
    9. 通过单击顶部导航栏中的 File > Save CSV File 来保存更改。
  2. 预处理 - 协调和整合其他组学数据源。
    1. 双击打开文件 02_Preprocessing_Configs.csv ,并调整将包含并存储在 data_input 文件夹中的每个数据集的预处理配置(每个数据集一行)。
    2. 检查 configuration_name data_name 列中的值,并根据需要进行调整。
    3. 根据应应用的预处理步骤,相应地调整列中的其他参数。
      注意:将为 input_dataset 文件夹中找到的每个数据集添加默认值,但不特定于数据的单个数据类型。因此,调整将是必要的。 Documentation_Config_Parameter.doc 文件中给出了参数的详细文档。
    4. 通过单击 File > Save CSV File.
    5. 使用左侧的导航菜单,通过单击 scripts 导航到 scripts 文件夹。双击 notebook 02_Integrate_and_Normalized_Data_Sources.ipynb 打开它。通过单击顶部的 Restart kernel and run all cells 按钮,然后单击弹出窗口中的 Restart 来执行脚本。
    6. 使用左侧的导航菜单导航到生成的 02_results 文件夹,方法是单击 文件夹 符号,然后双击 results 02_results。检查是否包含包含组合预处理数据输入文件的 02_Combined_data_'configuration_name'_Integrated.csv 文件。

figure-protocol-4
图 6:数据预处理和协调。 '01_Prepare_Pseudobulk' 步骤的一个输出是图 'Fig01_Amount_of_Cells_Overview'。在这里,对于每个cluster_id(y 轴表示先前细胞类型注释步骤中的细胞类型),给出了每个样本的细胞数 ('sample_id')。在呈现的结果中,每个样品中细胞数量较少的细胞类型被排除在后续分析之外(由删除线表示)。 请单击此处查看此图的较大版本。

4. 运行 MOFA

  1. 在 Jupyter-Lab 中,使用左侧的导航菜单导航到配置文件夹,方法是单击 文件夹 符号,然后双击 mofa_workflow,然后双击 脚本 配置。双击打开文件 03_MOFA_Configs.csv
  2. 检查 configuration_name mofa_result_name 列的条目,并调整应使用替代名称的条目。
    注意: mofa_result_name 将作为文件扩展名附加到基于 MOFA 生成的所有结果文件中。这可能与 configuration_name 值不同,因为不同的 MOFA 设置可能使用相同的 input 数据运行(此协议使用 MI_v1_MOFA)。
  3. 输入应在 MOFA 模型(amount_of_factors 列)中估计的因子数量,并通过调整文件中的值来定义是否应应用加权和缩放(weighting_of_views 列和 scale_views 列)。
  4. 通过单击 File > Save CSV File.
  5. 使用左侧的导航菜单,通过单击"scripts"导航到 scripts 文件夹。双击 notebook 03_Run_MOFA.ipynb 打开该文件。通过单击顶部的 Restart kernel and run all cells 按钮并单击弹出窗口中的 Restart 来执行脚本。
  6. 通过双击窗,然后03_figures导航到 03_figures 文件夹。打开生成的图FIG03_Overview_Variance_Decomposition_mofa_result_name并研究模型结果(图 7A)。
  7. 使用左侧的导航菜单导航到生成的 03_results 文件夹,方法是单击 文件夹 符号,然后双击 results 03_results。检查是否包含样本因子值文件 03_Factor_Data_'mofa_result_name'.csv 和特征因子权重文件 03_Weight_Data_'mofa_result_name'.csv

5. 下游分析

  1. 因素解释。
    1. 使用左侧的 导航 菜单,通过单击文件夹符号,然后双击 input_data 导航到 input_data 文件夹。
    2. 准备一个.csv文件 (Prepared_Sample_Meta_Data.csv),其中包含将与生成的因子相关联的样本的所有元数据(协变量)。使用 Drag&Drop 将文件拖放到 input_data 文件夹的文件夹概览中,将文件复制到 input_data 文件夹。
      注意:它需要包含 sample_id 列,以便将其与以前使用的数据进行匹配,并包含应分析的每个特征的更多列。
    3. 在 Jupyter-Lab 中,使用左侧的导航菜单导航回配置文件夹,方法是单击 文件夹 符号,然后双击 mofa_workflow,然后双击 脚本 配置。双击打开文件 04_Factor_Analysis.csv
    4. 检查 configuration_name mofa_result_name 的条目是否包含将在脚本中分析的配置和 MOFA 结果的名称,并在必要时进行调整。
    5. numeric_covariates 列中,添加 Prepared_Sample_Meta_Data.csv 文件中所有数字列的名称,这些列将与逗号分隔的 MOFA 因子进行调查(此协议使用 CRP,CK)。
    6. categorical_covariates' 列中,添加 Prepared_Sample_Meta_Data.csv 文件中所有分类列的名称,这些列将与逗号分隔的 MOFA 因子进行调查(此协议使用 测量)。
    7. 通过单击 File > Save CSV File.
    8. 使用左侧的导航菜单,通过单击 脚本导航到 'scripts' 文件夹。双击笔记本 04_Downstream_Factor_Analysis.ipynb 打开它。通过单击顶部的 Restart kernel and run all cells 按钮并单击弹出窗口中的 restart 来执行脚本。
    9. 使用左侧的导航菜单,双击 figures 然后 04_figures 导航到 04_figures 文件夹。双击生成的绘图打开它们,并调查感兴趣的模式和关联的因素:FIG04_Factor_Association_with_numeric_features_
      'mofa_result_name.pdf(图 7B)。FIG04_Factor_Association_
      with_categorical_features_ mofa_result_name.pdf(图 7C)。FIG04_Top_Feature_Overview_per_Factor _'mofa_result_name.pdf(图 8A)。
  2. 特征分析
    1. 使用左侧的导航菜单,单击 ... ,然后双击 Configurations。双击打开文件 05_Feature_Analysis_Configs.csv
    2. 检查 configuration_name mofa_result_name 列的条目是否与配置和生成的 MOFA 结果的名称相对应,该结果将用于下游分析,并根据需要进行调整。
    3. 因子 列中,添加将在下一个脚本中绘制主要特征的因子。
    4. 在列 faceting_variable中,添加 Prepared_Sample_Meta_Data中分类列的列名.csv该列将用于对图中的样本进行分组(此协议使用 测量
    5. 通过单击 File > Save CSV File.
    6. 使用左侧的导航菜单,通过单击 scripts 导航到 scripts 文件夹。双击 notebook 05_Downstream_Investigate_Features_Heatmap.ipynb 打开它。通过单击顶部的 Restart kernel and run all cells 按钮,然后单击弹出窗口中的 Restart 来执行脚本。
    7. 使用左侧的导航菜单导航到 05_figures 文件夹,方法是先双击窗,然后双击 05_figures。打开并调查生成的绘图 FIG05_Heatmap_Feature_Overview__ 'mofa_result_name' 。pdf 通过双击文件(图 8B)。
      注意:根据图中显示的特征数量,可能需要调整05_Feature_Analysis_Configs.csv中的参数 plot_width plot_height 并重新运行脚本以确保所有内容都适合图。
  3. 通路分析
    1. 使用左侧的 导航 菜单,通过单击文件夹符号,然后双击 input_data 导航到 input_data 文件夹。
    2. 准备一个 .csv 文件 (Prepared_Pathway_Data.csv),其中包含将进行富集测试的通路列表。使用 Drag&Drop 将文件拖放到 input_data 文件夹的文件夹概览中,将文件复制到 input_data 文件夹。
      注意:它需要包含三列: ID (通路的唯一标识符)、 gene (属于通路的基因名称 (SYMBOL) 给出的基因,每个基因一行) pathway_name (通路的名称/文本描述)。
    3. 在 Jupyter-Lab 会话中,使用左侧的导航菜单通过单击 ...,然后双击 Configurations。双击打开文件 06_Pathway_Configs.csv
    4. 检查 mofa_result_name 列的条目,并确保它与生成的 MOFA 结果的名称相对应,该结果将用于通路富集计算。
    5. 检查 types 列中的条目,并删除 types 列中不包含与 Prepared_Pathway_Data.csv 文件中的 gene 列匹配的特征的条目。
      注意:默认情况下,在工作流执行期间,MOFA 模型中使用的所有不同视图都会添加到此文件中。如果存在不包含与至少一条路径匹配的要素的视图,则需要将其删除;否则,执行将失败。一个例子是通路文件仅包含基因的通路注释,但有一个包含蛋白质名称的视图。
    6. 通过单击 File > Save CSV File.
    7. 使用导航菜单通过单击 scripts 导航到 scripts 文件夹。双击 notebook 06_Downstream_Pathways.ipynb 打开它。通过单击顶部的 Restart kernel and run all cells 按钮,然后单击弹出窗口中的 Restart 来执行脚本。
    8. 使用左侧的导航菜单导航到 06_figures 文件夹,方法是先双击 窗,然后 双击06_figures。双击生成的图 FIG06_Pathways_and_Genes_ ' mofa_result_name 打开它,并研究可视化的途径(图 8C)。
      注意:可以通过配置文件配置如何选择可视化路径。有关更多详细信息,请参阅参数的文档。
    9. 使用左侧的导航菜单导航到生成的 06_results 文件夹,方法是单击 文件夹 符号,然后双击 results 06_results。检查它是否包含包含丰富通路 06_Pathway_enrichment__'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. 通过单击 File > Save CSV File.
  6. 使用左侧的菜单通过单击 scripts 导航到 scripts 文件夹。双击 notebook 07_Compare_Models.ipynb 打开它。通过单击 Restart kernel and run all cells 按钮并单击弹出窗口中的 Restart 来执行脚本。
  7. 使用左侧的菜单导航到 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 文件夹。双击 notebook 03_Run_MOFA.ipynb 打开它。
  2. 单击左侧的 Table of Contents 选项卡,然后导航到子部分 4.3 设置 MOFA 训练选项,然后单击它运行模型训练 。向下滚动以查看笔记本中可配置参数的 MOFA 模型的打印输出。
  3. 在标题下方代码的 R for 循环中,设置了所有 MOFA 数据、模型和训练选项。在 model_opts$num_factors = mofa_configs$amount_of_factors[i] 行下方,添加另一行代码
    model_opts$likelihoods['data_type'] = '泊松'
    注意:这将更改模型作为所有 MOFA 运行的名称 data_type 所指定视图的输入的分布。为数据类型指定泊松时,仅当此数据类型的特征为整数(例如,从 RNA-seq 读取计数)时,模型才会运行。要获取有关 MOFA 数据、训练和模型选项的更多信息,还可以参考 MOFA 教程和文档17
  4. 通过单击顶部的 Save (保存 ) 按钮,将更改保存在笔记本中。
  5. 要通过 .csv 配置文件移交新参数,请使用左侧的导航通过双击 configurations 导航到 configurations 文件夹,然后通过双击打开文件 03_MOFA_Configs.csv
    1. 添加一个指定参数名称的新列(例如 number_iterations 并输入一个值,例如 1000。通过单击 File > Save CSV File.
    2. 使用导航菜单通过单击 scripts 来导航 scripts 文件夹。双击 notebook 03_Run_Mofa.ipynb 打开它。单击左侧的 Table of Contents 选项卡,然后导航到子部分 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_config data.frame 读取,因此,在这行代码中,此对象和相应的新生成列被引用。由于可以同时运行多个配置, 因此 i 标识 data.frame 的行,因为模型估计在 for 循环中跨 .csv 文件中的所有不同行运行。在笔记本开头的"先决条件、配置和参数'部分读取配置文件的原则对所有笔记本都是相同的,可以像这样进行进一步的修改。
    4. 单击 Save (保存) 按钮,将更改保存在笔记本中。

结果

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

成功执行工作流后,将生成多个表格和数字,如图 2 所示。图表放置在 /figures 文件夹中(图 6图 7图 8补充图 1补充图 2补充图 3补充图 4),表格将放置在指定的 /results 文件夹中。

如果工作流执行不成功,这可能主要是由于:例如,由于内存不足(尤其是在加载大型单单元格数据集的第一步)、数据格式不正确(例如,数据集之间的sample_id列不匹配)或配置文件中的规范不正确(例如,排除许多功能)而导致的技术错误。在这种情况下,Jupyter-notebook 脚本中通常会在执行过程中出现错误消息,并且不会生成任何绘图和数据。建议使用脚本执行期间生成的默认配置文件,并且仅修改协议中描述的特定参数。

生成的绘图和表格表示执行成功,每个步骤都会揭示有关数据及其固有的主要方差模式的其他信息。尽管如此,不一定每次执行都会产生生物学上有用和可解释的结果。通常,数据的特点是技术效应大和分布不同,需要在"数据预处理和协调"步骤或"MOFA9 模型"(也允许为输入数据类型指定不同的分布)中考虑,以便能够提取反映潜在生物过程的数据变化。

在所提出的工作流程中,可以使用不同的多组学数据集作为输入。目前,该工作流程接受用于单细胞数据的常用 .h5ad 文件格式和所有其他数据集的非常通用的 .csv 文件格式作为输入(图 3)。不同的组学数据集具有非常不同的文件格式是很常见的。为了不将工作流的执行限制为特定文件格式, .csv 被用作非常通用的格式。因此,各种不同的组学数据集都可以用作工作流程的输入,但需要先转换为相应的 .csv 格式,如图 3 所示,然后才能在此工作流程中使用。这可以使用电子表格或组学特定软件来准备。为了预处理不同的组学数据集,工作流程中提供了几个选项,通过配置 02_Pre_Processing_Configs.csv 02_Pre_Processing_Configs_SC.csv 文件,在不同的输入数据集上应用不同的预处理和归一化步骤(例如,文库大小调整、对数转换、样本分位数归一化)(图 2).然而,此处的可用选项主要基于此处提供的数据集(scRNA-seq、细胞因子测定、蛋白质组学、prime-seq)中可用的特定输入数据。如果使用其他组学/数据类型,则可能需要根据现有的最佳实践应用额外的组学特异性标准化步骤。在这种情况下,数据可以以已预处理的形式移交给工作流,并将与其他数据集集成,而无需应用进一步的预处理步骤。在许多情况下,应用 Feature Wise Quantile Normalization 步骤有助于将所有数据类型的分布与正态分布对齐,并使不同输入特征之间的下游分析更具可比性,并与 高斯 噪声的模型规格兼容。

在工作流程执行期间,会生成多个图表和输出,以支持数据集成和后续生物下游解释的过程。对于 scRNA-seq 数据, FIG01_Amount_of_Cells_Overview 中的曲线(图 6)表明哪些细胞类型可能包含每个样品的细胞太少,并且细胞类型无法可靠地测量基因表达信号,因为对于后续分析,每个样品的细胞类型的所有细胞的平均值用作表达估计(psedobulk-方法)。在此用例中,我们排除了大多数样品中细胞数少于 3 个细胞的细胞类型。

FIG03_Overview_Variance_Decomposition方差分解图(图 7补充图 1)可以指示不同数据源的集成程度,以及不同数据源中有多少方差是共享的,并且对于每个数据源是唯一的。例如,在此处使用的数据集上测试不同的预处理策略表明,例如,从预处理中删除 Feature Wise Quantile 归一化步骤会导致潜在因素更侧重于特定数据视图,并减少蛋白质组学数据与其他数据源的集成。这可以从解释方差的减少量中看出(补充图 1B)。在没有任何特征过滤或没有归一化的情况下运行 MOFA 模型会导致潜在因素捕获的不同视图之间的共享方差减少(补充图 1C)。这表明潜在因素主要反映数据类型特定的技术影响。除此之外,如果数据预处理不当,MOFA9 模型本身也可能返回警告。补充图 1 显示了 MI_v2 MI_v3 的替代预处理配置的此类警告的一个示例(具体示例配置文件存储在 config_examples 文件夹中的克隆 GitHub 存储库中)。

此外,在运行 MOFA 模型后,可以通过将因子与有关样本的已知生物学元信息以及技术和其他混杂协变量 (04_Downstream_Factor_Analysis) 相关联,以确定因子捕获的变异的可能原因,从而在几个下游分析中评估结果。例如,如果 MOFA 模型的一个因子与其中一个技术协变量(例如批次信息)密切相关,这可能表明该因子更准确地捕获了数据中的技术变化,而不是生物变化。

为了缩小下游分析部分的生物学解释范围,这里概述了基于输入数据集的几个发现(更精细的解释可以在原始出版物11 中找到)。在第一步中,我们可以观察到,通过应用的预处理策略,我们发现几个因素可以捕获多种细胞类型以及其他组学数据类型的差异(图 7A)。例如,因子 2 捕获了 scRNA-seq 数据集的临床输入特征和几种细胞类型的差异。将前三个因素与相关的临床协变量(如 "CRP" 和 "CK") 相关联(图 7B),并调查不同患者亚组的因子值差异:"对照(包括 CCS 和非 CCS)与在不同时间点测量的 "ACS" (TP1-TP4) (图 7C),我们还发现 Factor2 与 "CK" 值显著相关,因子 3 与 "CRP" 值相关。同时,与"对照"和更晚的时间点样本 (TP3/TP4) 相比,TP1 和 TP2 的"ACS"样本(反映对心肌梗死 (MI) 的免疫反应的急性期)显示出因子值增加。CK 是已知的心肌损伤标志物,通常以 TP1/TP2 值增加为特征,类似于 Factor2 捕获的模式。

为了深入了解塑造因子 2 的生物过程,我们通过查看模型生成的特征权重表 (03_Weight_Data.csv) 来评估因子的排名靠前的特征。分析因子绝对权重最高的前 1% 特征,我们主要发现 CD4。中医和 CD14。与它们的输入特征总数相比,单衍生特征被过度表示(图 8A),表明这些细胞类型在 MI 后的炎症过程中高度相关(注意:如果在预处理中没有应用特征分位数归一化,特征的不同分布也可能影响该结果,评估应按数据类型单独进行)。分析 CD4 的顶级特征。中医细胞类型在因子上,我们发现了几个有趣的基因,如稳健的 T 细胞激活所需的 EIF3E18 和促进 T 细胞扩增和活化的 HMGB119图 8B)。接下来,我们使用 REACTOME20 数据库中的免疫通路作为通路集 (Prepared_Pathway_Data.csv) 进行通路富集分析。我们发现几种"白细胞介素"通路的富集,包括"白细胞介素-6"信号传导。scRNA-seq 数据的不同细胞类型中几个基因的表达水平和细胞因子测定测量的"IL6"细胞因子值促成了这一结果(图 8C)。跨数据类型识别这些共享模式突出了集成分析的附加价值。总体而言,这种方法还可以识别反映疾病状态或关联治疗结果和潜在多细胞免疫程序的其他几个因素,如相应的出版物11 中更详细地描述的那样。

为了进一步强调跨多个组学进行综合分析的优势,相同的工作流程也仅包括蛋白质组学输入数据(补充图 4)。分析结果因素,我们发现与综合分析类似,一个与 'CRP' 值密切相关的因素 (Factor1)。这种模式描述了蛋白质组学数据中变异的主要来源,并且也与综合分析中"Factor3"捕获的其他数据集中的一些变异一致(图 7C)。然而,不能仅根据蛋白质组学数据来识别 Factor2 所指示的在综合分析中捕捉炎症时间进程的类似模式。

引入的工作流程和 MOFA9 模型本身是高度可定制的,具有许多可调参数。因此,可视化和系统地比较不同配置产生的结果非常重要。为了促进此任务,工作流可以生成的最终输出是将管道的不同命名运行与预处理和模型估计中的不同参数进行比较。例如,MOFA 模型可以用不同数量的潜在因子来估计(补充图 2A),或者可以加权特征数量较少的视图(补充图 3A)。配置和运行工作流 '07_Compare_Models' 的最后一个脚本会生成多个图,以评估不同管道运行之间的相似性。FIG07_Variance_Model_Comparison(补充图 2B、补充图 3B)显示了不同运行的每个视图的总解释方差的比较。不同运行之间的因子值和特征因子权重的相关性可以指示修改某个参数时结果的变化量(补充图 2C,补充图 3C)。在这里,修改因子的数量只会导致估计因子值和特征权重的微小变化(补充图 2C)。修改数据视图的权重会导致特征数量较少的视图中的解释方差要高得多,例如,"临床"视图(补充图 3B)。尽管如此,前三个因素中的相关特征仍然与未加权版本推断的特征高度相关(补充图 3C)。

使用生成的模型输出.csv结果文件夹中的文件(例如,估计因子和特征权重),可以进行进一步的单独下游分析。所有代码和必要的配置文件(包括文档)都可以在 GitHub 上找到,网址为 https://github.com/heiniglab/mofa_workflow。可以从 https://doi.org/10.5281/zenodo.10815146 下载为轻松安装分析所需的 conda 软件包而创建的奇点映像。也可以从同一 zenodo 记录下载可用于执行管道初始测试的小型示例数据集。

figure-results-1
图 7:MOFA 输出分析。 在运行 MOFA 模型 (03_Run_MOFA.ipynb) 和因子值的下游分析 (04_Downstream_Factor_Analysis.ipynb) 之后,将生成几个图:(A) FIG03_Overview_Variance_Decomposition:返回不同视图中估计的 MOFA 因子的解释方差的可视化。热图(左):显示每个视图的因子捕获的视图总方差的百分比。条形图(右):显示每个视图的所有因子捕获的方差总百分比。(B) FIG04_Factor_Association_Numerical_Features:显示因子值与所选数值样本协变量的 Pearson 相关性,此处为:临床变量(CRP、CK)。(C) FIG04_Factor_Association_Categorical_Features:以箱线图的形式显示分类样本协变量的因子值差异。在这里,比较了 ACS 和对照患者每个时间点的 Factors1-3 的因子值。 请单击此处查看此图的较大版本。

figure-results-2
图 8:MOFA 特征分析。 在运行下游分析(04_Downstream_Factor_Analysis.ipynb、05_Downstream_Investigate_Features.ipynb)后,将生成多个图。此处的所有图都可视化了 MOFA 因子 2:(A) FIG04_Top_Feature_Overview_per_Factor:热图(左)显示每个视图的所选因子捕获的方差百分比。条形图(右)表示不同视图的特征与因子的相关性。在左侧,给出了该因子视图中排名前 1% 的最高特征中特定视图的特征总数。在右侧,给出了百分比,将前 1% 的总数除以该视图的特征总数。(B) FIG05_Heatmap_Feature_Overview:热图(左)显示了 CD4 中排名最高的 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) 的 Pearson 相关性。(B) FIG04_Factor_Association_Categorical_Features:ACS 和对照患者每个时间点的因子值的箱线图比较。 请点击此处下载此文件。

补充文件 1:Supplementary_File_
Running_Pipeline_with_Exemplary_Data。
有关如何在示例数据上运行管道和预期输出的描述,在额外提供的补充文件中给出。 请点击此处下载此文件。

补充视频文件 1:协议的屏幕截图视频。请点击此处下载此文件。

讨论

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

通过概述的协议,提出了一个模块化且可扩展的基于 Jupyter 笔记本的工作流程,可用于快速探索复杂的多组学数据集。工作流程的主要部分包括预处理和数据协调部分(为数据过滤和标准化提供不同的标准步骤)、MOFA9 模型的估计和一些示例性的下游分析。主要的关键步骤之一是预处理、整合和协调不同的组学数据集。在这里,我们提出了一种数据集策略,该数据集包括 scRNA-seq 数据、prime-seq 批量 RNA、细胞因子测定、血浆蛋白质组学和临床价值,从而产生了一个集成且统一的数据集,可用于识别 MI11 中的相关生物过程。如果其他组学数据集需要额外的数据预处理策略,则应在 MOFA 分析之前执行这些策略。然后,可以将预处理后的数据用作当前工作流程的输入。该模型的输出可用于评估不同数据集的集成质量和预处理的效果,以确定潜在的技术影响。例如,可以先只应用最少的预处理和规范化步骤,然后评估进一步规范化的效果。在此应用中,观察到添加"特征分位数归一化"会导致蛋白质组学与其余分析更好地整合。

工作流的另一大部分是根据样本级别聚合的数据对 MOFA9 模型进行估计。存在 MOFA 模型的其他扩展,例如
MOFA+21 (专门用于单细胞数据)、MEFISTO22 (专门用于包括时间成分的数据)和 MuVI23 (在因子分析方法中整合领域知识)。这些是该方法对于特定类型的数据集或设置的非常有用的扩展,但应用它们会带来特定要求。例如,在我们的例子中,专门用于单细胞数据 MOFA+21 意味着人们不能轻易利用样本水平的其他可用组学数据。使用 MEFISTO22 方法可以专门模拟时间过程,但它不适用于多个时间点不可用的设置,或者在我们的例子中,将仅在一个时间点进行测量的"控制"样本与"ACS"样本的时间分辨数据相结合。因此,在这个非常通用的工作流程中,我们选择使用 MOFA9 方法,因为它是快速探索各种数据集的最灵活的方法,没有太多要求。值得注意的是,工作流中生成的预处理数据也可以使用这些方法进行分析,或者如果数据集与方法的要求兼容,则可以扩展当前脚本以集成这些方法。有关其他使用案例、教程和文档,请参阅 MOFA 开发人员24 的 GitHub 存储库。

与主成分分析 (PCA) 等更通用的降维方法相比,MOFA9 模型具有多项优势,尤其是在多组学环境中。例如,可以很容易地分析每个输入视图的方差分解,并且可以将权重分配给不同的视图以考虑不同数量的特征。该模型鼓励稀疏性,这增加了结果的可解释性。此外,不需要排除其中一个组学中数据缺失的样本,并且该模型实现了一些特征,以专注于学习稀疏特征因子权重。此外,MOFA 模型还提供了多种设置来整合以不同分布为特征的数据(对 'Gaussian'、'Bernoulli' 或 'Poisson' 似然建模)。在此工作流程中,我们只集成连续数据,并将其标准化以遵循"高斯"分布,但如果需要,也可以扩展现有代码以集成其他数据类型。存在其他基于分解的方法,例如 scITD25,特别是对于 scRNA-seq 数据,但这些方法具有限制,即它们不能与其他组学一起使用。

提出的工作流程显示了一种协议,用于对大型和复杂的多组学数据集进行无监督探索,以识别潜在的生物过程和驱动数据变化的其他特征。它几乎可以应用于任何应调查数据变化(例如,由疾病或其他生物或技术扰动引起)的环境。由此产生的下游分析和特征集驱动了不同组学的差异,可以揭示相关的生物过程,以便在特定背景下进一步研究。例如,在疾病的背景下,它可能有助于识别新的诊断标志物或治疗靶点。

披露

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

作者声明没有利益冲突。

致谢

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

C.L. 得到了亥姆霍兹协会在联合研究学院"慕尼黑数据科学学院 - MUDS"下的支持。

材料

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

参考文献

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  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).

重印与许可

申请许可以重复使用本 JoVE 文章的文本或图表

申请许可

标签

Unsupervised Data IntegrationSingle Cell RNA SeqMulti Omics WorkflowImmune Response ProfilingMolecular Process DiscoveryPlasma ProteomicsCytokine Data AnalysisDownstream Factor Analysis

相关文章