使用ArchR分析單細胞ATAC-seq數(shù)據(jù)(第八章)

本文首發(fā)于我的個人博客醇王, http://xuzhougeng.top/

往期回顧:

第8章: 使用scRNA-seq定義cluster類型

除了使用基因得分定義細胞類群以外呢燥,ArchR還能整合scRNA-seq數(shù)據(jù)。通過將scATAC-seq數(shù)據(jù)里的基因得分矩陣和scRNA-seq數(shù)據(jù)的基因表達量矩陣進行對比寓娩,ArchR就能將scATAC-seq的細胞比對到scRNA-seq的細胞,實現(xiàn)兩種數(shù)據(jù)的整合。之后棘伴,我們借助scRNA-seq數(shù)據(jù)已經(jīng)定義的細胞類群寞埠,或者整合后的scRNA-seq的基因表達量來注釋細胞類群。在代碼內(nèi)部焊夸,我們調(diào)用了Seurat::FindTransferAnchors()仁连,從而實現(xiàn)兩種數(shù)據(jù)集之間的比較。當然阱穗,ArchR不是簡單地對函數(shù)進行封裝饭冬,而是在此基礎上通過對數(shù)據(jù)的拆分,實現(xiàn)并行計算揪阶,從而能將該流程應用到更大規(guī)模的細胞中昌抠。

workflow

該整合過程實際上會尋找scATAC-seq和scRNA-seq兩者中最相似的細胞,然后將scRNA-seq中對應的細胞表達量賦值給scATAAC-seq細胞鲁僚。最后炊苫,scATAC-seq中每個細胞都會有基因表達量特征,能被用于下游分析冰沙。這一章會闡述如何利用該信息定義細胞類型侨艾,之后會介紹如何使用連接的scRNA-seq數(shù)據(jù)做更加復雜的分析,例如識別預測的順式調(diào)控元件拓挥。我們相信由于多組學單細胞譜的商業(yè)化唠梨,這類整合分析將會越來越多。同時侥啤,在ArchR中使用公共數(shù)據(jù)里匹配細胞類型的scRNA-seq數(shù)據(jù)或者自己使用目標樣本得到的scRNA-seq數(shù)據(jù)也能加強scATAC-seq分析当叭。

8.1 scATAC-seq細胞和scRNA-seq細胞跨平臺連接

為了能將我們教程中的scATAC-seq數(shù)據(jù)與其匹配的scRNA-seq數(shù)據(jù)進行整合,我們將使用 Granja* et al (2019) 里的造血細胞scRNA-seq數(shù)據(jù)愿棋。

scRNA-seq數(shù)據(jù)以 RangedSummarizedExperiment對象保存科展,大小為111MB。此外糠雨,ArchR還接受未經(jīng)修改的Seurat對象作為整合流程的輸入才睹。我們使用download.file下載數(shù)據(jù)

if(!file.exists("scRNA-Hematopoiesis-Granja-2019.rds")){
    download.file(
        url = "https://jeffgranja.s3.amazonaws.com/ArchR/TestData/scRNA-Hematopoiesis-Granja-2019.rds",
        destfile = "scRNA-Hematopoiesis-Granja-2019.rds"
    )
}

下載之后,我們使用readRDS進行讀取甘邀,并查看該對象

seRNA <- readRDS("scRNA-Hematopoiesis-Granja-2019.rds")
seRNA
## class: RangedSummarizedExperiment
## dim: 20287 35582
## metadata(0):
## assays(1): counts
## rownames(20287): FAM138A OR4F5 … S100B PRMT2
## rowData names(3): gene_name gene_id exonLength
## colnames(35582): CD34_32_R5:AAACCTGAGTATCGAA-1
## CD34_32_R5:AAACCTGAGTCGTTTG-1 …
## BMMC_10x_GREENLEAF_REP2:TTTGTTGCATGTGTCA-1
## BMMC_10x_GREENLEAF_REP2:TTTGTTGCATTGAAAG-1
## colData names(10): Group nUMI_pre … BioClassification Barcode

從輸出信息中琅攘,我們可以發(fā)現(xiàn)它里面有基因表達量的count矩陣和對應的元信息。

