美文网首页单细胞单细胞测序单细胞测序
SciBet:一个软件解决单细胞注释所有烦恼

SciBet:一个软件解决单细胞注释所有烦恼

作者: 生信宝库 | 来源:发表于2022-04-08 13:25 被阅读0次

    说在前面

    对于单细胞数据分析流程来说,其中最重要的一步就是对各种细胞亚群进行准确的注释,因为后续的分析全部在这个基础上进行,一步出错步步错;而且注释出的细胞类型还会影响后续进行的相关功能分析。生信宝库在之前的推文:一文解决单细胞亚群注释的所有问题中,已经介绍了解决单细胞注释常见问题的一些方法,并且给出了Immugent基于多年单细胞分析经验的各种细胞marker genes。

    但是时代在进步,主要依靠人力的时代已经过去,各个领域都在开发出替代人工来进行工作的工具,当然单细胞注释也不例外。目前基于监督和半监督的单细胞注释软件已经有很多了,比较有名的就是singleR,Cell Blast等。但是这些软件要么不准确,要么太耗时,而且不能根据需要制定特殊的参考数据。

    那么今天,Immgent就来介绍一款真正的实现轻便,灵活的单细胞注释工具:SciBet。这款工具由张泽民老师课题组在2021年开发出来,发表在Nature communications杂志上,篇名为“SciBet as a portable and fast single cell type identifier”。

    废话不多说,下面开始进行代码展示...


    代码实现

    1.安装和引用SciBet包

    install.packages("Rcpp")
    install.packages("RcppEigen")
    install.packages("ggsci")
    install.packages("viridis")
    install.packages("tidyverse")
    if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
    devtools::install_github("PaulingLiu/scibet")
    
    suppressMessages(library(ggplot2))
    suppressMessages(library(tidyverse))
    suppressMessages(library(scibet))
    suppressMessages(library(viridis))
    suppressMessages(library(ggsci))
    

    2.使用E-test挑选特征基因

    path_da <- "~/test.rds.gz"
    expr <- readr::read_rds(path = path_da) 
    expr[1:10, 1:10]
    
    etest_gene <- SelectGene(expr, k = 50)
    etest_gene
    
    #作图
    Marker_heatmap(expr, etest_gene)
    
    image.png

    3.使用Entropy Test鉴定单细胞亚群

    tibble(  ID = 1:nrow(expr),
      label = expr$label) %>%
      dplyr::sample_frac(0.7) %>%
      dplyr::pull(ID) -> ID
    
    train_set <- expr[ID,]      #construct reference set
    test_set <- expr[-ID,]      #construct query set
    
    prd <- SciBet(train_set, test_set[,-ncol(test_set)])
    
    Confusion_heatmap(test_set$label, prd)
    
    image.png

    4.假阳性检测

    由于scRNA-seq参考数据收集的不完全性,从参考数据集中排除的细胞类型可能被错误地预测为已知的细胞类型。通过应用一个空数据集作为背景,SciBet控制了潜在的假阳性,同时对参考数据集覆盖的类型(阳性细胞)的细胞保持较高的预测精度。

    null <- readr::read_rds('~/null.rds.gz')
    reference <- readr::read_rds('~/reference.rds.gz')
    query <- readr::read_rds('~/query.rds.gz')
    
    ori_label <- query$label
    table(ori_label)
    query <- query[,-ncol(query)]
    c_score <- conf_score(ref = reference, query = query, null_expr = null, gene_num = 500)
    
    tibble(ori = ori_label,
      prd = SciBet(reference, query),
      c_score = c_score) -> res
    
    Confusion_heatmap_negctrl(res, cutoff = 0.45)
    
    image.png

    SciBet包目前已经训练出很多经典的单细胞模型中的参考数据集,使用者可以根据需要进行个性化设定。而且相比于其它同类型软件,SciBet不仅运算速度非常快,而且每一种细胞亚群中的假阳性率低。


    小结

    在单细胞领域,只要是张泽民老师实验室出品的工具,那必属精品。为了方便那些不懂编程的科研工作者使用这个软件,SciBet还开发出了网页版的工具(http://scibet.cancer-pku.cn),你是需要把自己的数据准备成相应的表格,即可进行单细胞亚群注释。

    好啦,本次分享到这就结束了,下一期我们将会解读同样是张老师课题组开发的对单细胞数据进行整合的工具:iMAP,敬请期待!

    相关文章

      网友评论

        本文标题:SciBet:一个软件解决单细胞注释所有烦恼

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