對(duì)SingleR進(jìn)行基準(zhǔn)測(cè)試在下面的案例研究中,我們使用Seurat包來處理scRNA-seq數(shù)據(jù)并執(zhí)行t-SNE分析。所有可視化都可通過SingleR Web工具輕松獲得- http://comphealth./SingleR。Web應(yīng)用程序允許查看數(shù)據(jù)和交互式分析。 案例研究1:GSE74923 - Kimmerling等。自然通訊(2016)獲取數(shù)據(jù)為測(cè)試C1平臺(tái)而創(chuàng)建的數(shù)據(jù)集。使用C1:89 L1210細(xì)胞,小鼠淋巴細(xì)胞白血病細(xì)胞和105只小鼠CD8 + T細(xì)胞分析194個(gè)單細(xì)胞小鼠細(xì)胞系。省略了具有少于500個(gè)非零基因的5個(gè)細(xì)胞。 數(shù)據(jù)從GEO下載,并使用以下代碼讀取到R: >counts.file = 'GSE74923_L1210_CD8_processed_data.txt'
# 這是一個(gè)表達(dá)矩陣文本,行為基因名,列為樣品名; >annot.file = 'GSE74923_L1210_CD8_processed_data.txt_types.txt'
# 這是一個(gè)含有兩列的文本,一列為樣品名,一列為所有樣品的總名。
>singler = CreateSinglerSeuratObject(counts.file, annot.file, 'GSE74923',
variable.genes='de', regress.out='nUMI',
technology='C1', species='Mouse',
citation='Kimmerling et al.', reduce.file.size
= F, normalize.gene.length = T)
>save(singler,file='GSE74923.RData'))
SingleR分析首先,我們看一下原始身份所著色的t-SNE圖: # singler$singler[[1]] is the annotations obtained by using ImmGen dataset as reference.
# singler$singler[[2]] is based on the Mouse-RNAseq datasets.
>load (file.path(path,'GSE74923.RData'))
>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single,
singler$meta.data$xy, do.label = FALSE, do.letters = F,
labels=singler$meta.data$orig.ident,label.size = 6,
dot.size = 3)
>out$p

然后我們可以使用SingleR參考Immgen通過聚合得分的熱圖來觀察分類。這些分?jǐn)?shù)在微調(diào)之前。我們可以通過主要細(xì)胞類型查看此熱圖: >SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single.main, top.n = Inf,
clusters = singler$meta.data$orig.ident)

或者通過所有細(xì)胞類型(呈現(xiàn)前30種細(xì)胞類型): >SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single, top.n = 30,
clusters = singler$meta.data$orig.ident)

我們可以看到L1210細(xì)胞被強(qiáng)烈分類為(大多數(shù))2種類型的B細(xì)胞祖細(xì)胞。我們可以看到CD8細(xì)胞主要與效應(yīng)CD8 + T細(xì)胞的特異性激活相關(guān)。有趣的是,SingleR表明,一個(gè)L1210細(xì)胞現(xiàn)在與完全分化的B細(xì)胞更相似,而不是祖細(xì)胞。 該熱圖的另一個(gè)有趣應(yīng)用是能夠聚類細(xì)胞,而不是通過它們的基因表達(dá)譜,而是通過它們與數(shù)據(jù)庫中所有細(xì)胞類型的相似性: >K = SingleR.Cluster(singler$singler[[1]]$SingleR.single,num.clusts = 2)
>kable(table(K$cl,singler$meta.data$orig.ident),row.names = T)
這里不是很有趣,但我們稍后會(huì)看到這種聚類功能可能很有用,特別是對(duì)于識(shí)別新的細(xì)胞類型。我們?cè)谑指逯惺褂盟⒄业揭粋€(gè)中間的,未表征的巨噬細(xì)胞狀態(tài)。 最后,我們?cè)趖-SNE圖中給出了注釋: >out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single,
singler$meta.data$xy,do.label=FALSE,
do.letters = T,labels = singler$singler[[1]]$SingleR.single$labels,
label.size = 4, dot.size = 3)
>out$p

