速绘 丨 GO富集气泡图

本期分享一个疾速绘制GO富集后果图的办法,次要应用R语言tidyverse包,只需导入数据即可一步出图,能够自定义显示的数目、色彩、筛选参数,从此以后绘制GO富集图只需1秒

前言介绍

上面是一个GO富集剖析的后果数据表:

  • ID:示意具体的GO条目
  • Description:GO条目标形容
  • RatioF:分子是富集到这个GO条目上的gene的数目,

          分母是所有输出的做富集剖析的gene的数目
  • RatioB:分母是所有编码蛋白的基因中有GO正文的gene的数目,分子是正文到这个GO条目下面的gene数目
  • pvalue:富集的p值
  • p.adjust:校对之后的p值

    通过以上数据能够绘制如下的气泡图,还能够进一步依据后果分成三类:

  • BP: biological process, 生物学过程
  • MF: molecular function, 分子性能
  • CC: cellular component, 细胞成分

    上面开始正式的绘图办法原理介绍

    绘图办法

    加载数据与参数

# 本脚本用于对TGT生成的GO后果作图library(tidyverse)rm(list=ls())# 设置我的项目根本信息file <- "GO-Table20230629105106.csv"  #数据文件名job <- "20230629" #项目名称out_info_num <- 30 #最大显示条目数my_pvalue <- 1 #p值筛选条件my_number <- 0 #数量筛选条件color_1 <- c("blue","red") #色彩

将数据导入df变量中,而后批改colnames,应用管道操作符%>%对数据框进行筛选。首先,依据"Pvalue"列的值小于my_pvalue变量的值,保留满足条件的行。而后,持续筛选,仅保留"Number"列的值大于my_number变量的值的行。最终,通过筛选后的后果会存储回df数据框中。

df <- read.csv(file,header = T)colnames(df) <- c("ID",                  "Description",                  "RatioF",                  "RatioB",                  "Pvalue",                  "FDR",                  "Number",                  "Group",                  "Gene")df$Description <- factor(df$Description)df <- df %>% filter(Pvalue < my_pvalue) %>%          filter(Number > my_number)

数据转换

调用分数转小数的函数,mixedToFloat相干介绍请见上一篇文章。

df$RatioF <- mixedToFloat(df$RatioF)df$RatioB <- mixedToFloat(df$RatioB)

首先,依据"RatioF"列的值对df进行升序排序,并将后果存储在df_plot中。

而后,从df_plot中提取"Description"列的惟一值,并将其存储在leve_des变量中。

接下来,将df_plot中的"Description"列转换为因子类型,并依照leve_des中的程序设置程度值(levels)。

随后,从df_plot中保留前out_info_num行的数据,并将后果从新赋值给df_plot。这样就实现了对df_plot的行数限度。

最初,应用管道操作符%>%对df_plot进行操作,将所有含有缺失值的行删除,并将后果从新赋值给df_plot。

df_plot <- df[order(df$RatioF),]leve_des <- unique(df_plot$Description)df_plot$Description <- factor(df_plot$Description,levels = leve_des)df_plot <- df_plot[1:out_info_num,]df_plot <- df_plot %>% drop_na()

另外,须要对Group列进行替换,生成新的分类标注信息“MF”,“CC”,“BP”

# 应用mutate函数替换Group列的值df_plot <- df_plot %>%   mutate(Group = case_when(    Group == "molecular_function" ~ "MF",    Group == "cellular_component" ~ "CC",    Group == "biological_process" ~ "BP",    TRUE ~ Group  ))

绘制图像

接下来,应用ggplot2绘制气泡图:

ggplot(df_plot)+  geom_point(aes(RatioF,Description,                 color = Pvalue,                 size = Number))+  labs(x="GeneRatio",y="GO description") +   labs(title="")+  scale_color_gradient(low = color_1[1],high=color_1[2],name="Pvalue")+  theme_bw()+  facet_grid("Group",scales = "free_y",space = "free_y")ggsave(str_c("Fig_GO_plot_",job,".pdf"),       width = 8,height = 8)

首先,应用geom_point函数在散点图中绘制数据点。散点的x轴示意RatioF,y轴示意Description。点的色彩基于Pvalue列的值,大小基于Number列的值。

接下来,应用labs函数设置x轴和y轴的标签文本,以及图表的题目。

而后,应用scale_color_gradient函数设置Pvalue色彩的突变范畴,并命名为"Pvalue"。
调用theme_bw函数将图表的主题款式设置为黑白。

最初,应用facet_grid函数创立一个分面图,依据"Group"列的值将图表分为多个子图。scales参数设置y轴的刻度尺和标签自在缩放,space参数设置y轴的间距。

最终,应用ggsave函数将生成的图表保留为PDF文件,文件名由"Fig_GO_plot_"、job和".pdf"拼接而成,指定了输入文件的宽度和高度。

参考资料:https://zhuanlan.zhihu.com/p/383654316http://wheat.cau.edu.cn/TGT/m.html?navbar=GOEnrichment
“速绘”系列专一于分享便捷实用的作图脚本,低代码实现精美科研作图。主打的就是可重复使用,换套数据一行代码即可出图!本篇文章的绘图脚本已上传至后盾,回复“GO29”即可取得。

本文由mdnice多平台公布