单细胞测序 (scRNA-seq) 数据分析

 

本文介绍使用R语言对单细胞测序数据进行分析的一般步骤

本文使用的样例数据在此下载

原始测序数据

 

前置条件

Step 1 - 数据读取、质控与聚类分析

原始数据准备与读取

以下内容均在成功加载所需包后方可正常运行 首先设置工作环境

之后载入原始测序数据。通用的scRNAseq数据中,每个样本应包括三个文件:

这三个文件文件名均为固定,不可修改;相同样本的三个文件同处于一个文件夹目录下,可利用文件夹名区分样本名。

在R中需要读取该样本数据时,只需要指定三个文件所在的文件夹位置,即可使用Seurat包自动读取并分析

本文中,共两个样本(分别命名为ctrl和exper),存储在工作目录下的source目录内。即文件结构为:

分别读取ctrl、exper组的原始数据,并创建对应的Seurat对象

质控指标计算

成功创建Seurat对象后,可以根据自身需要,计算指定的统计指标并附加存储与Seurat对象中,为后续质控环节做准备

使用$符号,即可在对象(本质为列表)内追加新的元素(即存储一个新的指标)

常见需要关注的指标有:

进行数据质控:剔除质量较低的细胞

绘制出的小提琴图如图所示

密度分布图如图所示

基因表达初步分析

绘制每个样本中的基因表达图,寻找组内高变的基因

基因表达图如图所示

细胞PCA降维与聚类

使用split.by,不同标签(ctrl/exper)分别绘制

使用group.by,不同标签(ctrl+exper)同时绘制,可以对比两个样本分布差异

TSNE聚类结果,不同标签(ctrl/exper)分别绘制

TSNE聚类结果,不同标签(ctrl+exper)同时绘制

UMAP聚类结果,图中添加标签

Step 2 - 细胞类型注释

上述的聚类结果仅是将细胞分为不同的Cluster,但未能给出每个Cluster的细胞类型。因此,需要利用合适的参考数据集,对聚类结果进行注释,从而完成对细胞类型的辨认。

参考数据集可以通过数据库/原文献自行获取,参考数据集的质量与合适与否直接关系到注释结果。

这里使用人类全细胞全基因组的参考集ref_Human_all.RData,其格式为.RData,可以直接载入进R供后续使用。

下面压缩包内提供了若干参考集:

参考集数据(分卷压缩,全部下载后置于同一目录;解压第一个压缩包即可)

本例中,参考基因组存放于工作目录下的SingleR_ref目录中。

TSNE聚类+注释

UMAP聚类+注释

可以看出,用该参考集注释后,很多类型的细胞被划分为同一类“T cell”,这说明该参考集的分辨率较低。对于该情况,则可以考虑使用例如专用于免疫细胞注释/T细胞注释的参考集,以将此类细胞类型区分开来。

Step 3 - 基因表达分析

以Cluster0为例,效果如图:

以Cluster0为例,效果如图:

Step4 - 组间基因表达差异分析——火山图

先前的高变基因,仅是进行了组内分析;在很多时候,我们需要对比实验组(exper)和对照组(ctrl)之间,有哪些细胞类型中的哪些基因的表达受到了显著影响,因此需要进行组间基因表达差异分析,即绘制“火山图”

该部分数据保存于工作目录下的DESeq2目录下

以Cluster 0为例,火山图结果为

以Cluster 5为例,火山图结果为

从而可以看出在每一细胞类型之中,对照组vs实验组,哪些基因被上/下调

(标准火山图中,左侧代表下调,右侧代表上调;上侧代表高显著度,即更大的P值。因此,认为左上区域基因发生显著下调,右上区域基因发生显著上调)

注意:计算log2FC时的分子/分母何者对应于实验组/对照组,需要在代码中进行分析时进行指定。具体请参照代码内注释,并建议查看DESeq2::results函数的帮助说明!

番外篇:获取无法下载的包

所需要的包无法正常下载安装是一件很令人头疼的事。尽管Bioconductor包解决了大多数在生物领域依赖包的下载问题,但少数包由于网络限制等原因难以下载

对于该种情况,常用的解决方法包括但不限于:更改下载源、获取程序包的源码并解压至对应目录

对于本文而言,还有一种更为简单的方法,即抄作业!——

 

下面的下载地址将许多常用的R包(包括本文所需的)整合在一个压缩文件中。从理论上,可以其解压后,将所有文件/文件夹移动至用于存储R包的目录

下载链接(分卷压缩,全部下载后置于同一目录;解压第一个压缩包即可)

找到电脑中R的安装目录(如R-1.4.2)(例如你的R.exeRgui.exe程序就位于目录R-1.4.2/binR-1.4.2/bin/x64中)

R中所有下载安装的程序包都储存在此目录下的library目录中。其中每个文件夹的名字就代表着对应的一个包。

R-1.4.2/library中内容如图:

因此就可以实现这些包在不同机器之间的转移——

将上面压缩包中的包解压至library目录(若有重复,可根据版本自行取舍)即可。

(注:部分包版本较旧,可能需要更新。若使用中因为依赖包版本低而无法载入,可以使用BiocManager重新安装该依赖包)