我們可以看到SingleR正確地注釋了所有L1210作為B細(xì)胞的類型,幾乎完全作為B細(xì)胞祖細(xì)胞。另一方面,所有CD8細(xì)胞都正確注釋為CD8 + T細(xì)胞。重要的是要記住,SingleR可以從中選擇253種類型,但它正確地選擇了最相關(guān)的細(xì)胞類型。有趣的是,tSNE圖錯(cuò)誤地將細(xì)胞定位在錯(cuò)誤的簇中,但分揀不受此影響。 與原始身份相比,查看表中的注釋有很多次: >kable(table(singler$singler[[1]]$SingleR.single$labels,singler$meta.data$orig.ident))
| CD8 | L1210 |
---|
乙細(xì)胞(B.T2) | 0 | 1 | 乙細(xì)胞(B.T3) | 0 | 1 | 乙細(xì)胞(preB.FrC) | 0 | 68 | 乙細(xì)胞(proB.CLP) | 0 | 1 | 乙細(xì)胞(proB.FrBC) | 0 | 15 | ?細(xì)胞(T.8EFF.OT1.48HR.LISOVA) | 101 | 0 | ?細(xì)胞(T.CD8.48H) | 1 | 0 | TGD(Tgd.mat.vg3) | 1 | 0 |
辛格勒得分相當(dāng)于非零基因的數(shù)量上面給出的熱圖可能會(huì)產(chǎn)生誤導(dǎo),因?yàn)槊苛袠?biāo)準(zhǔn)化為0到1之間的分?jǐn)?shù)。因此,單個(gè)單元格可能與多個(gè)單元格類型的相關(guān)性較低,而且它們都不是準(zhǔn)確的單元格類型,但在熱圖中它們一切都會(huì)變紅。沒有規(guī)范化,數(shù)據(jù)看起來像這樣: >SingleR.DrawHeatmap(singler$singler[[1]]$SingleR.single,top.n = 30,
normalize = F,clusters = singler$meta.data$orig.ident)

我們可以看到有一組細(xì)胞在所有細(xì)胞類型中得分較低。是什么原因?qū)е逻@些細(xì)胞的相關(guān)性較低? >df = data.frame(Max.Score=apply(singler$singler[[1]]$SingleR.single$scores,1,max),
>nGene=singler$seurat@meta.data$nGene,Orig.ident=singler$meta.data$orig.ident)
>ggplot(df,aes(x=nGene,y=Max.Score,color=Orig.ident))+geom_point()

該細(xì)胞中非零基因數(shù)(nGene)與最高分揀器評(píng)分的關(guān)系圖顯示分揀評(píng)分依賴于nGene。然而,正如我們已經(jīng)看到的那樣,盡管nGene的數(shù)量較少,但分揀器能夠正確地注釋這些細(xì)胞。這與Seurat t-SNE圖相反,后者錯(cuò)位了這些細(xì)胞,如下圖所示,它根據(jù)Max.Score為細(xì)胞著色: >SingleR.PlotFeature(singler$singler[[1]]$SingleR.single,singler$seurat,'MaxScore',dot.size=3)

