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

如何用ggrepel整理火山图差异基因标签?实现蓝标靠左红标靠右

解决火山图标签混乱的方案

要实现下调基因标签固定在左侧、上调基因标签固定在右侧,核心是按差异分组分别设置标签偏移参数,而非使用统一的偏移值。以下是具体修改方案:

关键修改思路

  1. 将上调、下调基因的标签绘制分开处理,分别给两组设置向左/向右的定向偏移
  2. 过滤掉无差异基因的标签,避免干扰整体布局

修改后的完整代码

resLFC <- read.delim("resLFC f2 vs f1 chronic.txt")
ggplot(data= resLFC, aes(x= log2FoldChange, y= -log10(padj), col=diffs))+
  coord_cartesian(xlim = c(-20,20), ylim= c(0,80))+
  geom_vline(xintercept = c(-1, 1), col="blue", linetype="dashed")+
  geom_hline(yintercept = 4, col= "red", linetype="dashed") +
  geom_point()+
  scale_color_manual(values = c("dodgerblue1", "gray", "deeppink1"),
                     labels = c("Downregulated", "Not significant", "Upregulated"))+
  labs(color = "x",
       x= expression("log"[2]*"FC"), y= expression("-log"[10]*"p-value"))+
  # 处理下调基因标签:向左偏移
  geom_label_repel(data = subset(resLFC, diffs == "Downregulated"),
                   aes(label = delabel),
                   nudge_x = -6,  # 偏移量可根据x轴范围调整,比如-8/-10
                   nudge_y = 0,
                   force = 12,
                   max.iter = 20000,
                   max.segment.length = 0.01,
                   max.overlaps = 1000,
                   color = "dodgerblue1") +
  # 处理上调基因标签:向右偏移
  geom_label_repel(data = subset(resLFC, diffs == "Upregulated"),
                   aes(label = delabel),
                   nudge_x = 6,  # 偏移量可根据x轴范围调整,比如8/10
                   nudge_y = 0,
                   force = 12,
                   max.iter = 20000,
                   max.segment.length = 0.01,
                   max.overlaps = 1000,
                   color = "deeppink1") +
  theme(legend.position = c(0.88, 0.88))

额外优化建议

  • 若标签仍拥挤:
    • 增大nudge_x的绝对值,让标签离数据点更远
    • 缩小标签字体,添加size = 2.5参数
    • 只标记显著性最高的基因,比如subset(resLFC, diffs == "Downregulated" & padj < 1e-15)
  • 若连接线段过长,可调整max.segment.length为更大的值(比如0.5),让线段布局更灵活

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:44:51