分级KEGG富集pathway图绘制

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


image.png

准备输入文件

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


image.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
image.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)
image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,188评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,464评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,562评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,893评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,917评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,708评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,430评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,342评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,801评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,976评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,115评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,804评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,458评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,008评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,135评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,365评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,055评论 2 355

推荐阅读更多精彩内容