在下一個(gè)案例研究中,我們將檢查辛格勒使用獨(dú)立于nGene的相關(guān)性“離群值”標(biāo)準(zhǔn)正確注釋細(xì)胞的能力。 案例研究2:10X數(shù)據(jù)集 - 鄭等。自然通訊(2017)獲取數(shù)據(jù)在這里,我們分析了使用10X平臺(tái)分析的分類免疫細(xì)胞類型的獨(dú)特人類數(shù)據(jù)集。我們從https://support./single-cell-gene-expression/datasets電子雜志此數(shù)據(jù),并使用辛格勒管道進(jìn)行處理。為了減少計(jì)算時(shí)間并使分析更簡單,我們使用以下代碼從10個(gè)細(xì)胞群中隨機(jī)選擇1000個(gè)具有> 200個(gè)非零基因的細(xì)胞: # path/10X/ contains a directory for each of the expriments, each with the three 10X files.
>dirs = dir(paste0(path,'/10X'),full.names=T)
>tenx = Combine.Multiple.10X.Datasets(dirs,random.sample=1000,min.genes=200)
>singler = CreateSinglerSeuratObject(tenx$sc.data, tenx$orig.ident, 'Zheng',
variable.genes='de',regress.out='nUMI',
technology='10X', species='Human',
citation='Zheng et al.', reduce.file.size = F,
normalize.gene.length = F)
>save(singler,file='10x (Zheng) - 10000cells.RData'))
辛格勒分析首先,我們繪制原始身份: 注意:當(dāng)存在多種細(xì)胞類型時(shí),很難用顏色區(qū)分它們。形狀也很難以小尺寸區(qū)分。因此,我們對(duì)每種細(xì)胞類型/使用顏色不同的字母但是,由于單元格較小,因此需要大幅放大。另一種方法是使用我們的SingleR Web工具或運(yùn)行代碼并使用ggplotly繪圖,這兩種方法都允許將鼠標(biāo)懸停在單元格上并查看其標(biāo)簽。 >load (file.path(path,'SingleR.Zheng.200g.RData'))
>out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single,
singler$meta.data$xy,do.label = F,
do.letters = T,labels = singler$meta.data$orig.ident,
dot.size = 1.3,alpha=0.5,label.size = 6)
>out$p

我們可以看到tSNE圖允許區(qū)分大多數(shù)細(xì)胞類型,但CD4 + T細(xì)胞亞群一起模糊。 接下來我們來看看瑟拉集群: >out = SingleR.PlotTsne(singler$singler[[1]]$SingleR.single,
singler$meta.data$xy,do.label = T,
do.letters = F,labels=singler$seurat@ident,
dot.size = 1.3,label.size = 5,alpha=0.5)
>out$p

我們可以看到聚類表現(xiàn)相對(duì)較好; 然而,調(diào)節(jié)性?細(xì)胞完全溶解在記憶?細(xì)胞簇中。 使用Blueprint + ENCODE(BE)作為參考的SingleR在微調(diào)之前產(chǎn)生了以下注釋: # Note the use of the second iterm in the the singler$singler list to use
# the Blueprint+ENCODE reference. The first item is HPCA.
# use singler$singler[[i]]$about for meta-data on the reference.
>SingleR.DrawHeatmap(singler$singler[[2]]$SingleR.single,top.n=25,
clusters = singler$meta.data$orig.ident)

我們可以看到,在微調(diào)之前,T細(xì)胞狀態(tài)之間存在強(qiáng)烈的模糊,這是無法區(qū)分的。 但是,通過微調(diào),我們獲得以下注釋: >out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single,
singler$meta.data$xy,do.label=FALSE, do.letters =T,
labels=singler$singler[[2]]$SingleR.single$labels,
dot.size = 1.3, font.size = 6)
>out$p

通過觀察顏色,我們可以看到CD4 + T細(xì)胞群可以大致分為4種狀態(tài),從底部的幼稚CD4 + T細(xì)胞(綠色)到中央記憶和中間的效應(yīng)記憶CD4 + T細(xì)胞(紫色和橙色)和調(diào)節(jié)性T細(xì)胞在頂部(粉紅色),按照原始身份。雖然它并不完美,但它為我們提供了更細(xì)粒度的細(xì)胞狀態(tài)視圖,而無需查看可能根本不存在于數(shù)據(jù)中的許多標(biāo)記,其解釋常常令人困惑; 例如: >genes.use = c('CD3E','CD4','CD8A','CCR7','CXCR5','SELL','IL7R','GNLY','FOXP3')
>df = data.frame(x=singler$meta.data$xy[,1],
y=singler$meta.data$xy[,2],
t(as.matrix(singler$seurat@data[genes.use,])))
>df = melt(df,id.vars = c('x','y'))
>ggplot(df,aes(x=x,y=y,color=value)) +
geom_point(size=0.3)+scale_color_gradient(low="gray", high="blue") +
facet_wrap(~variable,ncol=3) +theme_classic()+xlab('')+ylab('')+
theme(strip.background = element_blank())

