打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
画图专题 | 差异表达基因结果展示系列之柱状图

在做项目分析的时候遇到过一个问题,就是有个老师想将好几张功能富集结果中的柱状图的横坐标的范围全部调整为一样的,一般画这个柱状图都是用Y叔的clusterprofiler包中的barplot函数对使用这个包的功能富集结果进行一键绘图,超级简单方便。但是当我去查找这个函数的调整坐标的参数时:

Usage
## S3 method for class 'enrichResult'
barplot(height, x = 'Count', colorBy = 'pvalue',
 showCategory = 5, font.size = 12, title = '', ...)
Arguments
height             enrichResult object
x                 one of 'Count' and 'GeneRatio'
colorBy           one of 'pvalue', 'p.adjust', 'qvalue'
showCategory     number of categories to show
font.size          font size
title              plot title
...               other parameter, ignored

other parameter, ignored,other parameter, ignored,other parameter, ignored......

左右滑动查看完整内容

也就是说这个函数里面没有调整坐标范围的参数,不知道是不是因为我没找到还是什么,反正我找了好久没有找到,我有点方(如果知道的小伙伴可以下面留言告诉我)。

后面我觉得还是自己用ggplot2画吧,反正这个包里面一键绘图也是根据ggplot2来的。

这个图与一般的函数barplot画出来的不一样的地方在于它的颜色,这张图里面的颜色反应的是fdr的大小,是一个连续值,ggplot2可以将连续值映射到到颜色上,横坐标是通路中感兴趣基因的个数。

用来画图的数据示例:

#加载ggplot2包
library(ggplot2) 

#一键清除
rm(list=ls())

#设置文件路径
setwd('D:/zhangj/DZH/enrichment') 

#读取功能富集结
enrich <- read.table('S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.list', header=T,sep='\t',stringsAsFactors=F,comment.char='',quote='\'')


#对富集结果按照qvalue进行从小到大排序,保证最显著的通路在前
enrich1 <- enrich[order(enrich$qvalue),] 

#这里画图只展示top10的通路
enrich2 <- enrich1[1:10,]

#提取每条通路里面差异表达的基因数
count <- as.numeric(unlist(strsplit(enrich2$GeneRatio,'/5498',fixed=T))) 
enrich3 <- data.frame(enrich2[,2],count,enrich2[,7])
colnames(enrich3) <- c('ID','count','qvalue')

#fill=qvalue fill颜色填充,使用连续值qvalue
p <- ggplot(data=enrich3,aes(x=ID,y=count,fill=qvalue))

#coord_flip()颠倒坐标轴
p1 <- p + geom_bar(stat='identity') + coord_flip()
p2 <- p1 + theme(panel.background=element_rect(fill='transparent',color='gray'),
           axis.text.y=element_text(color='black',size=12))


#ylim(0,20) 更改横坐标的范围这里坐标轴颠倒了,虽然看起来是x轴,但其实是y轴
p3 <- p2 + ylim(0,20) + scale_fill_gradient(low='red',high='blue')

p4 <- p3 + scale_x_discrete(limits=rev(enrich3[,1])) +labs(x='',y='',title='Biological_Process')


#输出为png格式的图片
png('S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.png',width=680,height=480)
print(p4)
dev.off()


#输出为pdf的文件
pdf('S01_S03_S05_vs_S02_S04_S06_Biological_Process_enrich.pdf',width=9)
print(p4)
dev.off()

左右滑动查看完整内容

最后结果图:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言ggplot2画图-Pathway富集分析气泡图
生信实操丨一个生信菜鸟的上道经验分享-转录组测序(富集分析绘图篇)
RNA-seq入门实战(六):GO、KEGG富集分析与enrichplot超全可视化攻略
ggplot2|undefined绘制KEGG气泡图
技术贴 | R语言:如何绘制合并气泡图?
GO、KEGG富集分析(一)有参情况
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服