还在用Excel画富集分析条形图?试试这个R代码,一键输出FDR渐变图
- 2026-11-02 03:15:47
还在用Excel画富集分析条形图?试试这个R代码,一键输出FDR渐变图



欢迎关注Scalpel生信分析,每周分享医学数据分析、科研绘图、生信脚本。 

在做GO或KEGG富集分析时,我们经常需要展示显著富集的Term以及对应的基因计数(Count)和校正后的P值(FDR)。一张信息丰富、颜色美观的条形图能让你的论文增色不少。
今天分享一段R语言代码,基于ggplot2快速绘制按FDR排序的横向条形图,并用颜色渐变映射FDR值(红色表示低FDR,蓝色表示高FDR)。代码简洁,适合批量出图。

📌 输入文件格式(input.txt)
制表符分隔的文本文件,必须包含以下几列:

Term:通路或GO term名称
Count:富集到该term的基因数目
FDR:校正后的P值(越小越显著)
⚙️ 使用方法
安装R和RStudio
安装
ggplot2包:install.packages("ggplot2")将输入文件保存为
input.txt,放在工作目录(如D:\\biowolf\\bioR\\03.barplotPval)运行下方代码,RStudio的Plots面板会自动显示图形,同时PDF文件也会保存到工作目录
📊 输出效果
横向条形图,Term按FDR升序排列(最显著的在上方)
条形颜色从红(低FDR)渐变到蓝(高FDR)
可直接在RStudio中查看,也可用保存的PDF文件用于论文
📝 完整代码(运行后Plots面板自动出图)
# install.packages("ggplot2")# 三列信息需要的# Term: GO或者通路名称# Count: 富集在每个term的基因数目# FDR: 矫正后的p值library(ggplot2) # 引用包inputFile = "input.txt" # 输入文件outFile = "barplot.pdf" # 输出文件setwd("你的工作路径") # 工作目录(请按实际修改)rt = read.table(inputFile, header = TRUE, sep = "\t", check.names = FALSE)# 按FDR排序(降序,使Term在图中从上到下按显著程度排列)labels = rt[order(rt$FDR, decreasing = TRUE), "Term"]rt$Term = factor(rt$Term, levels = labels)# 绘制条形图p = ggplot(data = rt) +geom_bar(aes(x = Term, y = Count, fill = FDR), stat = 'identity') +coord_flip() +scale_fill_gradient(low = "red", high = "blue") +xlab("Term") +ylab("Gene count") +theme(axis.text.x = element_text(color = "black", size = 10),axis.text.y = element_text(color = "black", size = 10)) +scale_y_continuous(expand = c(0, 0)) +scale_x_discrete(expand = c(0, 0)) +theme_bw()# 在RStudio的Plots面板中显示图形print(p)# 保存图片到PDF文件ggsave(outFile, width = 7, height = 5)

⚠️ 注意事项
如果Term名称过长,可提前在Excel中简写
工作目录
setwd中的路径需改为你电脑上的实际路径如遇中文乱码,可在
theme中添加text = element_text(family = "SimHei"),或使用showtext包运行代码后,RStudio右下角的Plots面板会立刻显示条形图,同时当前目录下会生成
barplot.pdf
🔔 更多实用生信代码

本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。