歡迎關(guān)注,同名公主號,BBio
一般來說,無論是人工還是軟件自動(dòng)注釋,都要先進(jìn)行無監(jiān)督的聚類,然后以 cluster為單位進(jìn)行注釋。文章通過比較32款工具的準(zhǔn)確性、運(yùn)行時(shí)間等評估各個(gè) 工具,并整合了一個(gè)R包- AutomaticCellTypeIdentifification。文章發(fā)表較早,最新的工具沒有收錄。
//文獻(xiàn)
Automatic cell type identifification methods for single-cell RNA sequencing
//單細(xì)胞marker數(shù)據(jù)庫
因?yàn)楦鞣N各樣的原因,自動(dòng)注釋的結(jié)果可能不如人意,掌握一些常見細(xì)胞類型的經(jīng)典 marker基因,對于校準(zhǔn)自動(dòng)注釋的結(jié)果有很大幫助。CellMarker、panglaodb數(shù)據(jù)庫包括人、鼠多個(gè)組織的細(xì)胞類型marker基因,CancerSEA收集了多個(gè)癌種的單細(xì)胞數(shù)據(jù),提供癌癥單細(xì)胞功能狀態(tài)圖譜,及相關(guān)的基因。


//工具簡介
文章將各個(gè)工具分為三類,積極學(xué)習(xí)方法(ACTINN, CaSTLe, CHETAH, clustifyr, Garnett, MarkerCount, MARS, scCapsNet, scClassifR, SciBet, scID, scLearn, scmap-cluster, scMatch, scHPL, scPred, scPretrain, scVI, Seurat, SingleCellNet, SingleR, Superscan)、懶惰 學(xué)習(xí)方法(CellAtlasSearch, CELLBLAST, CellFishing.jl, scmap-cell)、marker學(xué)習(xí)方法(CellAssign, DigitalCellSorter, MarkerCount, scCATCH, SCINA, SCSA, scTyper),部分工具包含多種方法。
懶惰學(xué)習(xí)方法基于訓(xùn)練數(shù)據(jù)集投影細(xì)胞來識(shí)別最近的近鄰細(xì)胞,類似于經(jīng)典的BLAST方法;積極學(xué)習(xí)方法首先收集細(xì)胞類型信息對訓(xùn)練數(shù)據(jù)集進(jìn)行分組,然后將測試細(xì)胞映射到最近的組;marker學(xué)習(xí)方法利用在給定的細(xì)胞類型中高度表達(dá)的細(xì)胞marker,使用數(shù)學(xué)模型分配細(xì)胞類型。
所有的工具都涉及到如何選擇feature的問題,一類選擇representative gene,比如高表達(dá)基因、高變基因、高dropout基因 ,另一類選擇transformed gene,比如主成分降維信息。
在細(xì)胞類型鑒定時(shí),主要根據(jù)相似性進(jìn)行,比如 cosine similarity、 Spearman correlation、 Euclidean distance 等。部分工具使用一般分類器進(jìn)行細(xì)胞類型鑒定,比如隨機(jī)森林、線性支持向量機(jī)、最大似然評估等。
//結(jié)論
在積極學(xué)習(xí)方法中,clustifyr、scHPL和scPred在各項(xiàng)指標(biāo)上表現(xiàn)良好。SingleCellNet, SciBet和Seurat在準(zhǔn)確性,f1評分和速度方面表現(xiàn)良好。在懶惰學(xué)習(xí)方法中,CellFishing.jl似乎是最好的方法。在marker學(xué)習(xí)方法中,SCSA、SCINA、scTyper和CellAssign表現(xiàn)較好。
但是從圖中也可以看出,很多軟件在速度和準(zhǔn)確性方面是非常相似的,那使用的方便程度就是一個(gè)非常重要的因素了。

//SingleR自動(dòng)注釋測試
簡單介紹一個(gè)使用方便,在線教程非常非常多的一個(gè)軟件SingleR。
SingleR屬于積極學(xué)習(xí)方法中的一種,發(fā)表于2019年,基于訓(xùn)練數(shù)據(jù)集注釋測試數(shù)據(jù)集。使用高變基因作為feature,使用Spearman相關(guān)性分配細(xì)胞類型。
- 官方教程
https://www.bioconductor.org/packages/release/bioc/vignettes/SingleR/inst/doc/SingleR.html
- 安裝
BiocManager::install("SingleR")
BiocManager::install("scRNAseq")
- SingleR函數(shù)進(jìn)行注釋

#一些關(guān)鍵參數(shù)
#test:測試數(shù)據(jù)集的表達(dá)矩陣
#ref:訓(xùn)練集的表達(dá)矩陣,可以是一個(gè)list包含多個(gè)矩陣
#labels:對應(yīng)每個(gè)ref矩陣的細(xì)胞類型標(biāo)簽
#method:選擇按照單個(gè)細(xì)胞或者cluster進(jìn)行注釋
#quantile:設(shè)置相關(guān)性的閾值,默認(rèn)0.8,也不宜過高,畢竟不同的數(shù)據(jù)集還是存在異質(zhì)性的
- 測試
library(SingleR)
library(scRNAseq)
#訓(xùn)練集
sceM <- MuraroPancreasData()
sceM <- sceM[,!is.na(sceM$label)]
library(scuttle)
sceM <- logNormCounts(sceM)
#測試集
sceG <- GrunPancreasData()
sceG <- sceG[,colSums(counts(sceG)) > 0] # Remove libraries with no counts.
sceG <- logNormCounts(sceG)
sceG <- sceG[,1:100]
#SingleR函數(shù)進(jìn)行注釋
pred.grun <- SingleR(test=sceG, ref=sceM, labels=sceM$label, de.method="wilcox")
table(pred.grun$labels)
##
## acinar beta delta duct
## 53 4 2 41
- trainSingleR函數(shù)進(jìn)行訓(xùn)練數(shù)據(jù)集
最新版本的SingleR也支持使用marker訓(xùn)練了。

#genes:指定feature selection方法或者直接指定每個(gè)label的marker基因,默認(rèn)使用差異分析鑒定到的高變基因
trainSingleR(ref, ref$label, genes="de")