單細(xì)胞測(cè)序分析: Seurat 使用教程

Seurat for Single cell

原文見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
hist(colSums(pbmc.data),
     breaks = 100, main = "Expression sum per cell",
     xlab = "Sum expression")
hist

##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)
VlnPlot

#查看基因數(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
FeatureScatter

#質(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")
Total expression before normalisation
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")  
Total expression after normalisation

##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
VariableFeaturePlot

##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")
VizDimLoadings

兩個(gè)主成分的展示

DimPlot(pbmc, reduction = "pca",split.by = 'ident')
DimPlot

DimHeatmap繪制基于單個(gè)主成分的熱圖狞悲,細(xì)胞和基因的排序都是基于他們的主成分分?jǐn)?shù)。對(duì)于數(shù)據(jù)異質(zhì)性的探索是很有幫助的妇斤,可以幫助用戶選擇用于下游分析的主成分維度摇锋。

DimHeatmap(pbmc, dims = 1, cells = 500, balanced = TRUE)
DimHeatmap

展示多個(gè)主成分

DimHeatmap(pbmc, dims = 1:15, cells = 500, balanced = TRUE)
DimHeatmap

##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)
JackStrawPlot
  • ElbowPlot
ElbowPlot(pbmc)
ElbowPlot

啟發(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")
DimPlot
#添加細(xì)胞類群xiba的標(biāo)簽
DimPlot(pbmc, reduction = "umap",label = TRUE)
LabelClusters(DimPlot(pbmc, reduction = "umap"),id = 'ident')
DimPlot

此時(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"))
VlnPlot
# you can plot raw counts as well
VlnPlot(pbmc, features = c("NKG7", "PF4"), slot = "counts", log = TRUE)
VlnPlot
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP", 
    "CD8A"))
FeaturePlot

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()
DoHeatmap

#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()
DimPlot
saveRDS(pbmc, file = "../output/pbmc3k_final.rds")

參考:
Seurat - Guided Clustering Tutorial, Compiled: April 17, 2020
Getting started with Seurat

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蟹漓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子源内,更是在濱河造成了極大的恐慌葡粒,老刑警劉巖份殿,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嗽交,居然都是意外死亡卿嘲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門夫壁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拾枣,“玉大人,你說我怎么就攤上這事盒让∶贩簦” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵邑茄,是天一觀的道長姨蝴。 經(jīng)常有香客問我,道長肺缕,這世上最難降的妖魔是什么左医? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮同木,結(jié)果婚禮上浮梢,老公的妹妹穿的比我還像新娘。我一直安慰自己彤路,他們只是感情好秕硝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斩萌,像睡著了一般缝裤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颊郎,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天憋飞,我揣著相機(jī)與錄音,去河邊找鬼姆吭。 笑死榛做,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的内狸。 我是一名探鬼主播检眯,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼昆淡!你這毒婦竟也來了锰瘸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤昂灵,失蹤者是張志新(化名)和其女友劉穎避凝,沒想到半個(gè)月后舞萄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡管削,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年倒脓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片含思。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖饲做,靈堂內(nèi)的尸體忽然破棺而出遏弱,到底是詐尸還是另有隱情艇炎,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布腾窝,位于F島的核電站居砖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏奏候。R本人自食惡果不足惜循集,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔗草。 院中可真熱鬧,春花似錦镶柱、人聲如沸模叙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渠啊。三九已至,卻和暖如春替蛉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盗迟。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工罚缕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邮弹。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓腌乡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侣签。 傳聞我的和親對(duì)象是個(gè)殘疾皇子急迂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345