
jamesbang
V1
2022/10/19阅读:50主题:雁栖湖
🤫 Seurat | 强烈建议收藏的单细胞分析标准流程(经典归一化与降维方法)(二)
1写在前面
为了做进一步的分析,我们需要对数据进行归一化(Normalization
)和标准化(Z-score
)。😘
这里我们介绍一下经典的Normalization
方法,这个方法假设所有细胞均含有10,000
个UMI
。🐶
2用到的包
rm(list = ls())
library(Seurat)
library(tidyverse)
library(SingleR)
library(celldex)
library(RColorBrewer)
library(SingleCellExperiment)
3示例数据
这里我们还是使用之前建好的srat
文件,我之前保存成了.Rdata
,这里就直接加载了。✌️
load("./srat.Rdata")
srat

4归一化
Note! 这里做的是log-normalization
, 大家不要重复取log
。🥰
srat <- NormalizeData(srat)

5高变基因
5.1 计算高变基因
找一下高变基因吧,这里补充一下可用的方法:👇
-
vst
-
mvp
-
disp
srat <- FindVariableFeatures(srat, selection.method = "vst", nfeatures = 2000)

5.2 Top 10
我们取一下高变基因的top10
,在后面的可视化中标注出来。
top10 <- head(VariableFeatures(srat), 10)
top10

5.3 可视化
plot1 <- VariableFeaturePlot(srat)
LabelPoints(plot = plot1,
points = top10,
repel = TRUE,
xnudge = 0,
ynudge = 0)

6标准化
细心的小伙伴肯定发现了gene
的表达差异较大,这样做出来的图就会不好看
。😤
我们在这里接着做一个Z-score
, 将Normalization
后的数据转为均值
为0
,标准差
为1
的数据。🧐
all.genes <- rownames(srat)
srat <- ScaleData(srat, features = all.genes)

7主成分分析
大家可以通过features
参数设置纳入PCA
的基因数。🌟
这里我们取前2000
个高变基因进行分析。
srat <- RunPCA(srat,
features = VariableFeatures(object = srat))
## 可视化
VizDimLoadings(srat, dims = 1:9,
reduction = "pca") +
theme(axis.text=element_text(size=5),
axis.title=element_text(size=8,face="bold"))

当然你也可以用热图的形式来展示结果。😁
DimHeatmap(srat, dims = 1:6, nfeatures = 20, cells = 500, balanced = T)

8选取多少PC才合适?
我们先看一下UMAP
图。👀
DimPlot(srat) # umap, then tsne, then pca

通过ElbowPlot
我们可以发现,在10
的地方有明显的下降。🤟
ElbowPlot(srat)

9聚类
9.1 开始聚类
之前确定了10
个PCs
最合适,这里我们将PC1:10
纳入,进行聚类。
这一步非常重要,因为后面marker
的选择要基于聚类的结果。 💪
srat <- FindNeighbors(srat, dims = 1:10)
srat <- FindClusters(srat, resolution = 0.8)

UMAP
降维。🐹
srat <- RunUMAP(srat, dims = 1:10, verbose = T)

这个时候我们就有一个新的clusters
信息了,看一下吧。🙊
table(srat@meta.data$seurat_clusters)

9.2 聚类结果可视化
1️⃣ 质控前~
DimPlot(srat,label.size = 4,repel = T,label = T)

2️⃣ 质控后~
srat <- subset(srat, subset = QC == 'Pass')
DimPlot(srat,label.size = 4,repel = T,label = T)

9.3 聚类效果简单评价
这里给大家提供一个简单的评价方法,假设我们已知: 👇
树突状细胞
(DCs
)的marker
是:LILRA4
和TPM2
;血小板
(platelets
)的marker
是:PPBP
和GP1BB
。
我们看下这些marker
是否都显著表达在一类细胞群中。🤨
FeaturePlot(srat, features = c("LILRA4", "TPM2", "PPBP", "GP1BB"))


需要示例数据的小伙伴,在公众号回复
Seurat
获取吧!点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰
作者介绍

jamesbang
V1
wx🔍: Grassssss 卷起来了