美文网首页
scRNA-seq的SCE对象

scRNA-seq的SCE对象

作者: 新欣enjoy | 来源:发表于2020-02-05 17:07 被阅读0次

    单细胞转录组对象SCE,是单细胞数据分析的基础,很多相应的R包都基于SCE对象展开的,而且SCE对象的很多函数值得学习。在此记录SCE对象的基本结构,及利用mapID将基因Ensemble ID转换为Symbol name方法学习。

    SCE对象概览
    SCE,SingleCellExperiment,基本结构如下图。主要包括四个部分:assay,其中列表示样本,行表示基因,存储基因表达量;rowData,存储基因的metaData,包括基因各种ID,基因长度信息等,也可以自行添加必要的注释内容;colData,存储样本的metaData,包括细胞ID,批次,细胞类型等;reducedDims,存储降维后的细胞所属主成分信息。

    SCE对象包含的信息

    参考:详细的SCE对象各板块组成及操作

    mapIds 基因转换
    借助mapIds函数,及相应物种的注释数据库,可以将基因Ensembl ID 转换为Symbol name。

    library(org.Mm.eg.db) ##小鼠注释包
    symb <- mapIds(org.Mm.eg.db, keys=rownames(sce), keytype="ENSEMBL", column="SYMBOL")
    
    # 看看数据类型
    > head(symb)
    ENSMUSG00000102693 ENSMUSG00000064842 ENSMUSG00000051951 ENSMUSG00000102851 
                    NA                 NA             "Xkr4"                 NA 
    ENSMUSG00000103377 ENSMUSG00000104017 
                    NA                 NA 
    
    # 检测一下它们的Ensembl ID是否一样
    > identical(names(symb),rownames(sce))
    [1] TRUE
    
    rowData(sce)$SYMBOL <- symb
    rowData(sce)$ENSEMBL <- rownames(sce)
    
    > head(rowData(sce))
    DataFrame with 6 rows and 3 columns
                       GeneLength            ENSEMBL      SYMBOL
                        <integer>        <character> <character>
    ENSMUSG00000102693       1070 ENSMUSG00000102693          NA
    ENSMUSG00000064842        110 ENSMUSG00000064842          NA
    ENSMUSG00000051951       6094 ENSMUSG00000051951        Xkr4
    ENSMUSG00000102851        480 ENSMUSG00000102851          NA
    ENSMUSG00000103377       2819 ENSMUSG00000103377          NA
    ENSMUSG00000104017       2233 ENSMUSG00000104017          NA
    

    以上的转换结果中看到,有些基因不能找到对应的SYMBOL而用NA代替,或者出现重复的SYMBOL,那么就需要对以上结果进行整合或者去重,这就需要借助scater包函数uniquifyFeatureNames() 。

    该函数思想:如果有symbol name的,它会将Ensembl ID替换为symbol name,没有name的仍然使用ID;如果name相同、ID不同(即两个Ensembl ID对应同一个Symbol name),它会将ID与name组合保证特异性(详见?uniquifyFeatureNames)

    library(scater)
    ## 参数很简单,第一个是ID,第二是names
    rownames(sce) <- uniquifyFeatureNames(rowData(sce)$ENSEMBL, rowData(sce)$SYMBOL)
    
    head(rownames(sce))
    ## [1] "ENSMUSG00000102693" "ENSMUSG00000064842" "Xkr4"              
    ## [4] "ENSMUSG00000102851" "ENSMUSG00000103377" "ENSMUSG00000104017"
    

    参考:mapIds转换ID

    相关文章

      网友评论

          本文标题:scRNA-seq的SCE对象

          本文链接:https://www.haomeiwen.com/subject/efbsxhtx.html