元信息列里的BioClassification記錄著scRNA-seq數(shù)據(jù)中每個細胞對應的細胞類型分類

colnames(colData(seRNA))
# [1] "Group"             "nUMI_pre"          "nUMI"             
# [4] "nGene"             "initialClusters"   "UMAP1"            
# [7] "UMAP2"             "Clusters"          "BioClassification"
# [10] "Barcode"

使用table()松邪,我們可以看到scRNA-seq細胞類型每一群的細胞數(shù)

table(colData(seRNA)$BioClassification)
#        01_HSC 02_Early.Eryth  03_Late.Eryth  04_Early.Baso    05_CMP.LMPP 
#          1425           1653            446            111           2260 
#      06_CLP.1         07_GMP    08_GMP.Neut         09_pDC         10_cDC 
#           903           2097           1050            544            325 
#11_CD14.Mono.1 12_CD14.Mono.2   13_CD16.Mono         14_Unk       15_CLP.2 
#          1800           4222            292            520            377 
#      16_Pre.B           17_B      18_Plasma       19_CD8.N      20_CD4.N1 
#           710           1711             62           1521           2470 
#     21_CD4.N2       22_CD4.M      23_CD8.EM      24_CD8.CM          25_NK 
#          2364           3539            796           2080           2143 
#        26_Unk 
#           161 

我們后續(xù)會用到兩種整合方法坞琴。第一種是無約束整合,我們對scATAC-seq實驗里的細胞不作任何假設逗抑,直接嘗試將這些細胞和scRNA-seq實驗里的任意細胞進行配對剧辐。這是一種初步可行方案寒亥,后續(xù)會根據(jù)這一步得到的結果,對整合步驟進行約束來提升跨平臺配對的質(zhì)量荧关。第二種方法是約束整合溉奕,即利用對細胞類型的先驗知識限制搜索范圍。舉個例子忍啤,如果我們知道scATAC-seq中的Cluster A,B,C對應著三種不同的T細胞加勤,scRNA-seq中的Cluster X,Y對應著兩種不同的T細胞,我們告訴ArchR只需要嘗試將scATAC-seq中的Cluster A,B,C跟scRNA-seq中的Cluster X,Y進行配對同波。下面鳄梅,我們將先以無約束整合初步地鑒定每一種聚類的類型,然后根據(jù)分析結果做更加細致的約束整合未檩。

8.1.1 無約束整合

我們使用addGeneIntegrationMatrix()對scATAC-seq和scRNA-seq數(shù)據(jù)進行整合戴尸。正如之前所提到的,該函數(shù)的seRNA參數(shù)接受SeuratRangedSummarizedExperiment對象作為輸入讹挎。因為第一輪是探索性質(zhì)的無約束整合校赤,因此,我們不會將結果保存在Arrow文件中(addToArrow=FALSE)筒溃。整合后的矩陣將會根據(jù)matrixName進行命名马篮,存放在ArchRProject中。該函數(shù)的其他參數(shù)對應cellColData中列名用于存放額外的信息怜奖,nameCell存放scRNA-seq中匹配的細胞ID浑测,nameGroup存放scRNA-seq細胞中的分組ID,nameScore存放跨平臺整合得分歪玲。

projHeme2 <- addGeneIntegrationMatrix(
    ArchRProj = projHeme2, 
    useMatrix = "GeneScoreMatrix",
    matrixName = "GeneIntegrationMatrix",
    reducedDims = "IterativeLSI",
    seRNA = seRNA,
    addToArrow = FALSE,
    groupRNA = "BioClassification",
    nameCell = "predictedCell_Un",
    nameGroup = "predictedGroup_Un",
    nameScore = "predictedScore_Un"
)

無約束整合的結果可能并不準確迁央,但是為后續(xù)更加精細的約束分析奠定了基礎。

8.1.2 約束整合

現(xiàn)在我們已經(jīng)有了初步的無約束整合結果滥崩,我們就有了大致的細胞類型分布情況岖圈,接著就是優(yōu)化整合結果。

