ggsignif的用法

其实这个包的用法主要是用来丰富ggplot2画图的更多美化,如果两个分组之间存在显著性不同,这个包提供一个简单的方式去标示。
比如我们想要如下的效果图:

图片.png

图上标注了每个组之间的p值,感觉很不错。这样的话我们如何实现呢?我们可以借助ggsignif包来实现它。

首先我们安装一下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()。
常用参数如下:

参数说明示范
comparisonslist,设置需要比较的组,比如list(c("a","b"),c("a","c"))
test上述统计方法,比如t.test()
test.argstest传入的参数
map_signif_level布尔值,p值直接被当作注释或者以星号替代,比如c(""=0.001,""=0.01,""=0.05)
annotations带有可选注释的字符向量,如果没有则被忽略
step_increase不同组差异标注的间隔

测试

接下来我们来测试一下

1. 测试数据集test

image

test数据集两列,一列是基因表达量,一列是分组。

image

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)

image


这里我们重点关注一下geom_signif(comparisons = compaired,step_increase = 0.1,map_signif_level = F,test = t.test)的用法
其实是在原有ggplot画图的基础上,添加了这一行语句,comparisons的设置可以根据自己感兴趣的对比组进行设置,map_signif_level则表示是否将p值直接当成注释,这个参数大家可以换一下看看效果。

我们再来一个例子

数据集是

图片.png

接下来我们来画图

library("ggsignif")
# geom_signif()
# compare_means(value ~ group, data = exprSet_L,method="wilcox.test", paired=FALSE)

my_comparisons <- list(c("T1","T2"), c("T1","T3"),c("T1", "T4"))
ggplot(exprSet_L,aes(group,value,fill=group))+
  geom_boxplot(width=0.5)+
  theme(plot.title=element_text(size = 25),axis.text.x=element_text(size=25,angle=0),axis.text.y=element_text(size=25),axis.title.x=element_text(size = 25),axis.title.y=element_text(size = 25))+
  labs(x=gene_name, y= 'Expression')+
  geom_signif(comparisons = my_comparisons,step_increase = 0.1,map_signif_level = F,test = t.test,size=2,textsize = 6)
# theme_set(theme_set(theme_bw(base_size=22)))
 # wilcox.test

  # 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, ...)

图片.png


是不是觉得这样的图瞬间高大上了一点呢?
其实还有很多新奇的画法,大家不妨尝试一下。

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值