SciBet:一個(gè)軟件解決單細(xì)胞注釋所有煩惱

說在前面

對(duì)于單細(xì)胞數(shù)據(jù)分析流程來說,其中最重要的一步就是對(duì)各種細(xì)胞亞群進(jìn)行準(zhǔn)確的注釋,因?yàn)楹罄m(xù)的分析全部在這個(gè)基礎(chǔ)上進(jìn)行,一步出錯(cuò)步步錯(cuò);而且注釋出的細(xì)胞類型還會(huì)影響后續(xù)進(jìn)行的相關(guān)功能分析。生信寶庫在之前的推文:一文解決單細(xì)胞亞群注釋的所有問題中,已經(jīng)介紹了解決單細(xì)胞注釋常見問題的一些方法,并且給出了Immugent基于多年單細(xì)胞分析經(jīng)驗(yàn)的各種細(xì)胞marker genes。

但是時(shí)代在進(jìn)步,主要依靠人力的時(shí)代已經(jīng)過去,各個(gè)領(lǐng)域都在開發(fā)出替代人工來進(jìn)行工作的工具,當(dāng)然單細(xì)胞注釋也不例外。目前基于監(jiān)督和半監(jiān)督的單細(xì)胞注釋軟件已經(jīng)有很多了,比較有名的就是singleR,Cell Blast等。但是這些軟件要么不準(zhǔn)確,要么太耗時(shí),而且不能根據(jù)需要制定特殊的參考數(shù)據(jù)。

那么今天,Immgent就來介紹一款真正的實(shí)現(xiàn)輕便,靈活的單細(xì)胞注釋工具:SciBet。這款工具由張澤民老師課題組在2021年開發(fā)出來,發(fā)表在Nature communications雜志上,篇名為“SciBet as a portable and fast single cell type identifier”。

廢話不多說,下面開始進(jìn)行代碼展示...


代碼實(shí)現(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)
image.png

3.使用Entropy Test鑒定單細(xì)胞亞群

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

SciBet包目前已經(jīng)訓(xùn)練出很多經(jīng)典的單細(xì)胞模型中的參考數(shù)據(jù)集,使用者可以根據(jù)需要進(jìn)行個(gè)性化設(shè)定。而且相比于其它同類型軟件,SciBet不僅運(yùn)算速度非??欤颐恳环N細(xì)胞亞群中的假陽性率低。


小結(jié)

在單細(xì)胞領(lǐng)域,只要是張澤民老師實(shí)驗(yàn)室出品的工具,那必屬精品。為了方便那些不懂編程的科研工作者使用這個(gè)軟件,SciBet還開發(fā)出了網(wǎng)頁版的工具(http://scibet.cancer-pku.cn),你是需要把自己的數(shù)據(jù)準(zhǔn)備成相應(yīng)的表格,即可進(jìn)行單細(xì)胞亞群注釋。

好啦,本次分享到這就結(jié)束了,下一期我們將會(huì)解讀同樣是張老師課題組開發(fā)的對(duì)單細(xì)胞數(shù)據(jù)進(jìn)行整合的工具:iMAP,敬請(qǐng)期待!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容