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
相关产品推荐
相关产品推荐

