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

R语言ggalluvium绘制生物通路河流图缺失连接流如何解决

问题原因

连接流缺失是因为aes()中alluvium参数映射错误:alluvium用于标记哪些行属于同一个冲积流,你将其绑定到pval后,同一通路两个阶段的p值不同,ggalluvium无法识别为同一个流,因此不会生成跨阶段连接。

修正后代码(保留y轴为突变基因数)

library(ggalluvial)
library(ggplot2)

pathway <- c('p1','p1','p2','p2')
disease <- c('Stage-2','Stage-1','Stage-2','Stage-1')
pval <- c(0.01,0.8,0.7,0.02)
ngenes <- c(9,12,5,10)
df <- data.frame(pathway, disease, pval,ngenes)

ggplot(df,
       aes(x = disease, stratum = pathway, alluvium = pathway,
           y = ngenes,
           fill = pathway, label = pathway)) +
  scale_x_discrete(expand = c(.1, .1)) +
  geom_flow() +
  geom_stratum(alpha = .5) +
  geom_text(stat = "stratum", size = 3) +
  theme(legend.position = "none") +
  ggtitle("River Plot")

若需流宽度对应p值显著性(p越小宽度越大)

将y轴映射改为-log10(pval)即可,p值越小显著性越高,对应流宽度越大,符合生物信息学可视化惯例:

ggplot(df,
       aes(x = disease, stratum = pathway, alluvium = pathway,
           y = -log10(pval),
           fill = pathway, label = pathway)) +
  scale_x_discrete(expand = c(.1, .1)) +
  geom_flow() +
  geom_stratum(alpha = .5) +
  geom_text(stat = "stratum", size = 3) +
  ylab("-log10(P value)") +
  theme(legend.position = "none") +
  ggtitle("River Plot")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:48:04