因為我們教程里的數(shù)據(jù)來自于造血細胞钙皮,我們將會在理想狀態(tài)下將類似的細胞整合在一起蜂科。首先,我們先確認scRNA-seq里細胞類型在我們的scATAC-seq聚類中分布情況短条。這一步的目標是使用無約束整合的方法找到scATAC-seq和scRNA-seq中和T細胞和NK細胞對應的聚類导匣,后續(xù)會用到該信息進行約束整合。具體操作為茸时,我們創(chuàng)建一個confusionMatrix,并關注ClusterpredictedGroup_Un的交叉部分中scRNA-seq的細胞類型贡定。

cM <- as.matrix(confusionMatrix(projHeme2$Clusters, projHeme2$predictedGroup_Un))
preClust <- colnames(cM)[apply(cM, 1 , which.max)]
cbind(preClust, rownames(cM)) #Assignments

輸出信息如下,展示了12個scATAC-seq聚類中對應最優(yōu)可能的scRNA-seq細胞類型可都。

#      preClust              
# [1,] "03_Late.Eryth"  "C10"
# [2,] "20_CD4.N1"      "C8" 
# [3,] "16_Pre.B"       "C3" 
# [4,] "08_GMP.Neut"    "C11"
# [5,] "17_B"           "C4" 
# [6,] "11_CD14.Mono.1" "C1" 
# [7,] "01_HSC"         "C12"
# [8,] "22_CD4.M"       "C9" 
# [9,] "09_pDC"         "C5" 
# [10,] "25_NK"          "C7" 
# [11,] "12_CD14.Mono.2" "C2" 
# [12,] "06_CLP.1"       "C6"

首先缓待,我們檢查在無約束整合中用到的scRNA-seq數(shù)據(jù)里細胞類型標簽蚓耽。

unique(unique(projHeme2$predictedGroup_Un))
# [1] "08_GMP.Neut"    "25_NK"          "16_Pre.B"       "06_CLP.1"      
# [5] "07_GMP"         "11_CD14.Mono.1" "04_Early.Baso"  "22_CD4.M"      
# [9] "03_Late.Eryth"  "05_CMP.LMPP"    "17_B"           "19_CD8.N"      
#[13] "09_pDC"         "13_CD16.Mono"   "23_CD8.EM"      "12_CD14.Mono.2"
#[17] "20_CD4.N1"      "02_Early.Eryth" "21_CD4.N2"      "24_CD8.CM"     
#[21] "01_HSC" 

從上面的輸出中,我們發(fā)現(xiàn)scRNA-seq數(shù)據(jù)中與NK細胞和T細胞對應的聚類是Cluster 19 - 25命斧。

接著我們創(chuàng)建一個字符串模式用來表示這些聚類田晚,后續(xù)的約束整合會用到嘱兼,其中|在正則表達式中表示"或"国葬,我們之后使用grep根據(jù)這些字符串模式從scATAC-seq提取和scRNA-seq對應的聚類。芹壕。

#From scRNA
cTNK <- paste0(paste0(19:25), collapse="|")
cTNK
# [1] "19|20|21|22|23|24|25"

其余的聚類就稱之為"Non-T cell, Non-NK cell"(例如Cluster 1 - 18)汇四,也創(chuàng)建了對應的字符串模式

cNonTNK <- paste0(c(paste0("0", 1:9), 10:13, 15:18), collapse="|")
cNonTNK
#[1] "01|02|03|04|05|06|07|08|09|10|11|12|13|15|16|17|18"

接著再用字符串模式在preClust找到對應的scATAC-seq列名,然后使用列名從混合矩陣提取對應的列踢涌。

對于T細胞和NK細胞通孽,scATAC-seq聚類ID就是C7, C8, C9

#Assign scATAC to these categories
clustTNK <- rownames(cM)[grep(cTNK, preClust)]
clustTNK
#[1] "C8" "C9" "C7"

對于" Non-T cells and Non-NK cells", ID就是scATAC-seq聚類余下的部分

clustNonTNK <- rownames(cM)[grep(cNonTNK, preClust)]
clustNonTNK
# [1] "C10" "C3"  "C11" "C4"  "C1"  "C12" "C5"  "C2"  "C6" 