微調(diào)的效果為了比較微調(diào)之前和之后的結(jié)果,我們可以查看以下圖表(行 - 原始身份,列 - SingleR標(biāo)簽): >singler$singler[[2]]$SingleR.single$labels1 =
gsub('Class-switched','CS',singler$singler[[2]]$SingleR.single$labels1)
>singler$singler[[2]]$SingleR.single$labels =
gsub('Class-switched','CS',singler$singler[[2]]$SingleR.single$labels)
>hsc = c('CLP','CMP','GMP','MEP','MPP')
>singler$singler[[2]]$SingleR.single$labels1[
singler$singler[[2]]$SingleR.single$labels1 %in% hsc] = 'HSC'
>singler$singler[[2]]$SingleR.single$labels[
singler$singler[[2]]$SingleR.single$labels %in% hsc] = 'HSC'
>order1 = c('CD4+ T-cells','CD4+ Tcm','CD4+ Tem','Tregs','CD8+ T-cells',
'CD8+ Tem','CD8+ Tcm','NK cells','naive B-cells',
'Memory B-cells','CS memory B-cells','Monocytes','HSC')
>order2 = c('CD4+ Tn','CD4+ Tm','CD4+ Th','Tregs','CD8+ Tn','CD8+ Tcyto',
'NK cells','B-cells','Monocytes','HSC')
>a =table(singler$meta.data$orig.ident,singler$singler[[2]]$SingleR.single$labels1)
>a = a[order2,order1]
>corrplot(a/rowSums(a),is.corr=F,tl.col='black',title = 'Before fine-tuning',
mar=c(0,0,2,0))

b = table(singler$meta.data$orig.ident,singler$singler[[2]]$SingleR.single$labels)
b = b[order2,order1]
corrplot(b/rowSums(b),is.corr=F,tl.col='black',title = 'After fine-tuning',
mar=c(0,0,2,0))

我們可以看到,在微調(diào)之前,許多CD8 + T細(xì)胞被注釋為CD4 +(46.5%的CD8 + T細(xì)胞)。在最初的鄭等人中也報(bào)道了細(xì)胞與CD4 + T細(xì)胞具有最高相關(guān)性的這種現(xiàn)象。手稿。微調(diào)后,這個(gè)數(shù)字減少到19.25%。此外,幼稚的CD8 + T細(xì)胞在微調(diào)之前沒有注釋,但在微調(diào)后已正確注釋。 {#CorrectLabeling}總之,分揀器根據(jù)原始身份將84.3%的細(xì)胞注釋為主要細(xì)胞類型,距離預(yù)期的分選純度不遠(yuǎn): ident = as.character(singler$meta.data$orig.ident)
ident[grepl('CD4',ident)]='CD4+ T-cells'
ident[ident=='Tregs']='CD4+ T-cells'
ident[grepl('CD8',ident)]='CD8+ T-cells'
kable(table(singler$singler[[2]]$SingleR.single.main$labels,ident))
| 乙細(xì)胞 | CD4 + T細(xì)胞 | CD8 + T細(xì)胞 | HSC | 單核細(xì)胞 | NK細(xì)胞 |
---|
乙細(xì)胞 | 999 | 2 | 0 | 25 | 8 | 0 | CD4 + T細(xì)胞 | 0 | 2743 | 127 | 1 | 1 | 0 | CD8 + T細(xì)胞 | 1 | 1245 | 1868年年 | 4 | 3 | 15 | DC | 0 | 0 | 0 | 1 | 1 | 0 | HSC | 0 | 6 | 0 | 850 | 1 | 2 | 單核細(xì)胞 | 0 | 2 | 0 | 119 | 981 | 1 | NK細(xì)胞 | 0 | 2 | 五 | 0 | 五 | 982 |
sum(ident==singler$singler[[2]]$SingleR.single.main$labels)/10000
## [1] 0.8423
乙細(xì)胞的粒度分析有趣的是,SingleR提出了更細(xì)粒度的B細(xì)胞群視圖,將其分解為幼稚和記憶B細(xì)胞,這似乎與t-SNE圖結(jié)構(gòu)一致: bcells = SingleR.Subset(singler,grepl('B-cells',
singler$singler[[2]]$SingleR.single$labels))
out = SingleR.PlotTsne(bcells$singler[[2]]$SingleR.single,
bcells$meta.data$xy,
dot.size = 3,alpha=0.5)
out$p

并通過CD27表達(dá)(記憶乙細(xì)胞的標(biāo)記): df = data.frame(CD27=bcells$seurat@data['CD27',],
Labels=bcells$singler[[2]]$SingleR.single$labels)
ggplot(df,aes(x=Labels,y=CD27,fill=Labels))+geom_violin(scale='width') +
theme(axis.text.x = element_text(angle = 45, hjust = 1))+xlab('')

與其他參考分類方法的比較Kang等人,Nature Biotechnology (2017)使用從scRNA-seq PBMC(來自鄭等人)中學(xué)習(xí)的一組標(biāo)記來注釋單細(xì)胞: out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single,
singler$meta.data$xy,do.label=FALSE,
do.letters =T,labels=singler$other[,'Kang'],
dot.size = 1.3, font.size = 6)
out$p

