首页 > 组学教程 > 单细胞时空转录组
2023
05-13

单细胞时空转录组

虽然单细胞转录组测序记录的是细胞在某一个瞬时的状态,但是我们可以基于大量单细胞转录组数据的轨迹推断出细胞的动态变化过程,包括分化、成熟、对刺激的反应和细胞周期。目前,主要有两种细胞轨迹分析的方法:拟时序分析(pseudotime analysis)和 RNA速度分析(RNA velocity)。拟时序分析根据细胞表达模式的相似性将细胞按轨迹进行排列;RNA速度分析利用未拼接和拼接转录本水平的信息来估计单个细胞的未来状态。

近期,10x Genomics官网发布了使用Cell Ranger 和 Loupe Browser获得的结果导入社区开发的 RNA 速度分析工具的指南。下面我们就来一起学习一下吧!

需要的软件包

Python3

Miniconda

velocyto

scVelo

数据集以及输入文件

这里将以中性粒细胞数据集(neutrophil dataset)作为轨迹分析的例子。您可以从上面的链接下载原始 FASTQ 文件,并按照教程Capturing Neutrophils in 10x Single Cell Gene Expression Data 获取本分析指南的输入文件。10x提供了关键的中间文件和预期输出以供参考,如果只对运行scVelo感兴趣,可以使用10x提供的文件。如果想从Raw data或velocyto步骤开始,则需要根据 neutrophil tutorial运行Cell Ranger。同时,如果想用自己的单细胞转录组数据进行该指南中的轨迹分析,就需要Cell Ranger的output directory(包括outs/ 子目录)

分析步骤

Step1 从Loupe Browser中导出投影和簇