接著在scRNA-seq中做相同的操作,篩選出相同的細胞類型睁壁。首先背苦,我們鑒定scRNA-seq數(shù)據(jù)中T細胞和NK細胞

#RNA get cells in these categories
rnaTNK <- colnames(seRNA)[grep(cTNK, colData(seRNA)$BioClassification)]
head(rnaTNK)
#[1] "PBMC_10x_GREENLEAF_REP1:AAACCCAGTCGTCATA-1"
#[2] "PBMC_10x_GREENLEAF_REP1:AAACCCATCCGATGTA-1"
#[3] "PBMC_10x_GREENLEAF_REP1:AAACCCATCTCAACGA-1"
#[4] "PBMC_10x_GREENLEAF_REP1:AAACCCATCTCTCGAC-1"
#[5] "PBMC_10x_GREENLEAF_REP1:AAACGAACAATCGTCA-1"
#[6] "PBMC_10x_GREENLEAF_REP1:AAACGAACACGATTCA-1"

然后,鑒定scRNA-seq數(shù)據(jù)中"Non-T cell Non-NK cell cells"

rnaNonTNK <- colnames(seRNA)[grep(cNonTNK, colData(seRNA)$BioClassification)]
head(rnaNonTNK)
#[1] "CD34_32_R5:AAACCTGAGTATCGAA-1" "CD34_32_R5:AAACCTGAGTCGTTTG-1"
#[3] "CD34_32_R5:AAACCTGGTTCCACAA-1" "CD34_32_R5:AAACGGGAGCTTCGCG-1"
#[5] "CD34_32_R5:AAACGGGAGGGAGTAA-1" "CD34_32_R5:AAACGGGAGTTACGGG-1"

約束整合需要我們提供一個嵌套list潘明。這是一個由多個SimpleList對象組成的SimpleList, 每一組對應一個約束情況行剂。在案例中,我們有兩個組钳降,一個組稱之為TNK,包括兩個平臺的T和NK細胞厚宰,另一個組為NonTNK,包括兩個平臺的"Non-T cell Non-NK cell"細胞遂填。每個SimpleList對象都包含兩個細胞ID的向量铲觉,一個是ATAC,一個是RNA.

groupList <- SimpleList(
    TNK = SimpleList(
        ATAC = projHeme2$cellNames[projHeme2$Clusters %in% clustTNK],
        RNA = rnaTNK
    ),
    NonTNK = SimpleList(
        ATAC = projHeme2$cellNames[projHeme2$Clusters %in% clustNonTNK],
        RNA = rnaNonTNK
    )    
)

我們將該列表傳遞給addGeneIntegrationMatrix()函數(shù)的groupList參數(shù)吓坚。注意撵幽,我們依舊沒有將結果添加到Arrow文件中 (addToArrow = FALSE)。我們強烈建議礁击,在保存到Arrow文件前先徹底的檢查結果盐杂,看結果是否符合預期。在教程的下一節(jié)會介紹該操作客税。

projHeme2 <- addGeneIntegrationMatrix(
    ArchRProj = projHeme2, 
    useMatrix = "GeneScoreMatrix",
    matrixName = "GeneIntegrationMatrix",
    reducedDims = "IterativeLSI",
    seRNA = seRNA,
    addToArrow = FALSE, 
    groupList = groupList,
    groupRNA = "BioClassification",
    nameCell = "predictedCell_Co",
    nameGroup = "predictedGroup_Co",
    nameScore = "predictedScore_Co"
)

8.1.3 約束整合和無約束整合對比

正如之前所提到的况褪,我們的scATAC-seq數(shù)據(jù)可以根據(jù)整合的scRNA-seq數(shù)據(jù)進行定義,并且有約束和無約束這兩種方式更耻。為了對兩者進行對比测垛,我們分別根據(jù)這兩種整合結果對scATAC-seq的數(shù)據(jù)進行上色。

首先秧均,使用ArchR內(nèi)置的paletteDiscrete()函數(shù)生成調(diào)色板

pal <- paletteDiscrete(values = colData(seRNA)$BioClassification)

在ArchR中食侮,調(diào)色板本質(zhì)上一個命名向量号涯,每個十六進制編碼的顏色對應著一個名字。

