箱線圖添加顯著性差異標識
具有顯著性標注的箱線圖
有時候我們會看到如上圖片,覺得挺好贴唇,但是如何實現(xiàn)呢贰锁?沒有做的的時候,覺得挺難滤蝠,但是真要做才發(fā)現(xiàn)沒有那么困難?
其實做這樣的圖授嘀,目前R比較常用的包有兩個物咳,分別為:ggsignif和ggpubr,兩者的用法大體差不多蹄皱,有一些細微從差別览闰,但是結(jié)果幾乎一樣芯肤。這里我用的是ggsignif,下面將介紹ggsignif的用法压鉴。
ggpubr示范結(jié)果
ggsignif安裝:
兩種安裝方式:
- install.packages("ggsignif")
- devtools::install_github("const-ae/ggsignif")
統(tǒng)計方法與參數(shù)
統(tǒng)計方法
一般根據(jù)數(shù)據(jù)是否符合正態(tài)分布崖咨,選擇合適的統(tǒng)計方法:
統(tǒng)計方法 | 適用情況 |
---|---|
t.test() | 比較兩組(參數(shù)) |
wilcox.test() | 比較兩組(非參數(shù)) |
aov()或anova() | 比較多組(參數(shù)) |
kruskal.test() | 比較多組(非參數(shù)) |
參數(shù)
ggsignif包主要函數(shù)為:geom_signif()和stat_signif(),常用geom_signif()油吭。
常用參數(shù)如下:
參數(shù) | 說明示范 |
---|---|
comparisons | list击蹲,設(shè)置需要比較的組,比如list(c("a","b"),c("a","c")) |
test | 上述統(tǒng)計方法婉宰,比如t.test() |
test.args | test傳入的參數(shù) |
map_signif_level | 布爾值歌豺,p值直接被當作注釋或者以星號替代,比如c(""=0.001,""=0.01,""=0.05) |
annotations | 帶有可選注釋的字符向量心包,如果沒有則被忽略 |
step_increase | 不同組差異標注的間隔 |
所有參數(shù)
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. 測試數(shù)據(jù)集test
test測試數(shù)據(jù)集
test數(shù)據(jù)集兩列类咧,一列是基因表達量,一列是分組蟹腾。
test數(shù)據(jù)的group列
2. 差異分析分組
compaired <- list(c("a", "b"),c("a","c"),c("a","d"))
3. 畫圖
ggplot(test,aes(group,exp,fill=group))+geom_boxplot(width=0.5)+theme(plot.title=element_text(size = 25),axis.text.x=element_text(size=15,angle=0),axis.text.y=element_text(size=15),axis.title.x=element_text(size = 23),axis.title.y=element_text(size = 23))+labs(x='Gene', y= 'Expression')+geom_signif(comparisons = compaired,step_increase = 0.1,map_signif_level = F,test = t.test)
結(jié)果圖