ggplot2|绘制GO富集柱形图

简介: ggplot2|绘制GO富集柱形图

本文首发于“生信补给站”公众号 ggplot2|绘制GO富集柱形图

ot2包,从头带您绘制可发表级别的GO富集分析结果图。

一 载入数据集和R包

利用各种生信工具得到富集分析结果,数据列可能不一致,但关键几列都有。


library(ggplot2)
data <- read.csv("GO_enrichment_significant.csv",header=TRUE)
head(data)

image.png二 对上述GO结果绘制基础bar图

参照之前ggplot2使用方法,更改geom即可绘制简单的bar图,按照GO_category分组颜色


ggplot(data=data, aes(x=GO_term,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8)

image.png

可看出和文献中的差距较大,体现在以下几个方面:

A:标题,坐标轴“业余”;

B:GO_category顺序未按照输入文件,相同GO_category没在一起;

C:横坐标label太长,重叠在一起。


三  “细节”调整GO结果bar图

3.1 坐标轴调整策略


#将GO_term设定为factor即可按照顺序输出
GO_term_order=factor(as.integer(rownames(data)),labels=data$GO_term)
ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + geom_bar(stat="identity", width=0.8) + coord_flip() +  xlab("GO term") + ylab("Num of Genes") + theme_bw()

image.png

好像有一点能看了,尝试其他策略。


3.2 调整横坐标label策略

将label调整成一定角度倾斜


COLS <- c("#66C3A5", "#8DA1CB", "#FD8D62")
ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) +
  geom_bar(stat="identity", width=0.8)  + 
  scale_fill_manual(values = COLS) + theme_bw()  +
  xlab("GO term") + ylab("Num of Genes") + labs(title = "The Most Enriched GO Terms")+ theme(axis.text.x=element_text(face = "bold", color="gray50",angle = 70,vjust = 1, hjust = 1 )) 

image.png

嗯 ,标签太长溢出,采取保留GO-term的前三个单词(可以其他策略)后面...代替,可以excel或者R function 解决。


3.3 调整label长度后绘图


GO_term_order=factor(as.integer(rownames(data)),labels=labels)
COLS <- c("#66C3A5", "#8DA1CB", "#FD8D62")
ggplot(data=data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) +
  geom_bar(stat="identity", width=0.8)  + 
  scale_fill_manual(values = COLS) + theme_bw() +
  xlab("GO term") + ylab("Num of Genes") + labs(title = "The Most Enriched GO Terms")+ theme(axis.text.x=element_text(face = "bold", color="gray50",angle = 70,vjust = 1, hjust = 1 )) 

 

image.png


好了  ,这样好像比较顺眼了,不管什么软件工具得到的GO富集结果,都可以绘图,然后,,,发文章去吧。。。


相关文章
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是R中的一个宝藏包,用于GO富集分析的创新可视化。它提供多种图表类型,如GOBar、GOBubble、GOCircle、GOChord、GOHeat和GOCluster,以及GOVenn。通过调整参数,用户可自定义颜色、大小和排序。例如,GOBar和GOBubble展示富集条形和气泡,GOCircle以环形图表示,GOChord描绘基因和过程间关系,而GOHeat和GOCluster提供热图和聚类视图。此外,还有GOVenn用于绘制Venn图。包简化了数据准备和绘图过程,适合快速高效地展示复杂分析结果。别忘了引用创始人Walter等人的工作。
2052 1
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是一款R包,专注于GO富集分析的可视化,提供多种图表类型如GOBar、GOBubble、GOCircle、GOChord和GOVenn等。这些函数允许用户轻松修改参数,定制颜色、大小和排序,实现数据的直观展示。示例代码展示了如何使用这些功能创建不同类型的图形,并提到了一个配套的shiny应用。`GOplot`简化了复杂的数据可视化过程,适合快速高效地展示差异分析结果。
1056 0
|
数据可视化 Go 数据库
基于GO-Figure快速绘制GO富集气泡图
GO-Figure! 是一个基于pyhton写的GO富集小软件,方便我们拿到富集结果后直接使用命令行的形式进行可视化,绘制出具有灵活性、可重复性的图形,且可基于最新的GO数据库内容进行富集。效果图如下,若用惯了常见的气泡柱形图,这种形式也不失为一种新颖的可视化方法~
1310 1
|
存储 Go
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图
|
数据采集 数据可视化 大数据
渐进式学习:如何用R和GO富集可视化捕捉生命的关键信号?
本文还将提供一些使用R和GO富集可视化的基本方法和技巧,并以实例说明如何从生物大数据中捕捉关键信号。最后,我们将讨论GO富集可视化在生物信息学中的未来发展和可能的研究方向。
643 0
|
Go 数据库 Python
Bingo(Cytoscape插件)GO功能富集分析
转录组分析中基因的GO富集分析这步有很多软件可以选择,这次我们来介绍下如何利用Cytoscape软件中的一个简单又好用的Bingo小插件完成富集的工作,Cytoscape其实是一个做网络图的软件,所以使用Bingo的这种方法特别之处就在于富集的结果是可以直接以网络图的形式呈现,类似于下图这种效果,区别于其他的软件大多只生成表的形式。
1318 0
|
存储 数据可视化 数据挖掘
跟着Nature Communications学作图:R语言ggplot2柱形图展示GO富集分析的结果
跟着Nature Communications学作图:R语言ggplot2柱形图展示GO富集分析的结果
|
7月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
384 2
|
9月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
582 1
|
11月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。