单细胞测序分析: Seurat 使用教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单细胞测序分析: Seurat 使用教程相关的知识,希望对你有一定的参考价值。

参考技术A Peripheral Blood Mononuclear Cells (PBMC) 是 10X Genomics dataset page 提供的一个数据,包含2700个单细胞,出自Illumina NextSeq 500平台。

PBMCs是来自健康供体具有相对少量RNA(around 1pg RNA/cell)的原代细胞。在Illumina NextSeq 500平台,检测到2700个单细胞,每个细胞获得69000 reads。

matrix.mtx:matrix.mtx 是 MatrixMarket格式文件;更多内容见: http://math.nist.gov/MatrixMarket/formats.html

##3.1 Read10X()函数可以自动读入和解析数据。

#查看每个细胞有多少基因被检测到

##3.2 使用pbmc数据初始化Seurat对象

这部分是基于数据质控方法,标准化和检测到的变化基因对数据进行筛选。

##4.1 对细胞的质控

可以参考文章: Classification of low quality cells from single-cell RNA-seq data

#线粒体基因占比计算

#画图查看基因数目, UMI数目, 线粒体基因占比

#查看基因数目, 线粒体基因占比与UMI数目的关系

#质控

##4.2 数据标准化

默认使用数据标准化方法是 LogNormalize , 每个细胞总的表达量都标准化到10000,然后log取对数;结果存放于 pbmc[["RNA"]]@data 。
#标准化前,每个细胞总的表达量

#标准化后,每个细胞总的表达量

##4.3 变化基因鉴定

鉴定在细胞间表达高度变化的基因,后续研究需要集中于这部分基因。Seurat内置的FindVariableFeatures()函数,首先计算每一个基因的均值和方差,并且直接模拟其关系。默认返回2000个基因。

##4.4 数据缩放

线性转换缩放数据,ScaleData()函数可以实现此功能。

最终每个基因均值为0,方差为1。

结果存放于 pbmc[["RNA"]]@scale.data 。

设置参数features是因为ScaleData默认处理前面鉴定的差异基因。这一步怎么做都不会影响到后续pca和聚类,但是会影响做热图。

移除影响方差的因素

##5.1 PCA

对缩放后的数据进行PCA分析,默认使用前面鉴定表达变化大的基因。使用features参数可以重新定义数据集。

VizDimReduction , DimPlot , 和 DimHeatmap 可以从基因或细胞角度可视化pca结果

#查看对每个主成分影响比较大的基因集

#可视化对每个主成分影响比较大的基因集

两个主成分的展示

DimHeatmap绘制基于单个主成分的热图,细胞和基因的排序都是基于他们的主成分分数。对于数据异质性的探索是很有帮助的,可以帮助用户选择用于下游分析的主成分维度。

展示多个主成分

##5.1 数据维度

为了避免单个基因影响,Seurat聚类细胞时使用pca结果。首先需要确定的是使用多少个主成分用于后续分析。常用有两种方法,一种是基于零分布的统计检验方法,这种方法耗时且可能不会返回明确结果。另一种是主成分分析常用的启发式评估。

在JackStraw()函数中, 使用基于零分布的置换检验方法。随机抽取一部分基因(默认1%)然后进行pca分析得到pca分数,将这部分基因的pca分数与先前计算的pca分数进行比较得到显著性p-Value,。根据主成分(pc)所包含基因的p-value进行判断选择主成分。最终的结果是每个基因与每个主成分的关联的p-Value。保留下来的主成分是那些富集小的p-Value基因的主成分。

处理大数据时会花费大量时间;ElbowPlot()内置了一些其它的方法可以减少运行时间。

JackStrawPlot()函数提供可视化方法,用于比较每一个主成分的p-value的分布,虚线是均匀分布;显著的主成分富集有小p-Value基因,实线位于虚线左上方。下图表明保留10个pca主成分用于后续分析是比较合理的。

启发式评估方法生成一个Elbow plot图。在图中展示了每个主成分对数据方差的解释情况(百分比表示),并进行排序。根据自己需要选择主成分,图中发现第9个主成分是一个拐点,后续的主成分(PC)变化都不大了。

注意:鉴别数据的真实维度不是件容易的事情;除了上面两种方法,Serat官当文档还建议将主成分(数据异质性的相关来源有关)与GSEA分析相结合。Dendritic cell 和 NK aficionados可能识别的基因与主成分 12 和 13相关,定义了罕见的免疫亚群 (i.e. MZB1 is a marker for plasmacytoid DCs)。如果不是事先知道的情况下,很难发现这些问题。

