KEGG注释:KEGG富集可视化柱状图

很久很久以前,看到过文章中的KEGG富集可视化结果图。是对KEGG通路进行注释的。后来在一些测序公司的宣传页上也见到过类似的图:

image.png

image.png

其实这个图就是多了一个KEGG通路注释,近期也有小伙伴寻求怎么做。网上很多在线工具可以完成这个图,只需要按照相应的示例提供数据就可以一键出图,很方便。用到的数据就是分析完成的KEGG富集通路,关键的两列一个是KEGG同类名称,一列是counts,当然这个counts也可以选择展示怕值。例如这里的这个网站:微生信-免费在线绘制pathway富集结果分类图

出图的效果如下:

image.png

当然我们还是希望自己动手做出来,毕竟也不是什么难事。需要的文件一个是我们分析的富集通路文件,另外一个就是KEGG注释分类,这个文件在KEGG官网可以整理,这里我们已上传分享到QQ群文件了,可自行下载!

首先加载包和数据,做一个普通的柱状图很简单:

# setwd('D:/KS项目/公众号文章/KEGG通路注释')
library(dplyr)
library(ggplot2)
library(forcats)
library(dittoSeq)
kegg <- read.csv('KEGG.csv', header = T)
#其实做一个柱状图没有什么难度
ggplot(kegg,aes(Description, Gene.Count))+
  geom_bar(stat = "identity")+
  geom_text(aes(label=Gene.Count, y=Gene.Count+2),size=3)+
  coord_flip()+
  labs(x='',y='Gene count')+
  theme_bw()+
  theme(panel.grid = element_blank(),
        legend.position = 'none',
        axis.ticks.y = element_blank(),
        axis.text = element_text(colour = 'black', size = 10))

然后读入注释文件,将通路注释,这里使用的笨办法,直接筛选:

#注释文件
kegg_ann <- read.csv('kegg_annotation.csv')
rownames(kegg_ann) <- kegg_ann$directory3
df <- kegg_ann[kegg$Description,]
kegg1 <- cbind(kegg, df)
table(kegg1$directory1)


# Cellular Processes Environmental Information Processing 
# 1                                    3 
# Human Diseases                           Metabolism 
# 3                                    3 
# Organismal Systems 
# 2 
kegg1 <- kegg1[order(kegg1$directory1),]
kegg1$Description <- as.factor(kegg1$Description)
kegg1$Description <- fct_reorder(kegg1$Description)

p <- ggplot(kegg1,aes(Gene.Count,Description))+
  geom_bar(stat = "identity", aes(fill=directory1))+
  geom_text(aes(label=Gene.Count, x=Gene.Count+2),size=3)+
  labs(y='',x='Gene count')+
  theme_classic()+
  theme(panel.grid = element_blank(),
        legend.position = 'none',
        axis.ticks.y = element_blank(),
        axis.text = element_text(colour = 'black', size = 10),
        plot.margin = margin(0,0,0,-0.05, "cm"))+
  scale_fill_manual(values = dittoColors())

最后添加上右侧的注释就完成了:


#构建注释
df1<-data.frame(x="A", y=kegg1$Description, group=kegg1$directory1)

df1$group <- factor(df1$group, levels = c("Organismal Systems",
                                          "Metabolism",
                                          "Human Diseases",
                                          "Environmental Information Processing",
                                          "Cellular Processes"))

p1 <- ggplot(df1,aes(x,y, fill=group))+
  geom_tile(show.legend = F)+
  facet_grid(group~.,scales = 'free',space = 'free')+
  labs(x=NULL,y=NULL)+
  scale_x_discrete(expand = c(0,0))+
  scale_y_discrete(expand = c(0,0))+
  theme(panel.background = element_blank(),
        axis.ticks = element_blank(),
        axis.text = element_blank(),
        plot.margin = margin(0,-0.05,0,0, "cm"),
        strip.text.y = element_text(angle=0,size=10,color = "black",
                                    hjust = 0,margin = margin(b = 3,t=3)),
        strip.background = element_rect(colour=NULL,fill = 'white'),
        panel.spacing=unit(0, "mm"))+
  scale_fill_manual(values = c("#0072B2","#F0E442","#009E73","#56B4E9","#E69F00"))
  
 
#拼图
library(deeptime)
ggarrange2(p, p1,nrow = 1,widths =c(2,0.05))

当然了,网上也有别的形式的注释,这里不再演示,大概样子就是在柱状图y轴添加了分类的名称,有了注释文件就可以构造了。具体的做法可以参考我们之前的帖子:柱状图|GO、KEGG|标签与柱状图颜色对应

那么最后还有一个问题,很多人肯定会想到,就是GO的结果可以注释嘛?我们知道GO分为BP、MF、CC三个,但是在BP中能不能继续注释,我是没有看到官方的文件,但是需要自己注释和作图可以参考我们这个帖子。希望分享对你有帮助,点个赞、分享下再走呗!

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值