作者:李瑶626 | 来源:互联网 | 2023-09-23 16:44
箱线图添加显著性差异标识具有显著性标注的箱线图有时候我们会看到如上图片,觉得挺好,但是如何实现呢?没有做的的时候,觉得挺难,但是真要做才发现没有那么困难?其实做这样的图,目前R比较
箱线图添加显著性差异标识
具有显著性标注的箱线图
有时候我们会看到如上图片,觉得挺好,但是如何实现呢?没有做的的时候,觉得挺难,但是真要做才发现没有那么困难?
其实做这样的图,目前R比较常用的包有两个,分别为:ggsignif和ggpubr,两者的用法大体差不多,有一些细微从差别,但是结果几乎一样。这里我用的是ggsignif,下面将介绍ggsignif的用法。
ggpubr示范结果
ggsignif安装:
两种安装方式:
- install.packages(“ggsignif”)
- devtools::install_github(“const-ae/ggsignif”)
统计方法与参数
统计方法
一般根据数据是否符合正态分布,选择合适的统计方法:
统计方法 | 适用情况 |
---|
t.test() | 比较两组(参数) |
wilcox.test() | 比较两组(非参数) |
aov()或anova() | 比较多组(参数) |
kruskal.test() | 比较多组(非参数) |
参数
ggsignif包主要函数为:geom_signif()和stat_signif(),常用geom_signif()。
常用参数如下:
参数 | 说明示范 |
---|
comparisons | list,设置需要比较的组,比如list(c(“a”,”b”),c(“a”,”c”)) |
test | 上述统计方法,比如t.test() |
test.args | test传入的参数 |
map_signif_level | 布尔值,p值直接被当作注释或者以星号替代,比如c(““=0.001,”“=0.01,”“=0.05) |
annotations | 带有可选注释的字符向量,如果没有则被忽略 |
step_increase | 不同组差异标注的间隔 |
所有参数
geom_signif(mapping = NULL, data = NULL, stat = "signif",
position = "identity", na.rm = FALSE, show.legend = NA,
inherit.aes = TRUE, comparisOns= NULL, test = "wilcox.test",
test.args = NULL, annotatiOns= NULL, map_signif_level = FALSE,
y_position = NULL, xmin = NULL, xmax = NULL, margin_top = 0.05,
step_increase = 0, tip_length = 0.03, size = 0.5, textsize = 3.88,
family = "", vjust = 0, ...)
ggsignif使用示范:
1. 测试数据集test
test测试数据集
test数据集两列,一列是基因表达量,一列是分组。
test数据的group列
2. 差异分析分组
compaired <- list(c("a", "b"),c("a","c"),c("a","d"))
3. 画图
ggplot(test,aes(group,exp,fill=group))+geom_boxplot(Gene', y= 'Expression')+geom_signif(comparisOns= compaired,step_increase = 0.1,map_signif_level = F,test = t.test)
结果图
4. 参考博客
神奇小工具丨ggplot绘图显著性添加工具&#8212;ggsignif