我們可以看到這種方法的可用性有限,因?yàn)樗荒軈^(qū)分CD4 +和CD8 + T細(xì)胞。請(qǐng)注意,使用10X生成的數(shù)據(jù)用于此方法中創(chuàng)建參考矩陣,并且它專門針對(duì)血液中的免疫子集進(jìn)行了訓(xùn)練。 李等人的基于批量參考的方法。人,Nature Genetics (2017)使用了基于參考的方法,但沒有微調(diào): library(RCA)
tpm_data = TPM(as.matrix(singler$seurat@data),human_lengths)
data_obj = dataConstruct(tpm_data);
data_obj = geneFilt(obj_in = data_obj);
data_obj = cellNormalize(data_obj);
data_obj = dataTransform(data_obj,"log10");
rownames(data_obj$fpkm_transformed) = toupper(rownames(data_obj$fpkm_transformed))
data_obj = featureConstruct(data_obj,method = "GlobalPanel");
scores = data_obj$fpkm_for_clust
RCA.annot = rownames(scores)[apply(scores,2,which.max)]
n = table(RCA.annot)
RCA.annot[RCA.annot %in% names(n)[n<5]] = 'Other (N<5)'
names(RCA.annot) = colnames(tpm_data)
singler$other = cbind(singler$other,RCA.annot)
colnames(singler$other) = c('Kang','RCA')
out = SingleR.PlotTsne(singler$singler[[2]]$SingleR.single,
singler$meta.data$xy,do.label=FALSE,
do.letters =T,labels=singler$other[,'RCA'],
dot.size = 1.3, font.size = 6)
out$p

同樣,我們可以看到參考不能在沒有微調(diào)的情況下區(qū)分CD4 +和CD8 + T細(xì)胞。 識(shí)別罕見事件辛格勒還允許檢測(cè)罕見事件。例如,讓我們深入研究一下排序的單核細(xì)胞: monocytes = SingleR.Subset(singler,singler$meta.data$orig.ident=='Monocytes')
out = SingleR.PlotTsne(monocytes$singler[[2]]$SingleR.single,
monocytes$meta.data$xy,do.label=F,
do.letters =T, dot.size = 2)
out$p

