前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个通路居然在上下调基因集里面都富集到了

一个通路居然在上下调基因集里面都富集到了

作者头像
生信技能树
发布2022-01-10 08:43:52
2.3K0
发布2022-01-10 08:43:52
举报
文章被收录于专栏:生信技能树

有粉丝提问:用ggplot2画双向条图的时候发现有重复行结果被忽略排序标记成一个条,希望可以让它们按顺序分别显示在上调和下调通路的正常位置,如下所示:

有重复行结果被忽略排序标记成一个条

做一个测试数据

代码如下所示:

代码语言:javascript
复制
set.seed(123456)
df=data.frame(
  pathway=c(sample(LETTERS,10),
            sample(LETTERS,10)),
  pvalue= abs(rnorm(20))/100,
  group = rep(c('up','down'),each=10)
)
table(df$pathway)

这个代码技术含量非常高,大家如果提问绘图相关的,一定要学会生成测试数据哦。有了测试数据,大家就很容易去帮助你。

默认的绘图

在我们给大家的GEO数据挖掘课程里面经常出现的,系列目录在:

代码如下所示:

代码语言:javascript
复制
library(ggplot2)
library(ggsci)
dat=df
dat$group = ifelse(dat$group =='up',1,-1)
dat$pvalue = -log10(dat$pvalue)
dat$pvalue <- dat$pvalue*dat$group 
dat=dat[order(dat$pvalue,decreasing = F),]

p_kegg<- ggplot(dat, aes(x=reorder(pathway,order(pvalue, decreasing = F)),
                         y=pvalue, 
                         fill=group)) + 
  geom_bar(stat="identity",
           width=0.8) + 
  scale_fill_gradient(low="#3685af",high="#af4236",guide = FALSE) + 
  scale_x_discrete(name ="Pathway names") +
  scale_y_continuous(name ="-log10Pvalue",
                     expand = c(0,0)) +
  coord_flip() + 
  theme(axis.text=element_text(face = "bold",size = 15),
        axis.title = element_text(face = 'bold',size = 15),
        plot.title = element_text(size = 20,hjust = 0.3),
        legend.position = "top",
        panel.grid = element_line(colour = 'white'))+
  ggtitle("The most enriched KEGG") 
p_kegg

确实会出现部分通路出现在上下调两个分组,就是C,M,F这3个 :

确实会出现部分通路出现在上下调两个分组

修正后的绘图

因为pathway确实有重复,所以需要修改pathway的名字,但是在图里面却仍然是看起来是没有修改的样子,代码如下所示:

代码语言:javascript
复制
library(ggplot2)
library(ggsci)
df[df$group %in% "down",]$pvalue <- df[df$group %in% "down",]$pvalue*-1
# 调整y轴
df[duplicated(df$pathway),"pathway"] <- paste0(df[duplicated(df$pathway),"pathway"],".1")
# 设置因子
df$pathway <- factor(df$pathway,levels = df[order(df$pvalue,decreasing = T),"pathway"])
# 更改y轴坐标
# 由于我们之前添加了.1 ,所以需要改回来
name.y <- substr(df$pathway,1,1)
names(name.y) <- df$pathway

ggplot(df,aes(x=pathway,y=pvalue, fill=factor(group)))+geom_bar(stat="identity")+coord_flip( )+
  scale_x_discrete(
    "pathway",
    labels = name.y)+
  scale_fill_d3()

这个代码来自于我们《生信技能树》的单细胞数据分析工程师 林枫,欢迎大家前来咨询我们团队的单细胞数据分析服务哦

结果如下所示:

可以看到前面的C,M,F这3个 是叠加的,但是现在是分开在了上下两个差异基因分组的通路富集里面。

发起一个讨论

这样的在上下调基因集里面都富集到了的通路,大家会如何解释?另外,广大的粉丝朋友们是不是可以 推陈出新,给出来其它解决方案?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 做一个测试数据
  • 默认的绘图
  • 修正后的绘图
  • 发起一个讨论
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档