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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【单细胞测序数据分析-1】认识Seurat对象数据结构/数据格式及操作相关的知识,希望对你有一定的参考价值。

参考技术A

一文了解单细胞对象数据结构/数据格式,单细胞数据操作不迷茫。本文内容包括 单细胞seurat对象数据结构, 内容构成,对象的调用、操作,常见函数的应用等。

默认情况下,我们是对Seurat中的RNA的Assay进行操作。可以通过 @active.assay 查看当前默认的assay,通过 DefaultAssay() 更改当前的默认assay。
结构
counts 存储原始数据,是稀疏矩阵
data存储logNormalize() 规范化的data。总表达式对每个单元格的要素表达式度量进行标准化,将其乘以比例因子(默认为10,000),并对结果进行对数转换
scale.data#存储 ScaleData()缩放后的data,此步骤需要时间久。

元数据,对每个细胞的描述。一般的meta.data包括orig.ident, nCount_RNA, nFeature_RNA, 以及计算后的percent.mt,RNA_snn_res.0.5等

降维后的每个细胞的坐标信息,包括pca,tsne,umap等

教程中,pbmc[[\'percent.MT\']]向meta.data添加 percent.MT 这一列。
pbmc[[]],中括号取的是上面结构图中的二级数据名称

无差别

返回的数据类型不同

pbmc[[\'nCount_RNA\']] 取出来,是所有细胞的nCount_RNA,包含细胞信息,数据框

无差别

之前写了对seurat对象的主要 操作列表 https://www.jianshu.com/p/b9078c71f057 ,这里不赘述。下面主要看数据操作。

为什么我画出来的和教程上的不一样?

参考教程
https://satijalab.org/seurat/archive/v3.1/interaction_vignette.html
https://www.jianshu.com/p/1a609ee4caef

单细胞测序分析: 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

以上是关于【单细胞测序数据分析-1】认识Seurat对象数据结构/数据格式及操作的主要内容,如果未能解决你的问题,请参考以下文章

单细胞转录组测序分析--初探Seurat

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

单细胞基因个性化作图之气泡图

Seurat 3.0 实例教程

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

单细胞笔记2-inferCNV的使用