用ggplot2画Pathway气泡图
2020-01-23 本文已影响0人
Cdudu
成品图
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
- 也可以使用默认的点形状,区别是默认的点不存在边框。个人认为有边框的稍微好看点...