共计 2687 个字符,预计需要花费 7 分钟才能阅读完成。
速绘 丨 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/383654316
http://wheat.cau.edu.cn/TGT/m.html?navbar=GOEnrichment
“速绘”系列专一于分享便捷实用的作图脚本,低代码实现精美科研作图。主打的就是可重复使用,换套数据一行代码即可出图!本篇文章的绘图脚本已上传至后盾,回复“GO29”即可取得。
本文由 mdnice 多平台公布