scATAC分析神器ArchR初探-簡介(1)
scATAC分析神器ArchR初探-ArchR進(jìn)行doublet處理(2)
scATAC分析神器ArchR初探-創(chuàng)建ArchRProject(3)
scATAC分析神器ArchR初探-使用ArchR降維(4)
scATAC分析神器ArchR初探--使用ArchR進(jìn)行聚類(5)
scATAC分析神器ArchR初探-單細(xì)胞嵌入(6)
scATAC分析神器ArchR初探-使用ArchR計(jì)算基因活性值和標(biāo)記基因(7)
scATAC分析神器ArchR初探-scRNA-seq確定細(xì)胞類型(8)
scATAC分析神器ArchR初探-ArchR中的偽批次重復(fù)處理(9)
scATAC分析神器ArchR初探-使用ArchR-peak-calling(10)
scATAC分析神器ArchR初探-使用ArchR識別標(biāo)記峰(11)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行主題和功能豐富(12)
scATAC分析神器ArchR初探-利用ArchR豐富ChromVAR偏差(13)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行足跡(14)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行整合分析(15)
scATAC分析神器ArchR初探-使用ArchR進(jìn)行軌跡分析(16)
6-單單元嵌入
在ArchR中衡招,嵌入(例如統(tǒng)一流形近似和投影(UMAP)或t分布的隨機(jī)鄰居嵌入(t-SNE))用于可視化縮小維度空間中的單個(gè)單元弧哎。這些嵌入都有各自的優(yōu)點(diǎn)和缺點(diǎn)。我們之所以稱它們?yōu)椤扒度搿蹦痈幔且驗(yàn)樗鼈儑?yán)格用于可視化集群岩喷,而不是用于識別集群(如前幾章所述)是在LSI子空間中完成的。UMAP和t-SNE之間的主要區(qū)別是細(xì)胞或簇之間距離的解釋蝇恶。t-SNE旨在保留數(shù)據(jù)中的本地結(jié)構(gòu)渤闷,而UMAP旨在保留本地和大部分全局?jǐn)?shù)據(jù)數(shù)據(jù)中的結(jié)構(gòu)。從理論上講含潘,這意味著兩個(gè)聚類之間的距離在t-SNE中不提供信息吊履,而在UMAP中提供信息。例如调鬓,基于觀察到群集A在t-SNE上比群集C更靠近群集B艇炎,因此t-SNE不允許您說群集A與群集B相比,群集A與群集B更相似腾窝。另一方面缀踪,UMAP旨在允許進(jìn)行這種類型的比較,盡管值得注意的是虹脯,UMAP是一種足夠新的方法驴娃,至今仍在文獻(xiàn)中被淘汰。
重要的是要注意循集,t-SNE和UMAP都不是自然確定性的(相同的輸入總是提供完全相同的輸出)唇敞。但是,與UMAP相比咒彤,t-SNE在同一輸入的多個(gè)重復(fù)之間顯示出更多的隨機(jī)性疆柔。此外,uwot當(dāng)使用相同的random時(shí)镶柱,在包中實(shí)現(xiàn)的UMAP 是有效的確定性seed旷档。選擇使用UMAP還是使用t-SNE的選擇很細(xì)微,但是在我們看來歇拆,UMAP對于各種應(yīng)用程序都非常有效鞋屈,這是我們針對scATAC-seq數(shù)據(jù)的標(biāo)準(zhǔn)選擇范咨。UMAP的性能也比t-SNE快。也許最重要的是厂庇,使用UMAP可以創(chuàng)建嵌入并將新樣本投影到該嵌入中渠啊,而t-SNE則無法實(shí)現(xiàn),因?yàn)閿?shù)據(jù)的擬合和預(yù)測同時(shí)發(fā)生权旷。
無論選擇哪種方法昭抒,輸入?yún)?shù)都可能對生成的嵌入產(chǎn)生巨大影響。因此炼杖,重要的是要了解各種輸入?yún)?shù),并進(jìn)行調(diào)整以最好地滿足您自己數(shù)據(jù)的需求盗迟。ArchR實(shí)現(xiàn)了適用于大多數(shù)應(yīng)用程序的默認(rèn)輸入?yún)?shù)集坤邪,但實(shí)際上,沒有單個(gè)參數(shù)集可以為單元格數(shù)量罚缕,復(fù)雜性和質(zhì)量差異很大的數(shù)據(jù)集產(chǎn)生所需的結(jié)果艇纺。
6.1均勻流形逼近和投影(UMAP)
要在ArchR中運(yùn)行UMAP,請使用以下addUMAP()
功能:
projHeme2 <- addUMAP(
ArchRProj = projHeme2,
reducedDims = "IterativeLSI",
name = "UMAP",
nNeighbors = 30,
minDist = 0.5,
metric = "cosine"
)
您可以使用插槽提取運(yùn)算符embeddings
在中列出可用的對象:ArchRProject``@
為了繪制UMAP結(jié)果邮弹,我們使用plotEmbedding()
函數(shù)并傳遞剛剛生成的UMAP嵌入的名稱(“ UMAP”)黔衡。我們可以通過結(jié)合使用colorBy
哪種組合來告訴ArchR如何使用哪種矩陣來查找提供給的指定元數(shù)據(jù)列,從而告訴ArchR如何為單元著色name
腌乡。
p1 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "UMAP")
代替上面的“樣本”進(jìn)行著色盟劫,我們可以使用上一章中確定的“簇”進(jìn)行著色。
p2 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Clusters", embedding = "UMAP")
我們可以使用ggAlignPlots()
函數(shù)并排顯示這兩個(gè)圖与纽,并使用指定水平方向type = "h"
侣签。
ggAlignPlots(p1, p2, type = "h")
plotPDF(p1,p2, name = "Plot-UMAP-Sample-Clusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)
我們還可以使用plotEmbedding()
來可視化聚類的結(jié)果scran
:
p1 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "UMAP")
p2 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "ScranClusters", embedding = "UMAP")
ggAlignPlots(p1, p2, type = "h")
要保存此圖的可編輯矢量化版本,請使用plotPDF()
急迂。
plotPDF(p1,p2, name = "Plot-UMAP-Sample-ScranClusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)
6.2 t-Stocastic鄰居嵌入(t-SNE)
要在ArchR中運(yùn)行t-SNE影所,請使用以下addTSNE()
功能:
projHeme2 <- addTSNE(
ArchRProj = projHeme2,
reducedDims = "IterativeLSI",
name = "TSNE",
perplexity = 30
)
與UMAP類似,我們可以使用繪制t-SNE嵌入plotEmbedding()
僚碎。相同的參數(shù)適用于colorBy
和name
正在被使用的包埋的類型而不管哪個(gè)猴娩。
p1 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "TSNE")
p2 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Clusters", embedding = "TSNE")
ggAlignPlots(p1, p2, type = "h")
要保存此圖的可編輯矢量化版本,請使用plotPDF()
勺阐。
plotPDF(p1,p2, name = "Plot-TSNE-Sample-Clusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)
就像我們使用UMAP一樣卷中,我們可以將的聚類結(jié)果Seurat::FindClusters()
與clusering的結(jié)果進(jìn)行比較scran
:
p1 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "TSNE")
p2 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "ScranClusters", embedding = "TSNE")
ggAlignPlots(p1, p2, type = "h")
要保存此圖的可編輯矢量化版本,請使用plotPDF()
渊抽。
plotPDF(p1,p2, name = "Plot-tSNE-Sample-ScranClusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)
6.3調(diào)和后的降維
在上一章中仓坞,我們通過addHarmony()
函數(shù)使用Harmony進(jìn)行了批量校正,創(chuàng)建了一個(gè)reducedDims
名為“ Harmony” 的對象腰吟。我們可以通過使用UMAP或t-SNE可視化嵌入并將其與之前的LSI迭代可視化嵌入進(jìn)行比較无埃,從而評估Harmony的效果徙瓶。
重復(fù)使用相同參數(shù)但針對“ Harmony” reducedDims
對象的UMAP嵌入:
projHeme2 <- addUMAP(
ArchRProj = projHeme2,
reducedDims = "Harmony",
name = "UMAPHarmony",
nNeighbors = 30,
minDist = 0.5,
metric = "cosine"
)
p3 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "UMAPHarmony")
p4 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Clusters", embedding = "UMAPHarmony")
ggAlignPlots(p3, p4, type = "h")
要保存此圖的可編輯矢量化版本,請使用plotPDF()
嫉称。
plotPDF(p1,p2,p3,p4, name = "Plot-UMAP2Harmony-Sample-Clusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)
對于t-SNE同樣如此:
projHeme2 <- addTSNE(
ArchRProj = projHeme2,
reducedDims = "Harmony",
name = "TSNEHarmony",
perplexity = 30
)
p3 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Sample", embedding = "TSNEHarmony")
p4 <- plotEmbedding(ArchRProj = projHeme2, colorBy = "cellColData", name = "Clusters", embedding = "TSNEHarmony")
ggAlignPlots(p3, p4, type = "h")
要保存此圖的可編輯矢量化版本侦镇,請使用plotPDF()
。
plotPDF(p1,p2,p3,p4, name = "Plot-TSNE2Harmony-Sample-Clusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)