我們可以看到t-SNE圖已經(jīng)表明有18個(gè)細(xì)胞不屬于主要簇(這意味著分選純度為~98%)。SingleR檢測(cè)到這些細(xì)胞是漿細(xì)胞(8個(gè)細(xì)胞),T細(xì)胞(2個(gè)細(xì)胞),3個(gè)NK細(xì)胞和1個(gè)DC。的英文分揀正確的嗎? 出于演示目的,我們僅繪制來自主群集的18個(gè)單元格和其他18個(gè)單元格: cells.use = c(sample(which(monocytes$singler[[2]]$SingleR.single$labels=='Monocytes'),18),
which(monocytes$singler[[2]]$SingleR.single$labels!='Monocytes'))
SingleR.DrawHeatmap(monocytes$singler[[2]]$SingleR.single,top.n = 20,cells.use=cells.use)

我們可以看到分揀器在其調(diào)用中非常有說服力,給予那些細(xì)胞低單核細(xì)胞評(píng)分。使用稀有細(xì)胞類型的標(biāo)記物(至少在單核細(xì)胞分選的細(xì)胞中)是有問題的,因?yàn)榛跇?biāo)記物的分析集中在簇而不是單個(gè)細(xì)胞上。 辛格勒評(píng)分與非零基因的數(shù)量相關(guān)聯(lián)在這里,我們使用了200個(gè)非零基因(nGenes)的閾值。與案例研究1一樣,nGenes與每個(gè)細(xì)胞的最大得分之間存在很強(qiáng)的相關(guān)性: nGene=singler$seurat@meta.data$nGene
df = data.frame(Max.Score=apply(singler$singler[[1]]$SingleR.single$scores,1,max),
nGene=nGene,Orig.ident=singler$meta.data$orig.ident)
ggplot(df,aes(x=nGene,y=Max.Score,color=Orig.ident))+geom_point(size=0.2,alpha=0.5)+
guides(color = guide_legend(override.aes = list(size = 3)))

問題是具有低“最大得分”的細(xì)胞是否不太可靠。我們看到這在某種程度上是正確的 - 使用主要單元格類型的“正確”標(biāo)記度量,我們可以看到,對(duì)于更多nGenes,注釋往往更準(zhǔn)確: Correct.Ident = unlist(lapply(seq(from=200,to=3000,by=50),
FUN=function(x) {
A=nGene>=x
sum(ident[A]==singler$singler[[2]]$SingleR.single.main$labels[A])/sum(A)}
))
df = data.frame(nGene=seq(from=200,to=3000,by=50),Correct.Ident)
ggplot(df,aes(x=nGene,y=Correct.Ident))+geom_smooth(method = 'loess')

在案例研究3中,我們繼續(xù)探索分揀正確注釋細(xì)胞的能力,作為非零基因數(shù)量的函數(shù)。 注釋的信心我們能否確定注釋置信度的顯著性檢驗(yàn)? 根據(jù)上圖,可能的方法是使用分?jǐn)?shù)閾值。但是,我們可以看到即使是低分也很可靠。這是因?yàn)?/span>辛格勒得分與nGenes相關(guān)聯(lián),但對(duì)于給定單細(xì)胞,注釋對(duì)于參考數(shù)據(jù)中的細(xì)胞類型是相對(duì)的。因此,我們引入了顯著性檢驗(yàn),檢驗(yàn)頂部細(xì)胞類型的得分是否與大多數(shù)低得分細(xì)胞類型不同。我們使用卡方異常值檢驗(yàn)得到最高分,其中零假設(shè)是它不是異常值。此測(cè)試不能為微調(diào)注釋提供信心,但可以建議單個(gè)單元格是否沒有足夠的信息進(jìn)行注釋。我們可以用-log10(p值)看到叔SNE圖: SingleR.PlotFeature(singler$singler[[2]]$SingleR.single,singler$seurat,
plot.feature = -log10(singler$singler[[2]]$SingleR.single.main$pval))

該圖表明,對(duì)于一個(gè)HSC群集,信心大于另一個(gè),但對(duì)NK細(xì)胞和乙細(xì)胞注釋的信心: df = data.frame(nGene=singler$seurat@meta.data$nGene,
pval=-log10(singler$singler[[2]]$SingleR.single.main$pval),
Identity=singler$meta.data$orig.ident)
ggplot(df,aes(x=Identity,y=pval,color=Identity))+geom_boxplot()+
ylab('-log10(p-value)')+theme(axis.text.x = element_text(angle = 45, hjust = 1))

