单细胞小提琴图+箱型图

2022-09-21 11:38:09 浏览数 (3)

做单细胞数据分析的时候,我们经常会用小提琴图来展示一些marker在不同细胞亚群中的表达情况。R的Seurat包中就有一个函数叫VlnPlot,专门用来画小提琴图的。

我们来看看这个函数的参数和使用方法

我们用Seurat单细胞绘图函数DimHeatmap中的数据来举个例子。

我们看CD3E这个基因在不同细胞亚群中的表达情况,先用默认参数看看效果

代码语言:javascript复制
load("scRNA.rds")
library(Seurat)
library(ggplot2)
VlnPlot(scRNA, features = "CD3E")

默认情况下,会同时画出小提琴图和散点图,还有右侧的图注。

如果不想要右侧的图注,可以使用NoLegend()

代码语言:javascript复制
VlnPlot(scRNA, features = "CD3E") NoLegend()

如果散点图也不想要,这个时候我们就要去研究一下VlnPlot这个函数的参数了,

代码语言:javascript复制
pt.size  
Point size for geom_violin

我们发现pt.size是控制点大小的,因此我们可以把点的大小设置成0试试

代码语言:javascript复制
VlnPlot(scRNA, features = "CD3E",pt.size = 0) NoLegend()

看样子是work的

可能有些人想同时把箱型图也画出来,这样能看出各个分位数以及中值的情况。其实也很容易,VlnPlot这个函数实际上是基于ggplot写的,所以可以通过geom_boxplot()来添加箱型图

代码语言:javascript复制
VlnPlot(scRNA, features = "CD3E",pt.size=0) geom_boxplot() NoLegend()

效果如下

箱体的宽度和颜色有点奇怪,接下来我们来微调一下

代码语言:javascript复制
VlnPlot(scRNA, features = "CD3E",pt.size=0) 
  #width控制箱体宽度,col控制边框颜色,fill控制填充颜色
  geom_boxplot(width=.2,col="black",fill="white")  
  NoLegend()

大功告成

0 人点赞