pal
#        01_HSC 02_Early.Eryth  03_Late.Eryth  04_Early.Baso    05_CMP.LMPP 
#     "#D51F26"      "#502A59"      "#235D55"      "#3D6E57"      "#8D2B8B" 
#      06_CLP.1         07_GMP    08_GMP.Neut         09_pDC         10_cDC 
#     "#DE6C3E"      "#F9B712"      "#D8CE42"      "#8E9ACD"      "#B774B1" 
#11_CD14.Mono.1 12_CD14.Mono.2   13_CD16.Mono         14_Unk       15_CLP.2 
#     "#D69FC8"      "#C7C8DE"      "#8FD3D4"      "#89C86E"      "#CC9672" 
#      16_Pre.B           17_B      18_Plasma       19_CD8.N      20_CD4.N1 
#     "#CF7E96"      "#A27AA4"      "#CD4F32"      "#6B977E"      "#518AA3" 
#     21_CD4.N2       22_CD4.M      23_CD8.EM      24_CD8.CM          25_NK 
#     "#5A5297"      "#0F707D"      "#5E2E32"      "#A95A3C"      "#B28D5C" 
#        26_Unk 
#     "#3D3D3D"

我們在scATAC-seq數(shù)據(jù)根據(jù)無約束整合得到的scRNA-seq細胞類型進行可視化

p1 <- plotEmbedding(
    projHeme2, 
    colorBy = "cellColData", 
    name = "predictedGroup_Un", 
    pal = pal
)
p1
Plot-UMAP-RNA-Integration_1

同樣锯七,我們也可以根據(jù)約束整合得到scATAC-seq對應的scRNA-seq的細胞類型進行可視化

p2 <- plotEmbedding(
    projHeme2, 
    colorBy = "cellColData", 
    name = "predictedGroup_Co", 
    pal = pal
)
p2
Plot-UMAP-RNA-Integration_2

這兩者的結果差異其實非常細微链快,主要是我們感興趣的細胞類型原本就存在明顯的差異。當然眉尸,仔細觀察還能發(fā)現(xiàn)其中的不同之處域蜗,尤其是T細胞(Clusters 17-22)

我們用plotPDF()函數(shù)保存該圖矢量版本。

plotPDF(p1,p2, name = "Plot-UMAP-RNA-Integration.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)

我們現(xiàn)在可以用saveArchRProject()函數(shù)保存我們的projHeme2對象噪猾。

saveArchRProject(ArchRProj = projHeme2, outputDirectory = "Save-ProjHeme2", load = FALSE)

8.2 為每個scATAC-seq細胞增加擬scRNA-seq譜

既然我們對scATAC-seq和scRNA-seq整合的結果感到滿意霉祸,我們就能用addToArrow=TRUE重新運行,在Arrow文件中添加相關聯(lián)的表達量矩陣數(shù)據(jù)袱蜡。根據(jù)之前所提到的丝蹭,我們傳入groupList約束整合,在nameCell坪蚁,nameGroupnameScore中加入列名奔穿。這些元信息列都會被添加到cellColData中。

這里敏晤,我們新建了一個projHeme3贱田,用于后續(xù)教程。

#~5 minutes
projHeme3 <- addGeneIntegrationMatrix(
    ArchRProj = projHeme2, 
    useMatrix = "GeneScoreMatrix",
    matrixName = "GeneIntegrationMatrix",
    reducedDims = "IterativeLSI",
    seRNA = seRNA,
    addToArrow = TRUE,
    force= TRUE,
    groupList = groupList,
    groupRNA = "BioClassification",
    nameCell = "predictedCell",
    nameGroup = "predictedGroup",
    nameScore = "predictedScore"
)

現(xiàn)在茵典,當我們使用getAvailableMatrices()檢查哪些矩陣可用時湘换,我們會發(fā)現(xiàn)GeneIntegrationMatrix已經(jīng)被添加到Arrow文件中

getAvailableMatrices(projHeme3)
# [1] "GeneIntegrationMatrix" "GeneScoreMatrix" "TileMatrix"

在新的GeneIntegrationMatrix中,我們可以比較連接的基因表達量和根據(jù)基因得分推斷的基因表達量

我們需要先確保在項目中加入了填充權重值(impute weights)

projHeme3 <- addImputeWeights(projHeme3)

現(xiàn)在统阿,我們來生成一些UMAP圖彩倚,里面的基因表達量值來自于GeneIntegrationMatrix

markerGenes  <- c(
    "CD34", #Early Progenitor
    "GATA1", #Erythroid
    "PAX5", "MS4A1", #B-Cell Trajectory
    "CD14", #Monocytes
    "CD3D", "CD8A", "TBX21", "IL7R" #TCells
  )

p1 <- plotEmbedding(
    ArchRProj = projHeme3, 
    colorBy = "GeneIntegrationMatrix", 
    name = markerGenes, 
    continuousSet = "horizonExtra",
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme3)
)