重要的是,我們可以看到此測(cè)試不依賴于nGenes: ggplot(df,aes(x=nGene,y=pval,color=Identity))+geom_point(size=0.3)+
guides(color = guide_legend(override.aes = list(size = 3)))+
ylab('-log10(p-value)')

案例研究3:模擬非零基因的數(shù)量細(xì)胞中輟學(xué)的數(shù)量變化很大,并且可能對(duì)正確注釋細(xì)胞的能力產(chǎn)生強(qiáng)烈影響。在這里,我們通過模擬具有已知身份的細(xì)胞中不同數(shù)量的非零基因(nGenes)來進(jìn)一步探索這個(gè)問題。 根據(jù)案例研究2中提供的分類10X數(shù)據(jù)集(不包括CD4 +輔助T細(xì)胞,CD4 +記憶T細(xì)胞重新排列),我們隨機(jī)選擇10個(gè)細(xì)胞,其中至少1000個(gè)nGenes,由SingleR正確注釋(調(diào)整)。 從每個(gè)細(xì)胞中的非零基因,我們選擇千個(gè)基因?yàn)榉橇?,其余基因切換為0; 。因此,所有細(xì)胞都有千非零個(gè)基因在微調(diào)之前狀語從句:之后,我們通過分揀器計(jì)算了正確的推論。然后,我們迭代地移除50個(gè)基因,運(yùn)行SingleR,并再次計(jì)算正確注釋的數(shù)量。我們重復(fù)這個(gè)過程10次,隨機(jī)選擇不同的基因去除.Github 存儲(chǔ)庫中提供了此分析的代碼。 我們將正確注釋的百分比繪制為nGenes的函數(shù)(顯示標(biāo)準(zhǔn)誤差): source('simulations_functions.R')
files = dir('simulations/',full.names = T,pattern = 'RData')
res = list()
res$correct = matrix(NA,19,length(files))
res$correct.nft = matrix(NA,19,length(files))
for (i in 1:length(files)) {
load(files[i])
res$correct[,i] = correct
res$correct.nft[,i] = correct.nft
}
res$correct = 100*res$correct/90
res$correct.nft = 100*res$correct.nft/90
rownames(res$correct) = seq(1000,100,by=-50)
rownames(res$correct.nft) = seq(1000,100,by=-50)
correct = melt(rbind(res$correct,res$correct.nft))
correct$FineTune=rep(c(rep('TRUE',nrow(res$correct)),rep('FALSE',nrow(res$correct))),ncol(res$correct))
colnames(correct)[1]='nGenes'
correct <- summarySE(correct, measurevar="value", groupvars=c("nGenes",'FineTune'))
ggplot(correct, aes(x=nGenes, y=value,color=FineTune)) +
geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1) +
geom_line() +
geom_point()+theme_classic()+ylab('% correct')