由于我们只想对中性粒细胞进行轨迹分析,而我们使用的数据集包含中性粒细胞和其他血细胞,因此,第一步是注释细胞类型并仅针对中性粒细胞导出相关信息(投影和簇)。Capturing Neutrophils in 10x Single Cell Gene Expression Data中详细介绍了原始数据处理和细胞类型注释的步骤。完成上述教程中的步骤后,我们需要从中性粒细胞重新聚类结果中导出仅中性粒细胞的 UMAP 嵌入和簇。可以在以下网站(https://support.10xgenomics.com/single-cell-gene-expression/software/visualization/latest/tutorial-interoperability)找到有关如何导出投影和簇的详细信息。

Step2 准备 conda 环境

我们建议在教程的以下部分使用conda。请按照您首选操作系统的installation instructions 进行操作。

下载yaml 文件并确保它位于您将执行以下 conda 命令的同一目录中。安装 conda 后,运行以下命令来创建环境。

Note:您可以更改 yaml 文件的第一行来更改环境的名称。当前名称是name: tutorial。

Step3 运行速度

首先使用velocyto pipeline ,利用 Cell Ranger 得到未拼接和拼接的转录本信息。

接着激活环境,运行以下命令:

velocyto pipeline需要两个输入:

  • Cell Ranger output directory,其中包含子文件夹outs、outs/analysis等。
  • 基因组注释(GTF 文件)。这需要与用于运行 Cell Ranger 的参考中的 GTF 相同。Note:您可以在 Web Summary Sample 部分中找到参考路径。

有了这两个输入的路径后,就可以使用以下命令运行velocyto(确保替换path/to为服务器上的实际文件路径)。

Velocyto pipeline需要很长时间才能完成,并且需要大量资源(包括 RAM/CPU)。我们建议在 HPC 集群或高端工作站中运行本教程的这一部分。

pipeline成功运行完成后,输出文件velocyto/sample_name.loom将位于在命令行中指定为输入的 Cell Ranger 输出目录中。有关该.loom文件的更多信息,请参阅 velocyto User Guide。

如果您想跳到教程的下一步,可以下载该velocyto管道的输出:loom file。

Step4 运行 scVelo

这一步,我们使用scVelo 来恢复和可视化 RNA 速度。scVelo是一个可扩展的工具包,能够利用剪接动力学进行 RNA 速度分析。

4.1 下载输入文件

运行scVelo需要前面步骤生成的文件。但是,如果您想跳过前面的步骤,也可以从这里下载所需的输入文件:

  • Filtered feature-barcode matrix
  • .loom file: spliced/unspliced counts from velocyto
  • Neutrophil Clusters exported from Loupe Browser
  • Neutrophil UMAP exported from Loupe Browser

您还可以使用curl命令将文件下载到您的服务器:

上面的命令将创建一个名为input-files的目录,下载本教程所需的文件,并将文件解压缩到该目录中。在下面的步骤中,我们将参考该目录的路径来获取输入文件。

4.2 打开jupyter notebook并导入库

我们建议使用Jupyter Notebook进行后续的操作,您可以在其中交互式地探索函数和数据。

使用以下命令打开notebook:

然后,您可以将下面的代码块复制并粘贴到您的notebook进行分析。在当前会话中导入所需的包:

Note:如果您运行上面的部分来导入包并收到警告消息,例如“ModuleNotFoundError: No module named 'loompy'”,这意味着这些库没有安装。请参阅上面的“Step 2 准备 conda 环境”以获取有关如何在具有yml文件的环境中安装这些包的说明。如果 conda无法正常运行,可以运行下面的line以使用最新版本的pip安装程序,手动安装 Python 库:

我们还可以通过更改可视化设置来自定义绘图颜色和大小:

4.3 导入矩阵

接下来,将 Cell Ranger 过滤后的基因表达矩阵导入scVelo.

Neutro3p将输出下面的内容:

Note:如果您使用 Seurat 过滤矩阵,则可以使用Neutro3p = scv.readloom("./Neutro3pSeurat.loom")从 Seurat 加载.loom输出。本指南末尾的替代步骤部分提供了更多详细信息。

4.4 导入集群和投影

接下来,从 Loupe Browser 导入集群和 UMAP 嵌入(Step 1),以便我们在 scVelo 中制作绘图时可以使用这些信息。

Neutro3p对象现在包括附加信息:

4.5 导入拼接/未拼接counts

scVelo 需要在Step 3 中使用velocyto得到未拼接和拼接的转录本信息。现在,我们将读取velocyto输出并将这些counts合并到Neutro3p对象中。

4.6 运行速度分析

加载所有必需的信息后,我们可以处理数据集并获取每个单元格的潜在时间值。

4.7 可视化

分析完成后,我们可以使用不同类型的图来可视化速度结果。

(1) 我们可以可视化 UMAP 嵌入中的速度,并通过从 Loupe Browser 导出的集群分配为单元着色:

(2) 我们还可以通过潜伏期可视化 UMAP 嵌入的速度。潜伏时间代表细胞的内部时钟,近似于细胞分化时经历的实际时间。

(3) 我们可以使用小提琴图来可视化每个集群的潜在时间。结果与我们在上面两个图中观察到的一致。

(4) 由于我们分析的是中性粒细胞,因此,我们使用了在中性粒细胞成熟过程中差异表达的基因列表。我们绘制了这些基因在每个细胞中的表达,并按照它们的潜伏时间排序。

在上面的热图中,细胞按潜伏时间排序(顶部栏,右侧为较新的细胞)。未成熟的中性粒细胞标记基因,例如 LTF 和 LCN2,在具有较早潜伏时间的细胞中具有较高的表达水平(黄色)。这表明我们的中性粒细胞中的转录动力学与以前出版物中的观察结果一致。

替代步骤(使用 Seurat)

如果您已经在 Seurat 中进行过分析,您还可以将您的 Seruat 对象导入到轨迹分析中。下面我们将描述如何从 R 中导出 Seurat 对象,然后将其导入 Python 进行速度分析。

假设 R 已经安装,并且standard Seurat processing已完成。您可以使用 R 中的以下函数将 Seurat 对象保存为.loom文件:

然后可以使用scv.read_loom函数(替换sc.read_10x_mtx)将该 Seurat loom 文件加载到 scVelo 中,如上面的步骤 4.3 所示。

转自仁科生物



最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情