分级KEGG富集pathway图绘制

简介: 最近在基迪奥平台上看到了这张KEGG富集信息图,刚好手头有批现成的转录组数据,刚好绘制一下给富集图换换风格~~


最近在基迪奥平台上看到了这张KEGG富集信息图,刚好手头有批现成的转录组数据,刚好绘制一下给富集图换换风格~~

060fa47d988f359c2d572ad259bccf8.png

准备输入文件

平台上的输入文件是直接可以用来出图,这里前期我们需要对结果调整一下~输入文件就只需要富集到的pathway及对应的Count信息,再根据KEGG对应关系将前俩层级的信息merge到一起即可。这里方法有挺多,可以自己写script解析KEGG的pathway层级关系,也有一些R包或者在线网址可获取,动手google。这里我只取每个Pathway1类别中p值从小到大排名前5的作为演示。

dfb83b6d5630a5bda6347dd9a83c5df.png

## 加载所需R包
sapply(c('ggplot2','RColorBrewer','tidyverse'), require, character.only = TRUE)
## 读取KEGG富集结果文件
## 取pvalue前5的pathway
kegg_bar <- read.delim('../Data/test_keggBar.txt') %>% group_by(Pathway1) %>% 
  top_n(n = -5,wt = pvalue) ## 按照pvalue排名前5的pathway
## 取因子排名顺序,后面用到
ft <- unique(kegg_bar$Pathway1)

增添表中信息

## pathway3列中增添pathway的信息,并设置Count为0
kegg_bar %>% distinct(Pathway1,.keep_all = T) %>% mutate(Pathway3 = Pathway1,Count = 0) -> a
## 合并为一起,按照Pathway和Count进行排序,并选取所需列
kegg_bar <- rbind(kegg_bar,a) %>% arrange(Pathway1,Count) %>%
   select(Pathway1,Pathway3,Count,pvalue)
##添加一列Label,Count为0 的 标记为空
kegg_bar$Label <- ifelse(kegg_bar$Count == 0," ",kegg_bar$Count)
# 按照之前预设的因子排序
kegg_bar$Pathway1 <- factor(kegg_bar$Pathway1,levels = ft)
kegg_bar <- kegg_bar[order(kegg_bar$Pathway1),]
## 设置因子水平
kegg_bar$Pathway3 <- kegg_bar$Pathway3 %>% factor() %>% fct_inorder() %>% fct_rev()

整理好的表格如下:

Pathway3中第一行为Pathway1大类,数值为0,Label为空。


2ce5bcce1783da2574441cea9e4c5ac.png

作图

p1 <- ggplot(kegg_bar,aes(x = Count,Pathway3,fill = Pathway1))+
  geom_col()+ 
  geom_text(aes(label =Label),size = 2.5,hjust = "left",nudge_x = 0.1)+ ## 添加标签
  scale_x_continuous(limits = c(0,20.5),expand = expansion(mult = c(0,.1)))+ # 避免文字溢出
  labs(x = "Number of Gene",y = "",title = "KEGG pathway anotation")+
  scale_fill_brewer(palette = 'Set1') 
p1

4442498ac40c324d06c92fb83ee74fc.png

主题设置

首先获取其中配色信息,将图中的大类改为黑色,然后设置常规的主题信息即可。

## 复制
p2 <- p1
## 获取配色
g <- ggplot_build(p2)
mycol <- g$data[[1]]["fill"]
col <- rev(mycol$fill)
## 将Aclass对应的颜色改为黑色
num <- rev(kegg_bar$Count)
index <- which(num == 0)
col[index] <- "grey10"
## 自定义主题
my_theme <-  theme_bw()+theme(plot.title = element_text(size = rel(1),hjust = 0.2,face = 'bold'),
                   axis.title = element_text(size = rel(1)),
                   axis.text.y = element_text(size = rel(0.85),
                                              colour = col,face = 'bold'),
                   legend.position = "none",
                   plot.margin = unit(x = c(top.mar = 0.2,
                                            right.mar = 0.2,
                                            left.mar=0.2,
                                            bottom.mar= 0.2),units = 'inches'))
plot <- p2+my_theme1 
plot
ggsave('./KEGG_bar.pdf', plot, width = 8, height = 10)

f02643afda53a8acb46b4d79424c908.png



相关文章
|
9月前
|
存储 数据可视化 数据挖掘
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
R语言绘制圈图、环形热图可视化基因组实战:展示基因数据比较
|
3月前
|
数据可视化 Python
基因组之全局互作热图可视化
基因组之全局互作热图可视化
66 1
基因组之全局互作热图可视化
|
数据挖掘
这图怎么画| 批量小提琴图+箱线图+散点+差异分析
这图怎么画| 批量小提琴图+箱线图+散点+差异分析
387 0
|
数据可视化
利用ggcor包绘制相关性组合图及环状热图
ggcor包最初是因为能快速实现19年Science一组合相关性图(上图所示)变得流行起来,除此该包对热图、热图等等的可视化都是很方便快捷的,除了之前介绍过的几种相关性图几种方式,此包也是个不错的选择,且具独特的风格(特别是组合相关性图、环形热图)。但是不知道因为何种原因此包在Github上消失了....,到作者(厚缊)个人博客上瞅了瞅发现关于包的参数介绍示例等也都没有了,在评论区里看到作者回答项目已不再提供任何代码和任何资料,需要的可以去国内的gitee和国外的github搜索看看有没有别人存的代码。
772 0
|
数据可视化
ComplexHeatmap|根据excel表绘制突变景观图(oncoplot)
ComplexHeatmap|根据excel表绘制突变景观图(oncoplot)
331 0
|
9月前
|
数据可视化
实现绘制Sankey桑基图(河流图、分流图)流程数据可视化
实现绘制Sankey桑基图(河流图、分流图)流程数据可视化
|
数据采集 数据可视化 数据挖掘
使用R语言绘制富集条形图,轻松分析基因表达数据
为了实现富集分析和绘制富集条形图,我们可以使用R语言。R语言是一种免费开源的编程语言和软件环境,用于统计计算,绘制图表和数据分析。它在大量生物信息学数据分析中得到应用,并成为当前技术最前沿的生物信息学研究领域。如此优势的R语言支持,是进行富集分析和富集条形图的理想之选。
414 0
|
9月前
|
存储 数据可视化 关系型数据库
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
绘制圆环图/雷达图/星形图/极坐标图/径向图POLAR CHART可视化分析汽车性能数据
|
数据挖掘
这图怎么画| 多组箱线图+组间/内差异分析
这图怎么画| 多组箱线图+组间/内差异分析
267 0
|
数据采集 数据可视化 算法
数据分析可视化常用图介绍以及相关代码实现(箱型图、Q-Q图、Kde图、线性回归图、热力图)
数据分析可视化常用图介绍以及相关代码实现(箱型图、Q-Q图、Kde图、线性回归图、热力图)

热门文章

最新文章