前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用ggplot来画基因富集气泡图

用ggplot来画基因富集气泡图

作者头像
生信编程日常
发布2020-04-01 15:36:30
3.5K0
发布2020-04-01 15:36:30
举报

​用DAVID或者clusterprofiler 做基因富集的常常需要挑选一下想展示的通路或者排一下通路的顺序,而且,clusterprofiler展示的顺序有时候跟输入的顺序不一样。因此,用ggplot可以方便对各种来源的富集结果实现气泡图。

如用clusterprofiler做富集

代码语言:javascript
复制
#GeneSymbol为输入的基因集
toENTREZID = bitr(GeneSymbol,fromType = "SYMBOL",toType = "ENTREZID",OrgDb = "org.Mm.eg.db")
goBP = enrichGO(OrgDb="org.Mm.eg.db",gene = as.vector(toENTREZID$ENTREZID),ont = "BP", pvalueCutoff = 0.05, readable= TRUE)
dotplot(goBP,showCategory=10)+scale_color_gradient(low = "#132B43", high = "#56B1F7")
head(goBP@result)

image

image

我们再用ggplot画气泡图,结果看起来和clusterprofiler画的差不多,不一样的地方在于clusterproliler的x轴默认的gene ratio,而ggplot我们用的是count,这个可以自己选择,再就是ggplot我们可以用level调节go term的顺序,如最上面两个红框里相同基因数但是pvalue不同的go term 在ggplot里面符合上面表中的顺序,而clusterprofiler是相反的

代码语言:javascript
复制
#goBP为clusterprofiler的富集结果,取前10个来画图。
goinput<-goBP@result[1:10,]
head(goinput)
代码语言:javascript
复制
#使画出go term的顺序与输入的一致
goinput$Description<-factor(goinput$Description,levels = rev(goinput$Description))
#reorder使纵轴按照go term 和count排序
​goinput$Description<-factor(goinput$Description,levels = rev(goinput$Description))
ggplot(goinput,aes(x = Count, y =reorder(Description,Count)))+ 
  geom_point(aes(size=Count,color=p.adjust))+
  scale_colour_gradient(low="#132B43",high="#56B1F7")+
  labs(
       color=expression(p.adjust),
       size=" Count Number",
       x="Gene Count"
      )+
  theme_bw()+
  theme(
    axis.text.y = element_text(size = rel(1.8)),
    axis.title.x = element_text(size=rel(1.8)),
    axis.title.y = element_blank()
  )+ scale_size(range=c(5, 10))
​
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档