分享

单细胞数据结构-Seurat对象

 微笑如酒 2024-01-28 发布于广东

一、单细胞数据处理方法-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。

图片

  1. RNA是assary访问的第一个属性值,包含了以下所有的属性值

  2. counts:包含了所有细胞的原始UMI数量矩阵,一种稀疏矩阵

  3. data:在初次构建Seurat时,与counts保持一致;当使用NormalizeData()函数标准化后,修改为该方法标准化后的值;主要用于差异分析等

  4. scale.data:初次构建时,大小为0;当使用ScaleData()函数表表转化后,修改为该方法标准化的值;主要用于PCA,UMAP,t-SNE等数据分析等

  5. var.features:用于存放高变异的基因名,默认情况下为空。我们可以用函数VaribleFeatures()来获得这个向量。

  6. meta.features:对每个 features 做的注释。如果要对 features 的功能进行注释、打分、筛选都需要用到meta.features。

(2)meta.data属性

描述每个细胞信息的元数据,每一行代表一个细胞,每一列代表细胞的属性。默认情况下,主要包括orig.ident, nCount_RNA, nFeature_RNA等属性。在后续进行部分运算时,比如线粒体,红细胞等百分比,不同分辨率下的细胞聚类等信息等,也会保存在该属性下。

图片

  1. orig.ident:一般保存的是该对象中所有细胞的样本来源,或者根据自己的需求更改为对细胞的注释。

  2. nCount_RNA:每个细胞的总鉴定的UMI数量

  3. nFeature_RNA:每个细胞的总鉴定的基因数量

  4. meta.data可以用于细胞的筛选或过滤(依据细胞的属性和类型对细胞进行筛选)。

  5. 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 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多