以及一些相同UMAP圖,但是使用GeneScoreMatrix里的基因得分

p2 <- plotEmbedding(
    ArchRProj = projHeme3, 
    colorBy = "GeneScoreMatrix", 
    continuousSet = "horizonExtra",
    name = markerGenes, 
    embedding = "UMAP",
    imputeWeights = getImputeWeights(projHeme3)
)

最后用cowplot將這些標記基因繪制在一起

p1c <- lapply(p1, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})

p2c <- lapply(p2, function(x){
    x + guides(color = FALSE, fill = FALSE) + 
    theme_ArchR(baseSize = 6.5) +
    theme(plot.margin = unit(c(0, 0, 0, 0), "cm")) +
    theme(
        axis.text.x=element_blank(), 
        axis.ticks.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks.y=element_blank()
    )
})

do.call(cowplot::plot_grid, c(list(ncol = 3), p1c))
Plot-UMAP-Markers-RNA-W-Imputation_1
do.call(cowplot::plot_grid, c(list(ncol = 3), p2c))
Plot-UMAP-Markers-RNA-W-Imputation_2

和預期的一樣扶平,兩個方法推測的基因表達量存在相似性帆离,但并不相同。

使用plotPDF()函數(shù)保存可編輯的矢量版结澄。

plotPDF(plotList = p1, 
    name = "Plot-UMAP-Marker-Genes-RNA-W-Imputation.pdf", 
    ArchRProj = projHeme3, 
    addDOC = FALSE, width = 5, height = 5)

8.3 使用scRNA-seq信息標記scATAC-seq聚類

現(xiàn)在哥谷,我們確定了scATAC-seq和scRNA-seq數(shù)據(jù)間的對應關系,我們就可以使用scRNA-seq數(shù)據(jù)中細胞類型對我們的scATAC-seq聚類進行定義麻献。

首先们妥,我們會在scATAC-seq和整合分析得到predictedGroup之間構建一個混合矩陣

cM <- confusionMatrix(projHeme3$Clusters, projHeme3$predictedGroup)
labelOld <- rownames(cM)
labelOld
#  [1] "Cluster11" "Cluster2"  "Cluster12" "Cluster1"  "Cluster8"  "Cluster4" 
#  [7] "Cluster9"  "Cluster5"  "Cluster7"  "Cluster14" "Cluster3"  "Cluster10"
# [13] "Cluster6"  "Cluster13"

接著,對于每一個scATAC-seq聚類勉吻,我們根據(jù)predictedGroup確定最能定義聚類的細胞類型监婶。

labelNew <- colnames(cM)[apply(cM, 1, which.max)]
labelNew

接著,我們需要對新的聚類標簽進行重命名,簡化分類系統(tǒng)惑惶。對于每一個scRNA-seq的聚類煮盼,我們會重新定義標簽,以便更好解釋带污。

