在單細(xì)胞數(shù)據(jù)分析中旁赊,在確定細(xì)胞類型后愉阎,除了可以進(jìn)行差異表達(dá)基因分析外绞蹦,還可以針對(duì)單個(gè)細(xì)胞類型進(jìn)行分析特定分析,這時(shí)就需要我們提取細(xì)胞子集分開處理了榜旦。
一幽七、Seurat數(shù)據(jù)格式
首先我們需要先對(duì)Seurat生成的數(shù)據(jù)格式有所了解:
圖片來源:周運(yùn)來老師的簡書:為什么要以數(shù)據(jù)庫的思維來理解單細(xì)胞數(shù)據(jù)
解釋:
Assays
默認(rèn)情況下,Seurat對(duì)象是一個(gè)叫RNA的Assay溅呢。在我們處理數(shù)據(jù)的過程中澡屡,做整合(integration),或者做變換(SCTransform)咐旧,或者做去除污染(SoupX)驶鹉,或者是融合velocity的數(shù)據(jù)等,都會(huì)生成新的相關(guān)的Assay铣墨,用于存放這些處理之后的矩陣室埋。
在之后的處理中,我們可以根據(jù)情況使用指定Assay下的數(shù)據(jù)伊约。不指定Assay使用數(shù)據(jù)的時(shí)候姚淆,Seurat調(diào)用的是Default Assay下的內(nèi)容。我們可以通過對(duì)象名@active.assay
查看當(dāng)前Default Assay屡律,通過DefaultAssay函數(shù)
更改當(dāng)前Default Assay腌逢。
Assay數(shù)據(jù)中,counts為raw原始數(shù)據(jù)超埋,data為normalized(歸一化)搏讶,scale.data matrix為scaled(標(biāo)準(zhǔn)化的數(shù)據(jù)矩陣)。
調(diào)用方法: PBMC@assays$RNA@data
:調(diào)用normalized后數(shù)據(jù)
meta.data
元數(shù)據(jù)霍殴,對(duì)每個(gè)細(xì)胞的描述窍蓝。一般計(jì)算的nFeature_RNA等信息就以metafeature的形式存在Seurat對(duì)象的metadata中。計(jì)算的分類信息一般以RNA_snn_res.x(x指使用的resolution)存放在metadata中繁成。
orig.ident nCount_RNA nFeature_RNA percent.mito percent.HB RNA_snn_res.0.6 seurat_clusters
AAACCCAAGCGTATGG-1 pbmc 13509 3498 10.659560 0 1 1
AAACCCAGTCCTACAA-1 pbmc 12637 3382 5.610509 0 1 1
AAACGCTAGGGCATGT-1 pbmc 5743 1798 10.691276 0 7 7
AAACGCTGTAGGTACG-1 pbmc 13107 2888 7.866026 0 9 9
AAACGCTGTGTCCGGT-1 pbmc 15510 3807 7.446809 0 3 3
AAACGCTGTGTGATGG-1 pbmc 6131 2348 9.982058 0 5 5
調(diào)用方法:pbmc$orig.ident
或pbmc[["orig.ident"]]
active.assay和active.ident
前者是查看當(dāng)前使用的assays,后者是查看當(dāng)前的使用分群方式(可使用levels
函數(shù))
reduction
用于儲(chǔ)存降維之后的每個(gè)細(xì)胞的坐標(biāo)信息淑玫。
調(diào)用方法:
每個(gè)細(xì)胞在PC軸上的坐標(biāo)
head(pbmc@reductions$pca@cell.embeddings)
每個(gè)基因?qū)γ總€(gè)PC軸的貢獻(xiàn)度(loading值)
head(pbmc@reductions$pca@feature.loadings)
二巾腕、提取數(shù)據(jù)的函數(shù)
對(duì)Seurat對(duì)象結(jié)構(gòu)有所了解之后面睛,我們其實(shí)可以直接在Seurat對(duì)象中提取數(shù)據(jù)∽鸢幔可能為了方便叁鉴,Seurat也提供了一些函數(shù)來幫助我們提取一些我們想要的數(shù)據(jù)。例如:
提取基因ID和細(xì)胞ID
-
獲取全部基因ID:
rownames(object)
-
獲取整個(gè)object的細(xì)胞ID:
Cells(object)
佛寿,colnames(object)
- 按照idents獲取部分細(xì)胞ID:
WhichCells(object, idents = c(1, 2))
- 按照基因表達(dá)獲取部分細(xì)胞ID:
WhichCells(object, expression = gene1 > 1)
WhichCells(object, expression = gene1 > 1, slot = "counts")
提取降維之后的坐標(biāo)信息
Embeddings(object = object[["pca"]])
Embeddings(object = object[["umap"]])
提取包含部分細(xì)胞的對(duì)象
- 按照細(xì)胞ID提然夏埂:
subset(x = object, cells = cells)
-
按照idents提取:
subset(x = object, idents = c(1, 2))
WhichCells(object, idents = 1)
subset(x=object, idents = "root")
#對(duì)細(xì)胞簇重新命名后為root - 想要排除1、2細(xì)胞類型冀泻,可以這樣:
subset(pbmc, idents = c(1, 2), invert = TRUE)
- 按照meta.data中設(shè)置過的stim信息提瘸B隆:
subset(x = object, stim == "Ctrl")
-
按照某一個(gè)resolution下的分群提取:
subset(x = object, RNA_snn_res.2 == 2)
- 當(dāng)然還可以根據(jù)某個(gè)基因的表達(dá)量來提取:
subset(x = object, gene1 > 1)
subset(x = object, gene1 > 1弹渔,slot = "counts")
三胳施、應(yīng)用方法
查看每個(gè)聚類包含多少細(xì)胞?
table(Idents(pbmc))
或table(pbmc$RNA_snn_res.0.3)
每個(gè)聚類細(xì)胞數(shù)占比
prop.table(table(Idents(pbmc)))
或
prop.table(table(pbmc$RNA_snn_res.0.3))
提取表達(dá)矩陣
raw.data <- as.matrix(GetAssayData(pbmc, slot = "counts")
或
raw.data <- as.matrix(pbmc@assays$RNA@counts)
提取某種細(xì)胞的表達(dá)矩陣
raw.data <- as.matrix(GetAssayData(pbmc, slot = "counts")[, WhichCells(pbmc, ident = "1")])
計(jì)算平均表達(dá)量
cluster.averages <- AverageExpression(pbmc)
獲得所有的HVGsID
pbmc[["RNA"]]@var.features
或pbmc@assays$RNA@var.features
pbmc[["RNA"]]@var.features[1:10]
:獲得前十個(gè)
修改聚類后的因子水平
Idents(pbmc) <- factor(Idents(pbmc), levels= c(1,2,3,4,9,8,7,6,5,0))
參考:
Seurat Weekly NO.2 || 我該如何取子集肢专?
Seurat v3.0命令列表
10xGenomics單細(xì)胞轉(zhuǎn)錄組亞群細(xì)分策略
Seurat V3 學(xué)習(xí)(二)
Seurat3.1的靈活操作指南