在我们新专辑
《绘图小技巧2025》
中,已经给大家介绍过一个高颜值两组间差异FC值比较散点图:
顶刊 Science 文献两分组差异结果比较图复现
。今天我们继续来学习绘制其中另一幅的功能富集结果展示图,是一种很新的展示方法哦,且颜值高:
含义:三组 KRAS signatures 基因做 Reactome 数据库的功能富集,并挑选 top10进行展示。
图注:
Fig. 4. KRAS-ERK–dependent genes are essential for cell proliferation in PDAC. (A) Overrepresentation analysis for Reactome terms in three KRAS signatures: PDAC KRAS-ERK UP, PDAC KRASi UP, and PDAC iKras UP. The top 10 terms are shown.
数据准备
1、Reactome 数据库通路
Reactome 数据库:是一个免费、开源、数据经过手动筛选和同行评审的生物分子通路知识数据库。数据库链接:https://reactome.org/。
我们在 GSEA 的 MSigDB 数据库去下载 gmt 格式:https://www.gsea-msigdb.org/gsea/msigdb/human/collections.jsp#C2
2、三组 KRAS signatures 基因
这个数据在文章的附件:
science.adk0775_data_s4.xlsx
中
开始绘图
这里依然是使用 ggplot2 进行绘制,ggplot2拥有强大的绘图系统。
1、读取数据
先看图中的最左边那个 signature:PDAC KRAS-ERK UP
### ### Create: juan zhang ### Date: 2025-01-16 ### Email: [email protected] ### Blog: http://www.bio-info-trainee.com/ ### Forum: http://www.biotrainee.com/thread-1376-1-1.html ### Update Log: 2025-01-16 First version ### rm(list=ls()) library(ggplot2) library(clusterProfiler) library(org.Hs.eg.db) library(GSEABase) library(tidyverse)# three KRAS signatures: # 1.PDAC KRAS-ERK UP # 2.PDAC KRASi UP # 3.PDAC iKras UP # 首先是 Reactome pathways 功能富集 # 1.PDAC KRAS-ERK UP: 表格 PDAC_siKRAS_ERKi_UP sig1 "data/science.adk0775_data_s4.xlsx", sheet = "PDAC_siKRAS_ERKi_UP" ) head(sig1) gene $external_gene_name) head(gene)# [1] "AEN" "ANTXR2" "AREG" "AURKA" "CDCA3" "CDCA8"
2、读取 reactome 通路并富集:
## === reactome 数据库通路富集 geneset "data/c2.cp.reactome.v2024.1.Hs.symbols.gmt") table(geneset$term ) geneset$term "REACTOME_","" , geneset$term )# 富集 my_path # 整理数据,挑选fdr top 10 dat dat $p.adjust, decreasing = F),] dat dat$Description $Description, levels = dat$Description ) dat$xlab head(dat) colnames(dat)# 字体大小 max(-log10(dat$p .adjust))*1.01
3、使用 ggplot2 定制化绘图
p1 geom_text(size=-log10(dat$p .adjust)*0.3, aes( label = Description), hjust = 0.5) + # hjust = 0.5,居中对齐 scale_color_gradient(low = "#98bf92" , high = "#006a01" ) + # 创建颜色渐变 scale_x_continuous(expand = c(0,0)) + # 调整柱子底部与y轴紧贴 labs(x = " " , y = " " , title = "PDAC KRAS-ERK UP" , color="Significance\n(-log10 adj. p-val.)" ) + theme(axis.text = element_blank(), # 隐藏x/y轴标签 axis.ticks = element_blank(), # 隐藏x/y轴刻度 # 隐藏其他边框线 panel.grid.major = element_blank(), panel.grid.minor = element_blank(), plot.background = element_rect(fill = "white" , color = NA), panel.background = element_rect(fill = "white" , color = NA), # 隐藏边框线 panel.border = element_blank(), plot.title = element_text(hjust = 0.5) # 标题居中 ) + # 添加顶部横着的黑线 annotate("segment" , x = 0, xend = 2, y = 10.6, yend = 10.6, color = "black" , size = 1.1) p1# 保存,这里的保存宽和高进行了调整,可以使得结果比较美观 ggsave(filename = "p1.png" , width = 5.0, height = 3, plot = p1)
结果如下:
4、同样的方法得到 PDAC KRASi UP signature 结果
Note:注意字体大小有调整
################################################################################ # PDAC KRASi UP: 表格 PDAC_siKRAS_KRASi_iKras_UP sig2 "data/science.adk0775_data_s4.xlsx", sheet = "PDAC_siKRAS_KRASi_iKras_UP" ) head(sig2) gene $external_gene_name) head(gene)## === 其他数据库通路富集 geneset "data/c2.cp.reactome.v2024.1.Hs.symbols.gmt") table(geneset$term ) geneset$term "REACTOME_","" , geneset$term )# 富集 my_path dat dat $p.adjust, decreasing = F),] dat dat$Description $Description, levels = dat$Description ) dat$xlab head(dat) colnames(dat)# 字体大小 -log10(dat$p .adjust)*1.01 p2 geom_text(size=-log10(dat$p .adjust)*3, aes( label = Description), hjust = 0.5) + # hjust = 0.5,居中对齐 scale_color_gradient(low = "#dd8efb" , high = "#b000f6" ) + # 创建颜 色 渐变 scale_x_continuous(expand = c(0,0)) + # 调整柱子底部与y轴紧贴 labs(x = " "