remapClust <- c(
    "01_HSC" = "Progenitor",
    "02_Early.Eryth" = "Erythroid",
    "03_Late.Eryth" = "Erythroid",
    "04_Early.Baso" = "Basophil",
    "05_CMP.LMPP" = "Progenitor",
    "06_CLP.1" = "CLP",
    "07_GMP" = "GMP",
    "08_GMP.Neut" = "GMP",
    "09_pDC" = "pDC",
    "10_cDC" = "cDC",
    "11_CD14.Mono.1" = "Mono",
    "12_CD14.Mono.2" = "Mono",
    "13_CD16.Mono" = "Mono",
    "15_CLP.2" = "CLP",
    "16_Pre.B" = "PreB",
    "17_B" = "B",
    "18_Plasma" = "Plasma",
    "19_CD8.N" = "CD8.N",
    "20_CD4.N1" = "CD4.N",
    "21_CD4.N2" = "CD4.N",
    "22_CD4.M" = "CD4.M",
    "23_CD8.EM" = "CD8.EM",
    "24_CD8.CM" = "CD8.CM",
    "25_NK" = "NK"
)
remapClust <- remapClust[names(remapClust) %in% labelNew]

接著僵控,使用mapLables()函數(shù)進行標簽轉(zhuǎn)換,將舊的標簽映射到新的標簽上鱼冀。

labelNew2 <- mapLabels(labelNew, oldLabels = names(remapClust), newLabels = remapClust)
labelNew2
#  [1] "GMP"        "B"          "PreB"       "CD4.N"      "Mono"      
#  [6] "Erythroid"  "Progenitor" "CD4.M"      "pDC"        "NK"        
# [11] "CLP"        "Mono"

合并labelsOldlabelsNew2报破,我們現(xiàn)在可以用mapLables()函數(shù)在cellColData里新建聚類標簽。

projHeme3$Clusters2 <- mapLabels(projHeme3$Clusters, newLabels = labelNew2, oldLabels = labelOld)

得到新的標簽后雷绢,我們繪制最新的UMAP展示聚類結果泛烙。

p1 <- plotEmbedding(projHeme3, colorBy = "cellColData", name = "Clusters2")
p1

如果被分析scATAC-seq數(shù)據(jù)對應的細胞系統(tǒng)也有scRNA-seq數(shù)據(jù)存在,那么這種分析范式將會特別有用翘紊。正如之前所說,這種scRNA-seq和scATAC-seq整合分析也為后續(xù)更加復雜的基因調(diào)控分析提供了出色的框架藐唠。

plotPDF()函數(shù)保存該圖矢量版本帆疟。

plotPDF(p1, name = "Plot-UMAP-Remap-Clusters.pdf", ArchRProj = projHeme2, addDOC = FALSE, width = 5, height = 5)

使用saveArchRProject保存我們最初的projHeme3.

saveArchRProject(ArchRProj = projHeme3, outputDirectory = "Save-ProjHeme3", load = FALSE)
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宇立,隨后出現(xiàn)的幾起案子踪宠,更是在濱河造成了極大的恐慌,老刑警劉巖妈嘹,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柳琢,死亡現(xiàn)場離奇詭異,居然都是意外死亡润脸,警方通過查閱死者的電腦和手機柬脸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毙驯,“玉大人倒堕,你說我怎么就攤上這事”郏” “怎么了垦巴?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铭段。 經(jīng)常有香客問我骤宣,道長,這世上最難降的妖魔是什么序愚? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任憔披,我火速辦了婚禮,結果婚禮上展运,老公的妹妹穿的比我還像新娘活逆。我一直安慰自己精刷,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布蔗候。 她就那樣靜靜地躺著怒允,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锈遥。 梳的紋絲不亂的頭發(fā)上纫事,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音所灸,去河邊找鬼丽惶。 笑死,一個胖子當著我的面吹牛爬立,可吹牛的內(nèi)容都是我干的钾唬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼侠驯,長吁一口氣:“原來是場噩夢啊……” “哼抡秆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吟策,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤儒士,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后檩坚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體着撩,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年匾委,在試婚紗的時候發(fā)現(xiàn)自己被綠了拖叙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡剩檀,死狀恐怖憋沿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沪猴,我是刑警寧澤辐啄,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站运嗜,受9級特大地震影響壶辜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜担租,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一砸民、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦岭参、人聲如沸反惕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姿染。三九已至,卻和暖如春秒际,著一層夾襖步出監(jiān)牢的瞬間悬赏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工娄徊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闽颇,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓寄锐,卻偏偏與公主長得像兵多,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锐峭,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345