一、绘制每个群标记基因
利用 FindMarkers 命令,可以找到各个细胞类型中与其他类别的差异表达基因,作为该细胞类型的生物学标记基因。其中 ident.1 参数设置待分析的细胞类别,min.pct 表示该基因表达数目占该类细胞总数的比例。
代码语言:javascript复制#寻找每群标记基因
# find all markers of cluster 2
cluster2.markers <- FindMarkers(pbmc, ident.1 = 2, min.pct = 0.25)
head(cluster2.markers, n = 5)
#一次寻找每个群标记基因
# 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)
#通过test.use更换不同检测方法
cluster0.markers <- FindMarkers(pbmc, ident.1 = 0, logfc.threshold = 0.25, test.use = "roc", only.pos = TRUE)
#输出每个cluster中前三个基因
top3 <- pbmc.markers %>% group_by(cluster) %>% slice_max(n = 3, order_by = avg_log2FC)
#方法二
top3 <- pbmc.markers %>% group_by(cluster) %>% top_n(n=3,wt=avg_log2FC)
top3
对每群标记基因进行绘图,features 指定基因。
二、小提琴图
小提琴图可以反映亚群中各个细胞的标记基因表达量分布,常用于细胞类型的验证;但是对于低表达比例的标记基因不敏感。
代码语言:javascript复制#1 小提琴图
VlnPlot(pbmc, features = top3$gene[1:3])
#使用原始count数
VlnPlot(pbmc,features = c("NKG7","PF4"),slot = "counts",log = TRUE)
markgene 在不同 cluster 中分布
三、FeaturePlot
选择每群代表基因绘图,这种展示方法把基因表达量映射到 UMAP 结果中,同样可以直观地看到基因表达的特异性。
基因映射图可以直观的表达标记基因在不同细胞中的分布情况,但是一张图里只能展示一个基因,检测多个基因时比较复杂,缺乏呈现对因素结果的能力,该图更适合用于展示基因的分布而非亚群细胞鉴定。
代码语言:javascript复制#2 FeaturePlot,选择每群代表基因
FeaturePlot(pbmc, features = c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP","CD8A"))
markgene 映射在 umap 图中
四、热图
热图综合反映基因表达水平,通过明暗变化展示标记基因在不同细胞亚群中的分布及细胞亚群中表达标记基因的细胞数量,但是绘制热图之前对数据进行了均一化处理,是敏感变化不明显。这样对于低表达的基因缺乏辨识度。
markgene 分布热图
代码语言:javascript复制#4 其他绘图函数
top1 <- c("MS4A1", "GNLY", "CD3E", "CD14", "FCER1A", "FCGR3A", "LYZ", "PPBP","CD8A")
RidgePlot(pbmc,features = top1)
colnames(pbmc)[c(1,2)]
RidgePlot(pbmc,features = top1[3]) #山峦图
CellScatter(pbmc,cell1 = "AAACATACAACCAC-1",cell2="AAACATTGAGCTAC-1",features = top3$gene)
DotPlot(pbmc,features = top3$gene) NoLegend()
五、定义细胞类型
前面绘图中每个 cluster 只展示出数字 ,通过对比我们鉴定的 marker gene 与已发表的细胞类型特征的基因表 marker,可以定义我们划分出来的细胞类群。最后,将定义好的细胞类群加上名称。
每个 cluster 标记基因与细胞类型
Cluster ID | Markers | Cell Type |
---|---|---|
0 | IL7R, CCR7 | Naive CD4 T |
1 | CD14, LYZ | CD14 Mono |
2 | IL7R, S100A4 | Memory CD4 |
3 | MS4A1 | B |
4 | CD8A | CD8 T |
5 | FCGR3A, MS4A7 | FCGR3A Mono |
6 | GNLY, NKG7 | NK |
7 | FCER1A, CST3 | DC |
8 | PPBP | Platelet |
该案例中根据每个 cluster 中 markgene,可以很容易鉴定出细胞类型,如果是其他数据,则需要通过额外方式,进行细胞类型鉴定。
代码语言:javascript复制#下面这个案例只适用于pbmc3k,其余两个案例需要去鉴定细胞类型
new.cluster.ids <- c("Naive CD4 T", "CD14 Mono", "Memory CD4 T", "B", "CD8 T", "FCGR3A Mono","NK", "DC")
# "Platelet")
names(new.cluster.ids)
names(new.cluster.ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc,new.cluster.ids)
levels(pbmc)
#重新绘图
DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) NoLegend()
将细胞类型标记在图中
六、软件版本信息
这一步是每次我们分析后可以加上,本次分析用到的包以及版本信息,方便我们写文章时查阅。
代码语言:javascript复制#显示软件版本
sessionInfo()
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
代码语言:javascript复制sx.voiceclouds.cn
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。