美文网首页
Seurat构建meta- feature表达矩阵

Seurat构建meta- feature表达矩阵

作者: 倪桦 | 来源:发表于2022-05-22 00:31 被阅读0次

    对于小数据集

    直接使用aggregate函数对数据框形式的表达矩阵进行运算

    counts <- sc[['RNA']]@counts #取出表达矩阵
    4 x 4 sparse Matrix of class "dgCMatrix"
           cell.1 cell.2 cell.3 cell.4
    gene.1      2      4      3      3
    gene.2      6      4      3      3
    gene.3      1      2      3      3
    gene.4      8      9      .      3
    data.use <- sc[['RNA']]@meta.features #取出需要重合的gene标签"pseudoid"
           pseudoid
    gene.1        a
    gene.2        a
    gene.3        b
    gene.4        c
     #根据pseudoid聚合基因表达量
    counts.new = aggregate(counts,by=list(data.use$pseudoid),FUN=sum) %>% data.table::data.table() %>% tibble::column_to_rownames(var = "Group.1")
    sc.agg <- CreateSeuratObject(counts = counts)
    

    对于大型稀疏矩阵,推荐使用矩乘的形式进行处理

    bMfeatures <- function(object,method="metaSum"){
        data <- object@assays$RNA@meta.features
        category.matrix <- Matrix::sparse.model.matrix(object = ~ -1 + data[,1] ) #创建分类矩阵
        category.matrix = Matrix::t(category.matrix)
        rownames(category.matrix) <- gsub("data\\[, 1\\]","",rownames(category.matrix))
        data.use <- GetAssayData(object, slot = "counts")
        aggreate.counts = category.matrix %*% data.use
        if (method == "gSI") {aggreate.counts = aggreate.counts / Matrix::rowSums(aggreate.counts)}#计算基因表达特异性指数
        toRet <- CreateSeuratObject(counts = aggreate.counts)
        return(toRet)
    }
    sc.meta <- bMfeatures(mini.sc,method = 'gSI')
    

    相关文章

      网友评论

          本文标题:Seurat构建meta- feature表达矩阵

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