生物通路的 RiverPlot
RiverPlot for biological Pathways
我正在尝试绘制河流图,以显示路径如何根据其 p 值从疾病第 1 阶段到第 2 阶段变得重要。我想根据同一路径的两个阶段之间的 p 值显示 riverplot 流的宽度。例如,p1 abd p2 是两条通路,随着疾病从第 1 阶段进展到第 2 阶段,p1 变得越来越重要(p 值从 0.8 变为 0.02)。通路 p1 在 stage-1 中有 12 个突变基因,在 stage-2 中有 9 个突变基因。类似地,通路 p2 在阶段 1 中显着,但在阶段 2 中不显着。通路 p2 在第 1 阶段有 10 个突变基因,在第 2 阶段有 5 个突变基因。此信息显示在下面的数据框中:
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)
现在我正在用ggalluvium
画河图。代码如下:
library(ggalluvial)
ggplot(df,
aes(x = disease, stratum = pathway, alluvium = pval,
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")
我得到的情节是:
这不是我所期待的。缺少流(stage-1 和 stage-2 之间的连接)(其宽度基于 p 值,即对于 p1,stage-1 的宽度较高,stage-2(或其反向)的宽度较小)。谁能建议如何向此河图添加流量。
我错过了关于 riverplot 的重要信息,即特征之间的重要性。在我原来的数据框中,我没有正确提供信息。所以我做了以下更改:
pathway <- c('p1','p1','p2','p2')
disease <- c('Stage-2','Stage-1','Stage-2','Stage-1')
sub <- c(2,2,1,1)
pval <- c(0.01,0.8,0.7,0.02)
df <- data.frame(pathway, disease, pval,sub)
library(ggalluvial)
ggplot(df,
aes(x = disease, stratum = pathway, alluvium = sub,
y = pval,
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")
通过上面的代码,我得到了下图:
这正是我要找的。路径 p1 在从 stage-1 到 stage-2 的过程中变得越来越重要,在 stage-1 更宽,并且随着它在 stage-2 变得更加重要而宽度越来越小。对于通路 p2 可以解释相同的信息。
我正在尝试绘制河流图,以显示路径如何根据其 p 值从疾病第 1 阶段到第 2 阶段变得重要。我想根据同一路径的两个阶段之间的 p 值显示 riverplot 流的宽度。例如,p1 abd p2 是两条通路,随着疾病从第 1 阶段进展到第 2 阶段,p1 变得越来越重要(p 值从 0.8 变为 0.02)。通路 p1 在 stage-1 中有 12 个突变基因,在 stage-2 中有 9 个突变基因。类似地,通路 p2 在阶段 1 中显着,但在阶段 2 中不显着。通路 p2 在第 1 阶段有 10 个突变基因,在第 2 阶段有 5 个突变基因。此信息显示在下面的数据框中:
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)
现在我正在用ggalluvium
画河图。代码如下:
library(ggalluvial)
ggplot(df,
aes(x = disease, stratum = pathway, alluvium = pval,
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")
我得到的情节是:
这不是我所期待的。缺少流(stage-1 和 stage-2 之间的连接)(其宽度基于 p 值,即对于 p1,stage-1 的宽度较高,stage-2(或其反向)的宽度较小)。谁能建议如何向此河图添加流量。
我错过了关于 riverplot 的重要信息,即特征之间的重要性。在我原来的数据框中,我没有正确提供信息。所以我做了以下更改:
pathway <- c('p1','p1','p2','p2')
disease <- c('Stage-2','Stage-1','Stage-2','Stage-1')
sub <- c(2,2,1,1)
pval <- c(0.01,0.8,0.7,0.02)
df <- data.frame(pathway, disease, pval,sub)
library(ggalluvial)
ggplot(df,
aes(x = disease, stratum = pathway, alluvium = sub,
y = pval,
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")
通过上面的代码,我得到了下图:
这正是我要找的。路径 p1 在从 stage-1 到 stage-2 的过程中变得越来越重要,在 stage-1 更宽,并且随着它在 stage-2 变得更加重要而宽度越来越小。对于通路 p2 可以解释相同的信息。