說在前面
對于單細胞數(shù)據(jù)分析流程來說,其中最重要的一步就是對各種細胞亞群進行準(zhǔn)確的注釋,因為后續(xù)的分析全部在這個基礎(chǔ)上進行,一步出錯步步錯;而且注釋出的細胞類型還會影響后續(xù)進行的相關(guān)功能分析。生信寶庫在之前的推文:一文解決單細胞亞群注釋的所有問題中,已經(jīng)介紹了解決單細胞注釋常見問題的一些方法,并且給出了Immugent基于多年單細胞分析經(jīng)驗的各種細胞marker genes。
但是時代在進步,主要依靠人力的時代已經(jīng)過去,各個領(lǐng)域都在開發(fā)出替代人工來進行工作的工具,當(dāng)然單細胞注釋也不例外。目前基于監(jiān)督和半監(jiān)督的單細胞注釋軟件已經(jīng)有很多了,比較有名的就是singleR,Cell Blast等。但是這些軟件要么不準(zhǔn)確,要么太耗時,而且不能根據(jù)需要制定特殊的參考數(shù)據(jù)。
那么今天,Immgent就來介紹一款真正的實現(xiàn)輕便,靈活的單細胞注釋工具:SciBet。這款工具由張澤民老師課題組在2021年開發(fā)出來,發(fā)表在Nature communications雜志上,篇名為“SciBet as a portable and fast single cell type identifier”。
廢話不多說,下面開始進行代碼展示...
代碼實現(xiàn)
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)

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)

4.假陽性檢測
由于scRNA-seq參考數(shù)據(jù)收集的不完全性,從參考數(shù)據(jù)集中排除的細胞類型可能被錯誤地預(yù)測為已知的細胞類型。通過應(yīng)用一個空數(shù)據(jù)集作為背景,SciBet控制了潛在的假陽性,同時對參考數(shù)據(jù)集覆蓋的類型(陽性細胞)的細胞保持較高的預(yù)測精度。
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)

SciBet包目前已經(jīng)訓(xùn)練出很多經(jīng)典的單細胞模型中的參考數(shù)據(jù)集,使用者可以根據(jù)需要進行個性化設(shè)定。而且相比于其它同類型軟件,SciBet不僅運算速度非???,而且每一種細胞亞群中的假陽性率低。
小結(jié)
在單細胞領(lǐng)域,只要是張澤民老師實驗室出品的工具,那必屬精品。為了方便那些不懂編程的科研工作者使用這個軟件,SciBet還開發(fā)出了網(wǎng)頁版的工具(http://scibet.cancer-pku.cn),你是需要把自己的數(shù)據(jù)準(zhǔn)備成相應(yīng)的表格,即可進行單細胞亞群注釋。
好啦,本次分享到這就結(jié)束了,下一期我們將會解讀同樣是張老師課題組開發(fā)的對單細胞數(shù)據(jù)進行整合的工具:iMAP,敬請期待!