我們可以看到分揀的精度逐漸下降是nGenes的函數(shù)。這在微調(diào)注釋(藍(lán)線)中更為明顯,它顯示了微調(diào)以區(qū)分密切相關(guān)的細(xì)胞類型的重要性,即使有更多的基因可用。在500個(gè)基因中,我們觀察到90%,并且隨著基因的減少,下降更明顯,支持我們選擇在我們的小鼠肺損傷分析中使用> 500nGenes。 每個(gè)細(xì)胞類型的細(xì)胞系顯示,正如預(yù)期的那樣,基因越少,難以區(qū)分密切相關(guān)的細(xì)胞類型(該數(shù)據(jù)中的?細(xì)胞亞群): B = c()
for (k in 1:length(files)) {
load(files[k])
ct=unique(names(unlist(lapply(tbl,FUN=function(x) x[,'B-cells']))))
ident = colnames(tbl[[1]])
b = matrix(0,length(ident),length(tbl))
for (j in 1:length(ident)) {
a=matrix(0,length(ct),length(tbl))
rownames(a) = ct
for (i in 1:length(tbl)) {
x = tbl[[i]][,ident[j]]
a[names(x),i] = x
}
b[j,] = switch(ident[j],
'B-cells' = colSums(a[grepl('B-cell',rownames(a)),]),
'CD4+ Tm' = colSums(a[rownames(a) %in% c('CD4+ Tcm','CD4+ Tem'),]),
'CD4+ Tn' = a[rownames(a)=='CD4+ T-cells',],
'CD8+ Tcyto' = colSums(a[rownames(a) %in% c('CD8+ Tcm','CD8+ Tem'),]),
'CD8+ Tn' = a[rownames(a)=='CD8+ T-cells',],
'HSC' = colSums(a[rownames(a) %in% c('CLP','MEP','GMP','MPP'),]),
'Monocytes' = a[rownames(a)=='Monocytes',],
'NK cells' = a[rownames(a)=='NK cells',],
'Tregs' = a[rownames(a)=='Tregs',]
)
}
rownames(b) = ident
colnames(b) = seq(1000,100,by=-50)
if (length(B)==0) {
B = b
} else {
B = rbind(B,b)
}
}
df = melt(B)
colnames(df) = c('CellType','nGenes','value')
df <- summarySE(df, measurevar="value", groupvars=c("nGenes",'CellType'))
ggplot(df, aes(x=nGenes, y=value,color=CellType)) +
geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1) +
geom_line() +
geom_point()+theme_classic()+ylab('# correct')+scale_color_manual(values=singler.colors)

辛格勒網(wǎng)絡(luò)工具該分選網(wǎng)絡(luò)工具包含> 50可公開獲得的scRNA-seq的數(shù)據(jù)集。所有數(shù)據(jù)都已使用上述工具進(jìn)行了重新處理,并且Web工具允許用戶立即訪問以分析數(shù)據(jù)并對(duì)已發(fā)布的單細(xì)胞數(shù)據(jù)進(jìn)行進(jìn)一步調(diào)查。此外,我們邀請(qǐng)用戶上傳他們自己的scRNA-SEQ數(shù)據(jù),這些數(shù)據(jù)將在我們的服務(wù)器上進(jìn)行分析并發(fā)送回用戶。然后可以在網(wǎng)站上上載并進(jìn)一步分析處理后的分揀器對(duì)象(私下,只有具有該對(duì)象的用戶才能查看它)。請(qǐng)?jiān)L問http://comphealth./SingleR了解更多信息。 參考Kang,Hyun Min,Meena Subramaniam,Sasha Targ,Michelle Nguyen,Lenka Maliskova,Elizabeth McCarthy,Eunice Wan,et al。“使用天然遺傳變異的多重液滴單細(xì)胞RNA測(cè)序。” Nature Biotechnology 36(1)。自然出版集團(tuán):89-94.doi:10.1038 / nbt.4042。 Kimmerling,Robert J.,Gregory Lee Szeto,Jennifer W. Li,Alex S. Genshaft,Samuel W. Kazer,Kristofor R. Payer,Jacob de Riba Borrajo,et al。2016年。“一種微流體平臺(tái),可實(shí)現(xiàn)多自譜系的單細(xì)胞RNA-seq。“ Nature Communications 7(1月).Nature Publishing Group:10220.doi:10.1038 / ncomms10220。 Li,Huipeng,Elise T Courtois,Debarka Sengupta,Yuliana Tan,Kok Hao Chen,Jolene Jie Lin Goh,Say Li Kong,et al。2017年?!皢渭?xì)胞轉(zhuǎn)錄組的參考組分分析闡明了人結(jié)腸直腸腫瘤中的“細(xì)胞異質(zhì)性?!?Nature Genetics 49(5):708-18.doi :10.1038 / ng.3818。的細(xì)胞異質(zhì)性。
|