在堆积条形图中包括 p 值梯度

我有如下输入:

样本输入

Pathways    Genecount_T1    fold Enrichment_T1  P-value_T1  Genecount_T2    fold Enrichment_T1  P-value_T2
Ubiquitin proteasome pathway (P00060)   44  3.04    4.87E-08    43  2.78    1.01E-06
p38 MAPK pathway (P05918)   22  2.47    2.35E-02    24  2.52    8.94E-03
Ras Pathway (P04393)    37  2.27    1.06E-03    38  2.18    1.92E-03
PDGF signaling pathway (P00047) 64  1.99    6.40E-05    70  2.04    8.26E-06

我必须从列中构建一个堆叠的条形图,如图 2 所示。我需要包含一个颜色条,在条形图中显示 p 值,而不是如图 1 所示的纯色。 在此处输入图片说明

在此处输入图片说明

如何使用 R 做到这一点?

笨狼
library(ggplot2)
# your table
tab <- structure(list(Pathways = c("Ubiquitin proteasome pathway (P00060)", 
"p38 MAPK pathway (P05918)", "Ras Pathway (P04393)", "PDGF signaling pathway (P00047)"
), Genecount_T1 = c(44L, 22L, 37L, 64L), fold.Enrichment_T1 = c(3.04, 
2.47, 2.27, 1.99), P.value_T1 = c(4.87e-08, 0.0235, 0.00106, 
6.4e-05), Genecount_T2 = c(43L, 24L, 38L, 70L), fold.Enrichment_T2 = c(2.78, 
2.52, 2.18, 2.04), P.value_T2 = c(1.01e-06, 0.00894, 0.00192, 
8.26e-06)), class = "data.frame", row.names = c(NA, -4L))

# very crude way to put data into long format

COLS = c("Pathways","Genecount","fold.Enrichment","P.value")
df1 = data.frame(tab[,1:4])
colnames(df1) = COLS
df1$grp = "T1"
df2 = data.frame(tab[,c(1,5:7)])
colnames(df2) = COLS
df2$grp = "T2"
df = rbind(df1,df2)

你可以看看长格式:

head(df)

                               Pathways Genecount fold.Enrichment  P.value grp
1 Ubiquitin proteasome pathway (P00060)        44            3.04 4.87e-08  T1
2             p38 MAPK pathway (P05918)        22            2.47 2.35e-02  T1
3                  Ras Pathway (P04393)        37            2.27 1.06e-03  T1
4       PDGF signaling pathway (P00047)        64            1.99 6.40e-05  T1
5 Ubiquitin proteasome pathway (P00060)        43            2.78 1.01e-06  T2
6             p38 MAPK pathway (P05918)        24            2.52 8.94e-03  T2

现在我们用 ggplot 绘制它,注意颜色条是 log10 转换的:

ggplot(df,aes(x=Pathways,y=Genecount,fill=-log10(P.value),group=grp)) + 
geom_col(position="dodge",width=0.4,size=0.7) +
 coord_flip() + scale_fill_viridis(trans='log10',option="B")

在此处输入图片说明

在您的问题中,我猜您想要并排和渐变条形图的组合,但是您现在如何区分这两个组?不太容易通过不同的填充渐变着色或添加纹理。我有以下两个建议:

ggplot(df,aes(x=Pathways,y=Genecount,linetype=grp,fill=-log10(P.value),group=grp)) + 
geom_col(position="dodge",width=0.4,size=0.7,col="black") +
 coord_flip() + scale_fill_viridis(trans='log10',option="B")

使用不同的线路

或方面:

ggplot(df,aes(x=grp,y=Genecount,fill=-log10(P.value))) + 
geom_col(position="dodge",width=0.4) +
coord_flip() + scale_fill_viridis(trans='log10',option="B")+
facet_grid(Pathways~.)+
theme(strip.text.y = element_text(angle = 0))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章