Serat官当文档因此鼓励用户使用不同数量的PC(10、15,甚至50)重复下游分析。其实也将观察到的,结果通常没有显著差异。因此,在选择此参数时,可以尽量选大一点的维度,维度太小的话对结果会产生不好的影响。

Seurat v3应用基于图形的聚类方法,例如KNN方法。具有相似基因表达模式的细胞之间绘制边缘,然后将他们划分为一个内联群体。

在PhenoGraph中,首先基于pca维度中(先前计算的pca数据)计算欧式距离(the euclidean distance),然后根据两个细胞在局部的重合情况(Jaccard 相似系数)优化两个细胞之间的边缘权值。此步骤内置于FindNeighbors函数,输入时先前确定的pc数据。

为了聚类细胞,接下来应用模块化优化技术迭代将细胞聚集在一起。(the Louvain algorithm (default) or SLM [SLM, Blondel et al., Journal of Statistical Mechanics]),FindClusters函数实现这一功能,其中需要注意resolution参数,该参数设置下游聚类分析的“granularity”,更大的resolution会导致跟多的细胞类群。3000左右的细胞量,设置resolution为0.4-1.2是比较合适的。细胞数据集越大,需要更大的resolution参数, 会获得更多的细胞聚类。
查看细胞属于那个类群可以使用函数Idents。

Seurat提供了一些非线性降维度分析的方法,如tSNE和UMAP,以可视化和探索这些数据集;这一步使用的数据建议与聚类分析使用的pc维度一致。

#画图展示

此时可以保存数据,方便下次直接导入数据修改图形。

Seurat可以通过差异表达分析寻找不同细胞类群的标记基因。FindMarkers函数可以进行此操作,但是默认寻找单个类群(参数ident.1)与其他所有类群阳性和阴性标记基因。FindAllMarkers函数会自动寻找每个类群和其他每个类群之间的标记基因。

min.pct参数:设定在两个细胞群中任何一个被检测到的百分比,通过此设定不检测很少表达基因来缩短程序运行时间。默认0.1

thresh.test参数:设定在两个细胞群中基因差异表达量。可以设置为0 ,程序运行时间会更长。

max.cells.per.ident参数:每个类群细胞抽样设置;也可以缩短程序运行时间。

Seurat可以通过参数test.use设定检验差异表达的方法(详情见 DE vignett )。

Seurat有多种方法可视化标记基因的方法

DoHeatmap为指定的细胞和基因花表达热图。每个类群默认展示top 20标记基因。

根据已知细胞类型与基因标记的对应关系,可以为细胞类群找到对应的细胞类型。

参考:
Seurat - Guided Clustering Tutorial, Compiled: April 17, 2020
Getting started with Seurat

跟着Cell学单细胞转录组分析(五):单细胞转录组marker基因鉴定及细胞群注释

参考技术A 书接上回( 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类 )。完成数据降维和细胞聚类后,最主要的环节和工作就是确定各个细胞群,明确是什么类型的细胞,正群的细胞定群很关键,涉及到整个研究,所以这一步宁愿多费时间,也不要出错。当然,这也不是一蹴而就的,需要反复的确认。

要确定各个群是什么细胞,首先需要了解细胞群的marker基因,因为不同类型的细胞突出 表达的基因也是不同的。这里使用FindAllMarkers鉴定各个细胞群的高表达基因。

Seurat提供了几种函数例如FeaturePlot()、DotPlot()和DoHeatmap(),按照文章中的mrker基因,做一下可视化。

点图:

UMAP图:

热图:

很显然,这些都是默认出图,距离发文章还是有一定距离的,后期我们会专门讲解个性化的修饰,争取可视化更好。

接下来就是细胞定群了,对各个细胞群命名。细胞定群有很多方法,目前也有很多工具,但是依照我的经验,自动定群等一般结果不是完全正确,况且操作复杂,为了保证正确性,最使用的办法还是查询文献定群。定群后,对细胞群重命名。

最后将命名的文件保存,可视化细胞群!在进行下一步工作之前,之后的内容将会是对目前这些图形结果的修饰和个性化可视化!

以上是关于单细胞测序分析: Seurat 使用教程的主要内容,如果未能解决你的问题,请参考以下文章

【单细胞测序数据分析-1】认识Seurat对象数据结构/数据格式及操作

单细胞seurat包的原理解析

Seurat4.0系列教程21: 结合Cell Hashing分析双细胞

Seurat 3.0 实例教程

Seurat软件使用操作教程

单细胞笔记2-inferCNV的使用