单细胞测序分析: 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对象数据结构/数据格式及操作