做单细胞数据分析的时候,我们经常会用小提琴图来展示一些marker在不同细胞亚群中的表达情况。R的Seurat包中就有一个函数叫VlnPlot,专门用来画小提琴图的。
我们来看看这个函数的参数和使用方法
我们用Seurat单细胞绘图函数DimHeatmap中的数据来举个例子。
我们看CD3E这个基因在不同细胞亚群中的表达情况,先用默认参数看看效果
load("scRNA.rds")
library(Seurat)
library(ggplot2)
VlnPlot(scRNA, features = "CD3E")
默认情况下,会同时画出小提琴图和散点图,还有右侧的图注。
如果不想要右侧的图注,可以使用NoLegend()
VlnPlot(scRNA, features = "CD3E")+NoLegend()
如果散点图也不想要,这个时候我们就要去研究一下VlnPlot这个函数的参数了,
pt.size
Point size for geom_violin
我们发现pt.size是控制点大小的,因此我们可以把点的大小设置成0试试
VlnPlot(scRNA, features = "CD3E",pt.size = 0)+NoLegend()
看样子是work的
可能有些人想同时把箱型图也画出来,这样能看出各个分位数以及中值的情况。其实也很容易,VlnPlot这个函数实际上是基于ggplot写的,所以可以通过geom_boxplot()来添加箱型图
VlnPlot(scRNA, features = "CD3E",pt.size=0)+geom_boxplot()+NoLegend()
效果如下
箱体的宽度和颜色有点奇怪,接下来我们来微调一下
VlnPlot(scRNA, features = "CD3E",pt.size=0)+
#width控制箱体宽度,col控制边框颜色,fill控制填充颜色
geom_boxplot(width=.2,col="black",fill="white")+
NoLegend()
大功告成
参考下文获取scRNA.rds文件