美文网首页
Seurat查看不同亚群的高表达基因排行(AverageExpr

Seurat查看不同亚群的高表达基因排行(AverageExpr

作者: 黄甫一 | 来源:发表于2022-06-01 16:14 被阅读0次

    适用背景

    虽然单细胞绝大多数时候都关注差异表达基因(DEG),但在分析中途会发现有些奇奇怪怪的基因会在所有细胞中都高表达,所以这篇文章才写了下面这个函数ave_top,用于选取每个亚群的高表达基因。
    这个函数主要使用了Seurat自带的AverageExpression函数对每个亚群计算其平均表达量,然后排序后选取高表达的top基因,用起来也比较简单。参数介绍:

    • obj Seurat对象
    • assays 默认为‘RNA’,一般也推荐使用原始的表达矩阵assay
    • group.by 分组信息,默认为'seurat_clusters'
    library(Seurat)
    library(dplyr)
    ave_top <- function(obj,assays='RNA',group.by ='seurat_clusters',ntop=20) {
    ave <- AverageExpression(obj, assays = assays, group.by = group.by)
    df1 <- data.frame(ave[[assays]])
    col_sort <- function(col,df,ntop=20) {
        df <- df[col]
        df$gene <- rownames(df)
        df$col <- col
        colnames(df)<- c("score","gene","cluster")
        rownames(df) <- NULL
        df <- arrange(df,desc(score))
        df <- df[1:ntop,]
    }
    lt <- lapply(colnames(df1),col_sort,df=df1,ntop=ntop)
    df2 <- Reduce(rbind,lt)
    return(df2)
    }
    

    函数返回的的是一个数据框,里面记录了每个cluster的前n个top基因平均表达量。

    score   gene    cluster
    1       584.010949081858        transcript/58277.mrna1  X0
    2       374.43862301027 transcript/58511.mrna1  X0
    3       118.511179761744        transcript/42113.mrna1  X0
    4       104.396406838368        transcript/52106.mrna1  X0
    5       88.9929905206066        transcript/55348.mrna2  X0
    6       46.2031101527192        RBFOX1  X0
    7       42.0222256206988        IL1RAPL1        X0
    8       39.0578761072863        transcript/48150.mrna1  X0
    9       38.8097305563072        unknown-transcript-1    X0
    10      32.4727604332302        NRXN1   X0
    

    小结与补充

    这个函数大多数时候应该用不上,因为只看亚群的高表达基因的意义不大,毕竟高表达基因往往并不是亚群特异性基因,研究单细胞往往也只关注这些特异性基因,因此大家一般都只关注差异表达基因。

    相关文章

      网友评论

          本文标题:Seurat查看不同亚群的高表达基因排行(AverageExpr

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