单细胞绘图系列:
- Seurat绘图函数总结
- 使用ggplot2优化Seurat绘图
在读Nat Med一篇文献A single-cell atlas of the peripheral immune response in patients with severe COVID-19的时候发现这篇文献里所有的点图都是带聚类的(如下),看了一下method说是使用FlexDotPlot做的,觉得挺有意思,于是来学习一下这个R包。
1. FlexDotPlot的说明文献
DotPlot其实就是一个改进的热图,只是将热图中的一个个格子换成了点。除了使用点的颜色深浅代表表达量以外,点的大小也可以用于展示其他定量的信息如单细胞数据中表达某基因的细胞比例。除此之外,还可以使用点的形状等表达其他信息。FlexDotPlot就提供了这些灵活的点图绘制功能,可以用一张点图同时反应多个指标的变化。
2. 使用
2.1 安装
install.packages("devtools")
devtools::install_github("Simon-Leonard/FlexDotPlot")
library(FlexDotPlot)
2.2 演示数据准备
依然是熟悉的pbmc3k.final数据集
library(Seurat)
# library(SeuratData)
# InstallData("pbmc3k")
# data("pbmc3k")
# pbmc3k
pbmc <- readRDS("pbmc.rds")
2.3 使用Seurat包绘制点图
features <- c("LYZ", "CCL5", "IL32", "PTPRCAP", "FCGR3A", "PF4")
dp=DotPlot(pbmc, features = features) + RotatedAxis()
dp
View(dp)
Seurat绘制的点图dp是一个包含10个对象的list,FlexDotPlot输入的就是这个list。
2.4 使用FlexDotPlot包绘制点图
library(FlexDotPlot)
# Dot plot with shape type (and not size) controlled by "Percent Expressed" parameter
dot_plot(dp$data[,c(3,4,1,2,5)], size_var = "pct.exp", col_var = "avg.exp.scaled",
size_legend = "Percent Expressed", col_legend = "Average Expression",
x.lab.pos = "bottom", display_max_sizes = FALSE)
# Add dendrograms
dot_plot(dp$data[,c(3,4,1,2,5)], shape_var = "pct.exp", col_var = "avg.exp.scaled",
shape_legend = "Percent Expressed", col_legend = "Average Expression", x.lab.pos = "bottom",
dend_x_var = c("pct.exp","avg.exp.scaled"), dend_y_var = c("pct.exp","avg.exp.scaled"), hclust_method = "ward.D2")
通过对参数的调整,还可以在同一张图上对更多指标进行绘制,如下图,图的大小颜色和形状各代表了一个指标。