單細胞輔助注釋工具-SingleR

很多做單細胞的研究者都提出過這個問題炒瘸,是否有直接的功能能對單細胞直接進行注釋,而不是繁瑣的參看文獻寝衫,搜索marker,人為對單細胞進行注釋拐邪。
單細胞真的可以實現自動化注釋嗎慰毅?我想答案應該是肯定可以的。但是很多方法注釋結果的準確性有待探討扎阶,不過作為單細胞注釋的輔助工具是一個不錯的選擇汹胃。
這兒我們將詳細講解SingleR單細胞注釋工具的使用以及弊端
我們可以通過得到singleR的細胞注釋結果之后,同時結合Seurat的分群結果东臀,具體組織類型來綜合完成細胞注釋着饥。
官方教程Using SingleR to annotate single-cell RNA-seq data: https://www.bioconductor.org/packages/release/bioc/vignettes/SingleR/inst/doc/SingleR.html

使用內置參考進行注釋(最簡便的)
使用SingleR的最簡單方法是使用內置參考對細胞進行注釋。celldex包通過專用的檢索功能提供了7個參考數據集(主要來自大量RNA-seq或微陣列數據)惰赋。
singleR自帶的7個參考數據集宰掉,需要聯網才能下載,其中5個是人類數據赁濒,2個是小鼠的數據:
BlueprintEncodeData Blueprint (Martens and Stunnenberg 2013) and Encode (The ENCODE Project Consortium 2012) (人)
DatabaseImmuneCellExpressionData The Database for Immune Cell Expression(/eQTLs/Epigenomics)(Schmiedel et al. 2018)(人)
HumanPrimaryCellAtlasData the Human Primary Cell Atlas (Mabbott et al. 2013)(人)
MonacoImmuneData, Monaco Immune Cell Data - GSE107011 (Monaco et al. 2019)(人)
NovershternHematopoieticData Novershtern Hematopoietic Cell Data - GSE24759(人)
ImmGenData the murine ImmGen (Heng et al. 2008) (鼠)
MouseRNAseqData a collection of mouse data sets downloaded from GEO (Benayoun et al. 2019).鼠)

相關包安裝

conda install -c bioconda bioconductor-Seurat
conda install -c bioconda bioconductor-singler ##devtools::install_github('dviraran/SingleR')安裝報錯轨奄,直接用conda安裝了
conda install -c bioconda bioconductor-celldex ##安裝這個包用來調用參考數據集

導入相關包,并下載參考數據集

library(Seurat) ##
library(SingleR)
library(ggplot2)
library(reshape2)
hpca.se=HumanPrimaryCellAtlasData() ##第一次載入會下載數據集拒炎,可能會慢一些挪拟,后面在用時就不用下載了
Blue.se=BlueprintEncodeData() 
Immune.se=DatabaseImmuneCellExpressionData()
Nover.se=NovershternHematopoieticData()
MonacoIm.se=MonacoImmuneData()
ImmGen.se=ImmGenData() #(鼠)
Mouse.se=MouseRNAseqData() #(鼠)

在這里,我們還是使用我們前面經常使用的pbmc3k數據集击你,這樣也是為了方便SingleR與Seurat分析結合起來
pbmc數據集相關下載玉组,seurat聚類都可參照前面的簡書:http://www.reibang.com/p/adda4536b2cb

setwd("/home/wucheng/jianshu/function/data")
pbmc <-readRDS("pbmc.rds") ##這兒我們直接導入Seurat標準化谎柄,聚類的pbmc數據
> pbmc
An object of class Seurat 
13714 features across 2638 samples within 1 assay 
Active assay: RNA (13714 features, 2000 variable features)
 2 dimensional reductions calculated: pca, umap

meta=pbmc@meta.data #pbmc的meta文件,包含了seurat的聚類結果
pbmc_for_SingleR <- GetAssayData(pbmc, slot="data") ##獲取標準化矩陣
pbmc.hesc <- SingleR(test = pbmc_for_SingleR, ref = hpca.se, labels = hpca.se$label.main) # 使用HumanPrimaryCellAtlasData參考數據集惯雳,main大類注釋朝巫,也可使用fine小類注釋,不過小類注釋準確性不好確定
table(pbmc.hesc[[i]]$labels,meta$seurat_clusters) ##查看新注釋的標簽與seurat分類的結果的交疊情況
> table(pbmc.hesc[[i]]$labels,meta$seurat_clusters) 
                 
                    0   1   2   3   4   5   6   7   8
  B cells           0   0   3 342   0   0   0   0   1
  CD4+ T cells    488 404   0   1   5   0   0   0   0
  CD8+ T cells    159  51   0   1  96   0   3   0   0
  Dendritic cells   0   0  14   0   0   0   0  31   0
  Monocytes         0   0 463   0   0 162   0   1   2
  NK cells          0   0   0   0  15   0 148   0   0
  Progenitors       4   0   0   0   0   0   0   0  11
  T cells          46  28   0   0 155   0   4   0   0

我們可以看到有些細胞簇分類還是很明確的吨凑,接著我們借助一些可視化函數看看注釋效果

pdf("plotScoreHeatmap.pdf")
print(plotScoreHeatmap(pbmc.hesc))
dev.off()
pbmc@meta.data$labels <-pbmc.hesc$labels
pdf(paste(i,"Umap.pdf",sep ="_"),height=5,width=10)
print(DimPlot(pbmc, group.by = c("seurat_clusters", "labels"),reduction = "umap"))
dev.off()
plotScoreHeatmap

可以看到參考數據集中的大部分細胞類別這兒都沒有


Umap

