用ggplot2画Pathway气泡图

成品图

KEGG Pathway富集分析气泡图
  • 横坐标为pathway impact
  • 纵坐标为pathway名称。这里是我瞎编的
  • 气泡的颜色代表p值
  • 气泡的大小代表富集到的代谢物数量。这里我是用代谢组结果做的KEGG分析,所以是代谢物数量,如果用转录组做,则是基因数量。

数据准备

Pathway_results_sample
  • 代谢组的KEGG Pathway分析我使用的是MetaboAnalyst提供的在线分析工具
  • 结果保存在名为Pathway_results_sample的EXCEL表格中
  • Hits列代表每个Pathway富集到的代谢物数量

画图思路

气泡图相对来说比较简单,画图思路如下

  • 以Impact列为横坐标,Pathway列为纵坐标画散点图
  • 将Hits列映射给点的大小
  • 将p列映射给点的颜色

R代码

#########################################
###        KEGG Pathway Plot         ### 
##         Cdudu  2020.1.23          ##
######################################

library(readxl)
library(ggplot2)
library(export) 

#图片背景设定
mytheme <- theme(axis.title=element_text(face="bold", size=10,colour = 'gray25'), #坐标轴标题
                 axis.text=element_text(face="bold", size=10,colour = 'gray25'), #坐标轴标签
                 axis.line = element_line(size=0.5, colour = 'black'), #轴线
                 panel.background = element_rect(color='black'), #绘图区边框
                 legend.key = element_blank() #关闭图例边框
                 ) 

#读入数据
KEGGPathway<-read.csv("Pathway_results_sample.csv")

#将Pathway列转化为因子型
KEGGPathway$Pathway<-factor(KEGGPathway$Pathway,levels = rev(KEGGPathway$Pathway))

#作图
p<-ggplot(KEGGPathway,aes(Impact,Pathway)) +
   geom_point(aes(fill=p,size=Hits),alpha=0.9,pch=21,colour="gray25") +  #fill对应点的填充色,colour对应点的边框色
   scale_fill_gradient(low='red', high='green') + #设定颜色的变化范围
   scale_size_area(max_size = 8, breaks=c(2,4,6,8,10)) + #设定点的大小比例和图例上显示的间隔
   labs(y='',x='Pathway impact',fill='p value',size='Metabolites number')

p+mytheme

#导出图片到PPT
graph2ppt(file="KEGGP.pptx", width=10, height=8)

Tips

  • Pathway列最好转化成因子型,否则作图时ggplot2会将所有Pathway按字母顺序重排序
  • 本图点的形状挑选了21号,pch=21,21号点的边框和内部填充可以分别赋值,其中边框用colour赋值,本图所有点的边框都设定为灰色colour="gray25",内部填充用fill赋值,本图将内部填充映射到了p值,geom_point(aes(fill=p,size=Hits))。最终呈现的效果是所有的点都有一个灰色边框,而内部填充色则根据p值变化.相对应的,在设定色阶变化时,需要使用scale_fill_gradient,而不是scale_colour_gradient
  • 也可以使用默认的点形状,区别是默认的点不存在边框。个人认为有边框的稍微好看点...

你可能感兴趣的:(用ggplot2画Pathway气泡图)