单细胞数据结构-Seurat对象
一、单细胞数据处理方法-Seurat方法
目前,分析单细胞的工具越来越多。其中,Seurat是一个集大成的R包,包含了各种处理单细胞的方法。在R语言中,它使用了S4编程技巧。在单细胞数据分析中,Seurat使用也是最多的,理解其构建的单细胞数据结构成为分析单细胞数据的重要基础(这是在你使用Seurat包时,否则,请忽略!)。
二、Seurat对象的结构
Seurat变量是一种S4对象结构,在初次构建一个对象时,其基本的结构如下(示例)。
# 创建Seurat对象> ZSR.N <- CreateSeuratObject(ZSR.N, min.cells = 3)
图片
Seurat对象的主要属性解读:
(1)assays属性
该属性主要存储了所有细胞的UMI原始数据和标准化数据。在初次构建对象时,也存在相应的属性,只是属性值要么是空,要么和原始数据保持一致。默认情况下,我们是对Seurat中的RNA的Assay进行操作。可以通过@active.assay查看当前默认的assay,通过DefaultAssay()更改当前的默认assay。
图片
RNA是assary访问的第一个属性值,包含了以下所有的属性值
counts:包含了所有细胞的原始UMI数量矩阵,一种稀疏矩阵
data:在初次构建Seurat时,与counts保持一致;当使用NormalizeData()函数标准化后,修改为该方法标准化后的值;主要用于差异分析等
scale.data:初次构建时,大小为0;当使用ScaleData()函数表表转化后,修改为该方法标准化的值;主要用于PCA,UMAP,t-SNE等数据分析等
var.features:用于存放高变异的基因名,默认情况下为空。我们可以用函数VaribleFeatures()来获得这个向量。
meta.features:对每个 features 做的注释。如果要对 features 的功能进行注释、打分、筛选都需要用到meta.features。
(2)meta.data属性
描述每个细胞信息的元数据,每一行代表一个细胞,每一列代表细胞的属性。默认情况下,主要包括orig.ident, nCount_RNA, nFeature_RNA等属性。在后续进行部分运算时,比如线粒体,红细胞等百分比,不同分辨率下的细胞聚类等信息等,也会保存在该属性下。
图片
orig.ident:一般保存的是该对象中所有细胞的样本来源,或者根据自己的需求更改为对细胞的注释。
nCount_RNA:每个细胞的总鉴定的UMI数量
nFeature_RNA:每个细胞的总鉴定的基因数量
meta.data可以用于细胞的筛选或过滤(依据细胞的属性和类型对细胞进行筛选)。
meta.data也可以把分析得到的结果,保存到mata.data中,比如线粒体的比例,红细胞的比例等
(3)active.assay属性:表示后续分析过程中,使用的数据矩阵;可以通过 active.assay属性,查询当前默认激活的assay对象,也可以用 DefaultAssay()函数设置激活的 assay对象。
(4)active.ident属性:表示每一个细胞所属的细胞类型。细胞类型可能有多种不同的分类方法,有些是自动注释的结果,有些可能是手动注释的结果。但在某一时刻激活的细胞类型注释方法是不同的。可以通过用active.ident属性来查询当前默认的细胞类型。
(5)reductions属性:是一个列表对象,包含了一个或多个 DimReduc obect 对象。每一个 DimReduc object 对象对应一种降维分析结果,比如PCA, UMAP, t-SNE等。
(6)commands属性:保存操作该对象的命令及参数
三、NormalizeData和ScaleData两种标准化方法的区别
原始数据如下格式,点号代表没有表达(为0值):行是基因,列是细胞
> ZSR.N@assays$RNA@data[1020:1030, 100:103]11 x 4 sparse Matrix of class "dgCMatrix" ZSRN_ACCAGTAGTTCGAATC ZSRN_ACCCACTAGTTAACGA ZSRN_ACCCACTCAGGTTTCA ZSRN_ACCCACTTCGTGGACCSETDB1 . . . .CERS2 . . . .MINDY1 . . . .PRUNE1 . . . .BNIPL . . 2 .C1orf56 . . . .CDC42SE1 1 . 1 .MLLT11 . . . .GABPB2 . . . .SEMA6C . . . .TNFAIP8L2 . . . .
2.1 NormalizeData()函数
该标准化方法是用来去除由于测序深度带来的影响,后续对方法进行了优化,形成了一个新的标准化方法-SCTransform标准化方法。
基本原理是以细胞为单位,对该细胞中鉴定到的所有基因的counts求和,再将该细胞中每一个基因的counts除以和,再乘以一个因子(默认1000),最后,对所有值取log10变换。
主要用于差异分析,高可变基因等分析
# 以BNIPL基因为例,在ZSRN_ACCCACTCAGGTTTCA细胞中为 2# 计算ZSRN_ACCCACTCAGGTTTCA(第三列)的总counts数total <- sum(pbmc@assays[["RNA"]]@counts[,2])# 计算标准化后的值log1p(2/total*10000)
2.2 ScaleData()函数
该方法的基本原理是以基因为单位,对基因进行z-score标准化,主要用于PCA, UMAP, t-SNE等降维分析。
#统计 BINPL 基因在所有细胞中平均表达均值mean(pbmc@assays$RNA@data['BINPL',])#[out]:0.05966781#统计 BINPL 在所有细胞中表达标准差sd(pbmc@assays$RNA@data['BINPL',])#[out]:0.3216486# z-score计算(1.625141-0.05966781)/0.3216486本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。