umap直觀的可以看到通過singleR注釋的細胞標簽準確性應該可以(不過注意這兒時pbmc數據集捍歪,有些組織單細胞數據可能就不是這樣了哦,可能會很亂鸵钝,做好心理準備哦)

aa=table(pbmc.hesc[[i]]$labels,meta$seurat_clusters)
aa= apply(aa,2,function(x) x/sum(x))
df=as.data.frame(melt(aa))
df$Var2=as.factor(df$Var2)
g <- ggplot(df, aes(Var2, Var1)) + geom_point(aes(size = value), colour = "green") + theme_bw() 
pdf("singleR_match_seurat.pdf",height=5,width=10)
print(g)
dev.off()
library(pheatmap)
pdf(paste(i,"heatmap.pdf",sep ="_"),height=5,width=10)
pheatmap(log2(aa+10), color=colorRampPalette(c("white", "blue"))(101))
dev.off()
singleR_match_seurat

heatmap

兩個圖意思差不多糙臼,可以作為判斷簇具體細胞類型的一個借鑒。

另一種是不用這兒的參考數據集恩商,利用已有參考數據集变逃,給其它數據集注釋(Seurat也能實現)
這兒從pbmc數據集中抽取500個細胞作為新的數據集pbmc1,使用前面給pbmc打上的標簽,為pbmc1重新打標簽

pbmc1 <-pbmc[,1:500]
test <- GetAssayData(pbmc1, slot="data")
library(scran)
pbmc1.hesc <- SingleR(test=test, ref=pbmc_for_SingleR, labels=pbmc$labels, de.method="wilcox")
pbmc1@meta.data$labels1 <-pbmc1.hesc$labels
pdf("Umap1.pdf",height=5,width=10)
print(DimPlot(pbmc1, group.by = c("seurat_clusters", "labels"),reduction = "umap"))
dev.off()
Umap1

因為pbmc1是從pbmc抽取的怠堪,所以新的標簽和之前的一致揽乱。

利用多個數據參考集為單細胞數據打標簽
一些時候,如果希望使用多個參考數據集對單細胞數據進行注釋粟矿』嗣蓿可以避免單個參考數據集中不能覆蓋到的標記,從而得到一組更加全面的細胞類型標記陌粹,尤其是在考慮分辨率差異的情況下撒犀。 我們可以通過將多個對象簡單地傳遞到SingleR()函數中的ref=和label=參數,即可支持使用多個參考數據集掏秩。

pbmc.hesc <- SingleR(test = pbmc_for_SingleR, ref = list(BP=Blue.se, HPCA=hpca.se), labels = list(Blue.se$label.main, hpca.se$label.main)) 
table(pbmc.hesc$labels,meta$seurat_clusters)
table(pbmc.hesc$labels,meta$seurat_clusters)
                  
                     0   1   2   3   4   5   6   7   8
  B_cell             0   0   0   4   0   0   0   0   0
  B-cells            0   0   0 334   0   0   0   1   1
  CD4+ T-cells     310 140   0   1   1   0   0   0   0
  CD8+ T-cells     366 318   0   4 240   0   5   1   0
  HSC                4   0   0   0   0   0   0   1   0
  Monocyte           0   0 292   0   0 130   0  21   0
  Monocytes          0   0 175   0   0  30   0   8   1
  NK cells           0   0   0   0  30   0 150   0   0
  Platelets          0   0   0   0   0   0   0   0  12
  Pre-B_cell_CD34-   0   0  13   0   0   1   0   0   0
  T_cells           17  25   0   1   0   1   0   0   0

不同參考數據集命名不同或舞,有些其實是一樣的細胞類型。

總而言之蒙幻,參考庫是作者基于已發(fā)表的單一種類的純細胞轉錄組數據構建的映凳,所以如果純轉錄組數據不全,細胞注釋是存在影響的邮破。
所以說诈豌,SingleR作為單細胞注釋的輔助工具是一個不錯的選擇。
后面我們還會講到其它的單細胞注釋輔助工具决乎,謝謝队询!

希望大家關注點贊,謝謝9钩稀0稣丁!!K蜕拧T蔽骸!5K貉帧!B挡埂虏束!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市厦章,隨后出現的幾起案子镇匀,更是在濱河造成了極大的恐慌,老刑警劉巖袜啃,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汗侵,死亡現場離奇詭異,居然都是意外死亡群发,警方通過查閱死者的電腦和手機晰韵,發(fā)現死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熟妓,“玉大人雪猪,你說我怎么就攤上這事∑鹩” “怎么了浪蹂?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長告材。 經常有香客問我,道長古劲,這世上最難降的妖魔是什么斥赋? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮产艾,結果婚禮上疤剑,老公的妹妹穿的比我還像新娘。我一直安慰自己闷堡,他們只是感情好隘膘,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杠览,像睡著了一般弯菊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上踱阿,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天管钳,我揣著相機與錄音钦铁,去河邊找鬼。 笑死才漆,一個胖子當著我的面吹牛牛曹,可吹牛的內容都是我干的。 我是一名探鬼主播醇滥,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼黎比,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸳玩?” 一聲冷哼從身側響起阅虫,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怀喉,沒想到半個月后书妻,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡躬拢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年躲履,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聊闯。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡工猜,死狀恐怖,靈堂內的尸體忽然破棺而出菱蔬,到底是詐尸還是另有隱情篷帅,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布拴泌,位于F島的核電站魏身,受9級特大地震影響,放射性物質發(fā)生泄漏蚪腐。R本人自食惡果不足惜箭昵,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望回季。 院中可真熱鬧家制,春花似錦、人聲如沸泡一。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鼻忠。三九已至涵但,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贤笆。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工蝇棉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芥永。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓篡殷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親埋涧。 傳聞我的和親對象是個殘疾皇子板辽,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容