原文見Seurat - Guided Clustering Tutorial, Compiled: April 17, 2020
#1 Seurat安裝
install.packages("Seurat")
#2 數(shù)據(jù)下載
Peripheral Blood Mononuclear Cells (PBMC) 是10X Genomics dataset page提供的一個(gè)數(shù)據(jù),包含2700個(gè)單細(xì)胞,出自Illumina NextSeq 500平臺(tái)隘马。
PBMCs是來自健康供體具有相對(duì)少量RNA(around 1pg RNA/cell)的原代細(xì)胞屋摔。在Illumina NextSeq 500平臺(tái)摧阅,檢測(cè)到2700個(gè)單細(xì)胞,每個(gè)細(xì)胞獲得69000 reads。
tar -xvf pbmc3k_filtered_gene_bc_matrices.tar
文件夾下包含3個(gè)文件
barcodes.tsv
genes.tsv
matrix.mtx
matrix.mtx:matrix.mtx 是 MatrixMarket格式文件;更多內(nèi)容見:http://math.nist.gov/MatrixMarket/formats.html
文件中儲(chǔ)存非零值;
注釋使用%標(biāo)記誓斥;
第一行包含文件中總行數(shù),總列數(shù)许帐,總的記錄數(shù)
每行中提供記錄的所處的行號(hào)和列號(hào)劳坑,已經(jīng)記錄的內(nèi)容
?head filtered_gene_bc_matrices/hg19/matrix.mtx
%%MatrixMarket matrix coordinate real general
%
32738 2700 2286884
32709 1 4
32707 1 1
32706 1 10
32704 1 1
32703 1 5
32702 1 6
32700 1 10
#3 數(shù)據(jù)導(dǎo)入
##3.1 Read10X()函數(shù)可以自動(dòng)讀入和解析數(shù)據(jù)。
library(dplyr)
library(Seurat)
library(patchwork)
#讀取PBMC數(shù)據(jù)
pbmc.data <- Read10X(data.dir = "../data/pbmc3k/filtered_gene_bc_matrices/hg19/")
#查看數(shù)據(jù)
dim(pbmc.data)
# 32738 2700
pbmc.data[c("CD3D", "TCL1A", "MS4A1"), 1:30]
# 3 x 30 sparse Matrix of class "dgCMatrix"
# CD3D 4 . 10 . . 1 2 3 1 . . 2 7 1 . . 1 3 . 2 3 . . . . . 3 4 1 5
# TCL1A . . . . . . . . 1 . . . . . . . . . . . . 1 . . . . . . . .
# MS4A1 . 6 . . . . . . 1 1 1 . . . . . . . . . 36 1 2 . . 2 . . . .
#.表示0
summary(colSums(pbmc.data))
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 548 1758 2197 2367 2763 15844
#查看每個(gè)細(xì)胞有多少基因被檢測(cè)到
at_least_one <- apply(pbmc.data, 2, function(x) sum(x>0))
hist(at_least_one, breaks = 100,
main = "Distribution of detected genes",
xlab = "Genes with at least one tag")
hist(colSums(pbmc.data),
breaks = 100, main = "Expression sum per cell",
xlab = "Sum expression")
##3.2 使用pbmc數(shù)據(jù)初始化Seurat對(duì)象
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)
pbmc
# An object of class Seurat
# 13714 features across 2700 samples within 1 assay
# Active assay: RNA (13714 features, 0 variable features)
head(pbmc$RNA@data[,1:5])
6 x 5 sparse Matrix of class "dgCMatrix"
AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1 AAACCGTGCTTCCG-1 AAACCGTGTATGCG-1
AL627309.1 . . . . .
AP006222.2 . . . . .
RP11-206L10.2 . . . . .
RP11-206L10.9 . . . . .
LINC00115 . . . . .
NOC2L . . . . .
#4 數(shù)據(jù)預(yù)處理
這部分是基于數(shù)據(jù)質(zhì)控方法成畦,標(biāo)準(zhǔn)化和檢測(cè)到的變化基因?qū)?shù)據(jù)進(jìn)行篩選距芬。
##4.1 對(duì)細(xì)胞的質(zhì)控
可以參考文章:Classification of low quality cells from single-cell RNA-seq data
- 單個(gè)細(xì)胞中檢測(cè)到單個(gè)基因的數(shù)目
- 低質(zhì)量的細(xì)胞以及空泡油滴中一般檢測(cè)到很少的基因
- 包含多個(gè)細(xì)胞的油滴會(huì)檢測(cè)到異常多的基因
- 類似,在一個(gè)單細(xì)胞中的基因總數(shù)
- 檢測(cè)到線粒體的基因數(shù)目百分比
- 低質(zhì)量/垂死細(xì)胞通常會(huì)有線粒體污染
- 使用PercentageFeatureSet函數(shù)函數(shù)可以計(jì)算線粒體QC循帐,計(jì)算線粒體基因所占百分比
- 基因名以MT- 開始的基因定義為線粒體基因
#線粒體基因占比計(jì)算
pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")
head(pbmc@meta.data, 5)
orig.ident nCount_RNA nFeature_RNA percent.mt
AAACATACAACCAC-1 pbmc3k 2419 779 3.0177759
AAACATTGAGCTAC-1 pbmc3k 4903 1352 3.7935958
AAACATTGATCAGC-1 pbmc3k 3147 1129 0.8897363
AAACCGTGCTTCCG-1 pbmc3k 2639 960 1.7430845
AAACCGTGTATGCG-1 pbmc3k 980 521 1.2244898
#畫圖查看基因數(shù)目, UMI數(shù)目, 線粒體基因占比
VlnPlot(pbmc, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)
#查看基因數(shù)目, 線粒體基因占比與UMI數(shù)目的關(guān)系
plot1 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(pbmc, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot1 + plot2
#質(zhì)控
- 篩選檢測(cè)到基因數(shù)目超過2500或低于200的細(xì)胞
- 單個(gè)細(xì)胞中線粒體基因數(shù)目占比超過>5%
pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
##4.2 數(shù)據(jù)標(biāo)準(zhǔn)化
默認(rèn)使用數(shù)據(jù)標(biāo)準(zhǔn)化方法是LogNormalize
, 每個(gè)細(xì)胞總的表達(dá)量都標(biāo)準(zhǔn)化到10000框仔,然后log取對(duì)數(shù);結(jié)果存放于pbmc[["RNA"]]@data
拄养。
#標(biāo)準(zhǔn)化前存和,每個(gè)細(xì)胞總的表達(dá)量
hist(colSums(pbmc$RNA@data),
breaks = 100,
main = "Total expression before normalisation",
xlab = "Sum of expression")
pbmc <- NormalizeData(pbmc, normalization.method = "LogNormalize", scale.factor = 10000)
#標(biāo)準(zhǔn)化后,每個(gè)細(xì)胞總的表達(dá)量
hist(colSums(pbmc$RNA@data),
breaks = 100,
main = "Total expression after normalisation",
xlab = "Sum of expression")
##4.3 變化基因鑒定
鑒定在細(xì)胞間表達(dá)高度變化的基因,后續(xù)研究需要集中于這部分基因捐腿。Seurat內(nèi)置的FindVariableFeatures()函數(shù),首先計(jì)算每一個(gè)基因的均值和方差柿顶,并且直接模擬其關(guān)系茄袖。默認(rèn)返回2000個(gè)基因。
pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)
# 10個(gè)表達(dá)變化最為劇烈的基因
top10 <- head(VariableFeatures(pbmc), 10) #head(pbmc$RNA@var.features,10)
# "PPBP" "LYZ" "S100A9" "IGLL5" "GNLY" "FTL" "PF4" "FTH1" "GNG11" "S100A8"
# 畫出表達(dá)變化的基因嘁锯,從而觀察其分布
plot1 <- VariableFeaturePlot(pbmc)
# 畫出表達(dá)變化的基因宪祥,標(biāo)記前10個(gè)基因
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
plot1
plot2
##4.4 數(shù)據(jù)縮放
線性轉(zhuǎn)換縮放數(shù)據(jù),ScaleData()函數(shù)可以實(shí)現(xiàn)此功能家乘。
最終每個(gè)基因均值為0蝗羊,方差為1。
結(jié)果存放于pbmc[["RNA"]]@scale.data
仁锯。
all.genes <- rownames(pbmc)
pbmc <- ScaleData(pbmc, features = all.genes)
設(shè)置參數(shù)features是因?yàn)镾caleData默認(rèn)處理前面鑒定的差異基因耀找。這一步怎么做都不會(huì)影響到后續(xù)pca和聚類,但是會(huì)影響做熱圖业崖。
移除影響方差的因素
pbmc <- ScaleData(pbmc, vars.to.regress = "percent.mt")
#5 線性降維分析
##5.1 PCA
對(duì)縮放后的數(shù)據(jù)進(jìn)行PCA分析野芒,默認(rèn)使用前面鑒定表達(dá)變化大的基因。使用features參數(shù)可以重新定義數(shù)據(jù)集双炕。
pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc))
VizDimReduction
, DimPlot
, 和 DimHeatmap
可以從基因或細(xì)胞角度可視化pca結(jié)果
#查看對(duì)每個(gè)主成分影響比較大的基因集
print(pbmc[["pca"]], dims = 1:5, nfeatures = 5)
## PC_ 1
## Positive: CST3, TYROBP, LST1, AIF1, FTL
## Negative: MALAT1, LTB, IL32, IL7R, CD2
## PC_ 2
## Positive: CD79A, MS4A1, TCL1A, HLA-DQA1, HLA-DQB1
## Negative: NKG7, PRF1, CST7, GZMB, GZMA
## PC_ 3
## Positive: HLA-DQA1, CD79A, CD79B, HLA-DQB1, HLA-DPB1
## Negative: PPBP, PF4, SDPR, SPARC, GNG11
## PC_ 4
## Positive: HLA-DQA1, CD79B, CD79A, MS4A1, HLA-DQB1
## Negative: VIM, IL7R, S100A6, IL32, S100A8
## PC_ 5
## Positive: GZMB, NKG7, S100A8, FGFBP2, GNLY
## Negative: LTB, IL7R, CKB, VIM, MS4A7
#可視化對(duì)每個(gè)主成分影響比較大的基因集
VizDimLoadings(pbmc, dims = 1:2, reduction = "pca")
兩個(gè)主成分的展示
DimPlot(pbmc, reduction = "pca",split.by = 'ident')
DimHeatmap繪制基于單個(gè)主成分的熱圖狞悲,細(xì)胞和基因的排序都是基于他們的主成分分?jǐn)?shù)。對(duì)于數(shù)據(jù)異質(zhì)性的探索是很有幫助的妇斤,可以幫助用戶選擇用于下游分析的主成分維度摇锋。
DimHeatmap(pbmc, dims = 1, cells = 500, balanced = TRUE)
展示多個(gè)主成分
DimHeatmap(pbmc, dims = 1:15, cells = 500, balanced = TRUE)
##5.1 數(shù)據(jù)維度
為了避免單個(gè)基因影響,Seurat聚類細(xì)胞時(shí)使用pca結(jié)果站超。首先需要確定的是使用多少個(gè)主成分用于后續(xù)分析荸恕。常用有兩種方法,一種是基于零分布的統(tǒng)計(jì)檢驗(yàn)方法顷编,這種方法耗時(shí)且可能不會(huì)返回明確結(jié)果戚炫。另一種是主成分分析常用的啟發(fā)式評(píng)估。
- JackStraw()
在JackStraw()函數(shù)中, 使用基于零分布的置換檢驗(yàn)方法媳纬。隨機(jī)抽取一部分基因(默認(rèn)1%)然后進(jìn)行pca分析得到pca分?jǐn)?shù)双肤,將這部分基因的pca分?jǐn)?shù)與先前計(jì)算的pca分?jǐn)?shù)進(jìn)行比較得到顯著性p-Value,钮惠。根據(jù)主成分(pc)所包含基因的p-value進(jìn)行判斷選擇主成分茅糜。最終的結(jié)果是每個(gè)基因與每個(gè)主成分的關(guān)聯(lián)的p-Value。保留下來的主成分是那些富集小的p-Value基因的主成分素挽。
處理大數(shù)據(jù)時(shí)會(huì)花費(fèi)大量時(shí)間蔑赘;ElbowPlot()內(nèi)置了一些其它的方法可以減少運(yùn)行時(shí)間。
pbmc <- JackStraw(pbmc, num.replicate = 100)
pbmc <- ScoreJackStraw(pbmc, dims = 1:20)
JackStrawPlot()函數(shù)提供可視化方法,用于比較每一個(gè)主成分的p-value的分布缩赛,虛線是均勻分布耙箍;顯著的主成分富集有小p-Value基因,實(shí)線位于虛線左上方酥馍。下圖表明保留10個(gè)pca主成分用于后續(xù)分析是比較合理的辩昆。
JackStrawPlot(pbmc, dims = 1:15)
- ElbowPlot
ElbowPlot(pbmc)
啟發(fā)式評(píng)估方法生成一個(gè)Elbow plot圖。在圖中展示了每個(gè)主成分對(duì)數(shù)據(jù)方差的解釋情況(百分比表示)旨袒,并進(jìn)行排序汁针。根據(jù)自己需要選擇主成分,圖中發(fā)現(xiàn)第9個(gè)主成分是一個(gè)拐點(diǎn)砚尽,后續(xù)的主成分(PC)變化都不大了施无。
注意:鑒別數(shù)據(jù)的真實(shí)維度不是件容易的事情;除了上面兩種方法必孤,Serat官當(dāng)文檔還建議將主成分(數(shù)據(jù)異質(zhì)性的相關(guān)來源有關(guān))與GSEA分析相結(jié)合猾骡。Dendritic cell 和 NK aficionados可能識(shí)別的基因與主成分 12 和 13相關(guān),定義了罕見的免疫亞群 (i.e. MZB1 is a marker for plasmacytoid DCs)隧魄。如果不是事先知道的情況下卓练,很難發(fā)現(xiàn)這些問題。
Serat官當(dāng)文檔因此鼓勵(lì)用戶使用不同數(shù)量的PC(10购啄、15襟企,甚至50)重復(fù)下游分析。其實(shí)也將觀察到的狮含,結(jié)果通常沒有顯著差異顽悼。因此,在選擇此參數(shù)時(shí)几迄,可以盡量選大一點(diǎn)的維度蔚龙,維度太小的話對(duì)結(jié)果會(huì)產(chǎn)生不好的影響。
#6 細(xì)胞聚類
Seurat v3應(yīng)用基于圖形的聚類方法映胁,例如KNN方法木羹。具有相似基因表達(dá)模式的細(xì)胞之間繪制邊緣,然后將他們劃分為一個(gè)內(nèi)聯(lián)群體解孙。
在PhenoGraph中坑填,首先基于pca維度中(先前計(jì)算的pca數(shù)據(jù))計(jì)算歐式距離(the euclidean distance),然后根據(jù)兩個(gè)細(xì)胞在局部的重合情況(Jaccard 相似系數(shù))優(yōu)化兩個(gè)細(xì)胞之間的邊緣權(quán)值弛姜。此步驟內(nèi)置于FindNeighbors函數(shù)脐瑰,輸入時(shí)先前確定的pc數(shù)據(jù)。
為了聚類細(xì)胞廷臼,接下來應(yīng)用模塊化優(yōu)化技術(shù)迭代將細(xì)胞聚集在一起苍在。(the Louvain algorithm (default) or SLM [SLM, Blondel et al., Journal of Statistical Mechanics])绝页,F(xiàn)indClusters函數(shù)實(shí)現(xiàn)這一功能,其中需要注意resolution參數(shù)寂恬,該參數(shù)設(shè)置下游聚類分析的“granularity”续誉,更大的resolution會(huì)導(dǎo)致跟多的細(xì)胞類群。3000左右的細(xì)胞量初肉,設(shè)置resolution為0.4-1.2是比較合適的屈芜。細(xì)胞數(shù)據(jù)集越大,需要更大的resolution參數(shù), 會(huì)獲得更多的細(xì)胞聚類朴译。
查看細(xì)胞屬于那個(gè)類群可以使用函數(shù)Idents。
pbmc <- FindNeighbors(pbmc, dims = 1:10)
pbmc <- FindClusters(pbmc, resolution = 0.5)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
Number of nodes: 2638
Number of edges: 96033
Running Louvain algorithm...
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8720
Number of communities: 9
Elapsed time: 0 seconds
#查看細(xì)胞屬于那個(gè)類群
head(Idents(pbmc), 5)
AAACATACAACCAC-1 AAACATTGAGCTAC-1 AAACATTGATCAGC-1 AAACCGTGCTTCCG-1 AAACCGTGTATGCG-1
0 3 2 5 6
Levels: 0 1 2 3 4 5 6 7 8
#7 非線性降維分析
Seurat提供了一些非線性降維度分析的方法属铁,如tSNE和UMAP眠寿,以可視化和探索這些數(shù)據(jù)集;這一步使用的數(shù)據(jù)建議與聚類分析使用的pc維度一致焦蘑。
# install UMAP: reticulate::py_install(packages ='umap-learn')
pbmc <- RunUMAP(pbmc, dims = 1:10)
#畫圖展示
DimPlot(pbmc, reduction = "umap")
#添加細(xì)胞類群xiba的標(biāo)簽
DimPlot(pbmc, reduction = "umap",label = TRUE)
LabelClusters(DimPlot(pbmc, reduction = "umap"),id = 'ident')
此時(shí)可以保存數(shù)據(jù)盯拱,方便下次直接導(dǎo)入數(shù)據(jù)修改圖形。
saveRDS(pbmc, file = "../output/pbmc_tutorial.rds")
#8 尋找差異表達(dá)基因 (cluster biomarkers)
Seurat可以通過差異表達(dá)分析尋找不同細(xì)胞類群的標(biāo)記基因例嘱。FindMarkers函數(shù)可以進(jìn)行此操作狡逢,但是默認(rèn)尋找單個(gè)類群(參數(shù)ident.1)與其他所有類群陽性和陰性標(biāo)記基因。FindAllMarkers函數(shù)會(huì)自動(dòng)尋找每個(gè)類群和其他每個(gè)類群之間的標(biāo)記基因拼卵。
min.pct參數(shù):設(shè)定在兩個(gè)細(xì)胞群中任何一個(gè)被檢測(cè)到的百分比奢浑,通過此設(shè)定不檢測(cè)很少表達(dá)基因來縮短程序運(yùn)行時(shí)間。默認(rèn)0.1
thresh.test參數(shù):設(shè)定在兩個(gè)細(xì)胞群中基因差異表達(dá)量腋腮∪副耍可以設(shè)置為0 ,程序運(yùn)行時(shí)間會(huì)更長即寡。
max.cells.per.ident參數(shù):每個(gè)類群細(xì)胞抽樣設(shè)置徊哑;也可以縮短程序運(yùn)行時(shí)間。
# find all markers of cluster 1
cluster1.markers <- FindMarkers(pbmc, ident.1 = 1, min.pct = 0.25)
head(cluster1.markers, n = 5)
p_val avg_logFC pct.1 pct.2 p_val_adj
IL32 1.894810e-92 0.8373872 0.948 0.464 2.598542e-88
LTB 7.953303e-89 0.8921170 0.981 0.642 1.090716e-84
CD3D 1.655937e-70 0.6436286 0.919 0.431 2.270951e-66
IL7R 3.688893e-68 0.8147082 0.747 0.325 5.058947e-64
LDHB 2.292819e-67 0.6253110 0.950 0.613 3.144372e-63
# find all markers distinguishing cluster 5 from clusters 0 and 3
cluster5.markers <- FindMarkers(pbmc, ident.1 = 5, ident.2 = c(0, 3), min.pct = 0.25)
head(cluster5.markers, n = 5)
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 7.583625e-209 2.963144 0.975 0.037 1.040018e-204
IFITM3 2.500844e-199 2.698187 0.975 0.046 3.429657e-195
CFD 1.763722e-195 2.362381 0.938 0.037 2.418768e-191
CD68 4.612171e-192 2.087366 0.926 0.036 6.325132e-188
RP11-290F20.3 1.846215e-188 1.886288 0.840 0.016 2.531900e-184
# find markers for every cluster compared to all remaining cells, report only the positive ones
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
pbmc.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC)
p_val avg_logFC pct.1 pct.2 p_val_adj cluster gene
<dbl> <dbl> <dbl> <dbl> <dbl> <fct> <chr>
1 1.96e-107 0.730 0.901 0.594 2.69e-103 0 LDHB
2 1.61e- 82 0.922 0.436 0.11 2.20e- 78 0 CCR7
3 7.95e- 89 0.892 0.981 0.642 1.09e- 84 1 LTB
4 1.85e- 60 0.859 0.422 0.11 2.54e- 56 1 AQP3
5 0. 3.86 0.996 0.215 0. 2 S100A9
6 0. 3.80 0.975 0.121 0. 2 S100A8
7 0. 2.99 0.936 0.041 0. 3 CD79A
8 9.48e-271 2.49 0.622 0.022 1.30e-266 3 TCL1A
9 2.96e-189 2.12 0.985 0.24 4.06e-185 4 CCL5
10 2.57e-158 2.05 0.587 0.059 3.52e-154 4 GZMK
11 3.51e-184 2.30 0.975 0.134 4.82e-180 5 FCGR3A
12 2.03e-125 2.14 1 0.315 2.78e-121 5 LST1
13 7.95e-269 3.35 0.961 0.068 1.09e-264 6 GZMB
14 3.13e-191 3.69 0.961 0.131 4.30e-187 6 GNLY
15 1.48e-220 2.68 0.812 0.011 2.03e-216 7 FCER1A
16 1.67e- 21 1.99 1 0.513 2.28e- 17 7 HLA-DPB1
17 7.73e-200 5.02 1 0.01 1.06e-195 8 PF4
18 3.68e-110 5.94 1 0.024 5.05e-106 8 PPBP
Seurat可以通過參數(shù)test.use設(shè)定檢驗(yàn)差異表達(dá)的方法(詳情見 DE vignett)聪富。
cluster1.markers <- FindMarkers(pbmc, ident.1 = 0, logfc.threshold = 0.25, test.use = "roc", only.pos = TRUE)
head(cluster1.markers, n = 5)
Seurat有多種方法可視化標(biāo)記基因的方法
- VlnPlot: 基于細(xì)胞類群的基因表達(dá)概率分布
- FeaturePlot:在tSNE 或 PCA圖中畫出基因表達(dá)情況
- RidgePlot莺丑,CellScatter,DotPlot
VlnPlot(pbmc, features = c("MS4A1", "CD79A"))
# you can plot raw counts as well
VlnPlot(pbmc, features = c("NKG7", "PF4"), slot = "counts", log = TRUE)
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP",
"CD8A"))
DoHeatmap為指定的細(xì)胞和基因花表達(dá)熱圖墩蔓。每個(gè)類群默認(rèn)展示top 20標(biāo)記基因梢莽。
top10 <- pbmc.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
DoHeatmap(pbmc, features = top10$gene) + NoLegend()
#9 Assigning cell type identity to clusters
根據(jù)已知細(xì)胞類型與基因標(biāo)記的對(duì)應(yīng)關(guān)系,可以為細(xì)胞類群找到對(duì)應(yīng)的細(xì)胞類型钢拧。
Cluster ID | Markers | Cell Type |
---|---|---|
0 | IL7R, CCR7 | Naive CD4+ T |
1 | IL7R, S100A4 | Memory CD4+ |
2 | CD14, LYZ | CD14+ Mono |
3 | MS4A1 | B |
4 | CD8A | CD8+ T |
5 | FCGR3A, MS4A7 | FCGR3A+ Mono |
6 | GNLY, NKG7 | NK |
7 | FCER1A, CST3 | DC |
8 | PPBP | Platelet |
new.cluster.ids <- c("Naive CD4 T", "Memory CD4 T", "CD14+ Mono", "B", "CD8 T", "FCGR3A+ Mono",
"NK", "DC", "Platelet")
names(new.cluster.ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc, new.cluster.ids)
DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()
saveRDS(pbmc, file = "../output/pbmc3k_final.rds")
參考:
Seurat - Guided Clustering Tutorial, Compiled: April 17, 2020
Getting started with Seurat