You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中为DESeq2分析的柱状图添加p.adj值?

为DESeq2基因计数图添加显著性标记的简便方法

问题描述

已完成DESeq2分析,想要绘制两组特定基因计数对比的箱线图并添加统计显著性。使用plotCounts()可生成图表,但无法添加DESeq2计算得到的p.adj值。当前代码如下:

#Retrieving information for specific gene
PDCD1 <- subset(results_dds, row.names(results_dds) == "PDCD1")
PDCD1_pvalue <- PDCD1$padj

#Capture count data from plotCounts
PDCD1_data <- plotCounts(dds, gene="PDCD1", intgroup=c("subtype_group"), returnData = TRUE)

#Graph
ggplot(PDCD1_data, aes(x = subtype_group, y = count)) + 
  geom_col() +
  theme_bw() +
  ggtitle("PDCD1") +
  theme(plot.title = element_text(hjust = 0.5)) +
#?

作为R新手,使用stat_pvalue_manual函数时出现错误:"data should contain group1 and group2 columns",求简便方法为计数图添加DESeq2得到的显著性。

解决方案

方法一:手动添加显著性文本(最简便,适合两组对比)

两组对比场景下,直接用annotate()把DESeq2计算好的校正p值标在图上即可,无需复杂函数。

# 格式化p值为易读格式,比如保留2位有效数字
PDCD1_padj_label <- paste("校正p值 =", signif(PDCD1_pvalue, 2))

ggplot(PDCD1_data, aes(x = subtype_group, y = count)) + 
  geom_boxplot() + # 推荐用箱线图展示数据分布,替换柱形图可换回geom_col()
  theme_bw() +
  ggtitle("PDCD1") +
  theme(plot.title = element_text(hjust = 0.5)) +
  # 在两组中间上方标注p值,y值可根据数据最大值调整
  annotate("text", x = 1.5, y = max(PDCD1_data$count)*1.1, 
           label = PDCD1_padj_label, size = 4)

方法二:正确使用stat_pvalue_manual(适合多组/连线标注)

报错原因是stat_pvalue_manual需要特定结构的数据框,包含group1、group2、p.adj和标注位置列,手动构建该数据框即可解决:

# 先安装并加载ggsignif包(如果未安装)
# install.packages("ggsignif")
library(ggsignif)

# 构建显著性标记所需的数据框
sig_df <- data.frame(
  group1 = levels(PDCD1_data$subtype_group)[1], # 第一组名称
  group2 = levels(PDCD1_data$subtype_group)[2], # 第二组名称
  p.adj = PDCD1_pvalue,
  y.position = max(PDCD1_data$count)*1.1 # 标注的垂直位置
)

ggplot(PDCD1_data, aes(x = subtype_group, y = count)) + 
  geom_boxplot() +
  theme_bw() +
  ggtitle("PDCD1") +
  theme(plot.title = element_text(hjust = 0.5)) +
  # 添加带连线的显著性标注,自动格式化p值
  stat_pvalue_manual(sig_df, label = "校正p值 = {signif(p.adj, 2)}", 
                     tip.length = 0.01)

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 10:57:34