news 2026/9/11 2:36:32

美图秀秀:出版级火山图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
美图秀秀:出版级火山图

有学员评价 Galaxy 平台出的火山图有点丑:

这图确实难言美观。平台其实有好几个火山图工具

  • • 有基于 EnhancedVolcano 包的

  • • 有基于 ggplot2 的

上图就是 EnhancedVolcano 包的效果。不过画成这样,也有别的关系:

  • • 比如基因太多。应该把没表达,或者低表达的基因先过滤一下

  • • 此外 p 值设定,以及坐标轴的范围控制也有问题。

总之,这效果离发表级确实有点远。

既然现有工具的绘制效果差强人意,而火山图本质是一个散点图,为了使用方便,我们干脆再封装一个更适合用于发表的:

  • Volcano Plotwith Publication-Quality (Galaxy Version 1.0)

效果如下:

测试数据

我们先来生成一份测试数据,下面代码来源于 EnhancedVolcano 包的文档:

library(airway) library(magrittr) library(EnhancedVolcano) data('airway') airway$dex %<>% relevel('untrt') colData(airway) # 转换基因符号 ens <- rownames(airway) library(org.Hs.eg.db) symbols <- mapIds(org.Hs.eg.db, keys = ens, column = c('SYMBOL'), keytype = 'ENSEMBL') symbols <- symbols[!is.na(symbols)] symbols <- symbols[match(rownames(airway), names(symbols))] rownames(airway) <- symbols keep <- !is.na(rownames(airway)) airway <- airway[keep,] assays(airway)[[1]] # DESeq2差异分析 library('DESeq2') dds <- DESeqDataSet(airway, design = ~ cell + dex) dds <- DESeq(dds, betaPrior=FALSE) res <- results(dds, contrast = c('dex','trt','untrt')) res <- lfcShrink(dds, contrast = c('dex','trt','untrt'), res=res, type = 'normal') res EnhancedVolcano(res, lab = rownames(res), x = 'log2FoldChange', y = 'pvalue', title = 'N061011 versus N61311', pCutoff = 10e-32, FCcutoff = 0.5, pointSize = 3.0, labSize = 6.0) res$GeneID = rownames(res) out = res[, c('GeneID', 'log2FoldChange', 'pvalue')] write.table(out, 'airway_deg.tsv', sep='\t', row.names = F, quote=F)

EnhancedVolcano 绘制效果,我们后续作图跟该图进行比较:

完成差异分析后,我们将这 3 列(GeneID, log2FoldChange, pvalue)保存到一个文件 airway_deg.tsv 中,然后上传到平台。

开始作图

工具:Volcano Plotwith Publication-Quality (Galaxy Version 1.0)

参数设置:

  • 差异表达分析结果表:airway_deg.tsv

  • 阈值与坐标

    • 显著性阈值 (padj / FDR / qvalue):10e-32

    • 差异倍数阈值 (log2FoldChange threshold):0.5

    • Y 轴显示范围:150.0

  • • 高级设置

    • Y 轴标签:-log10 p-value

结果如下:

这个图就清爽多了。

标记基因

很多时候我们希望标记一些感兴趣的基因,可以将这些基因通过一个文件传给工具。

我们先用 filter 工具筛选一下显著差异基因,参数设置如下:

  • • 注:这个阈值设定供用于测试,实际一般不这样设置。

可以看到有 123 个显著差异基因,都画在图上有点多,我们取 top 20 吧,这里用于 **Select first **工具:

结果:

我们接着再 Cut 一下,将基因一列切出来:

重命名一下,结果:

现在重新作图,除了修改参数:

其他参数跟前面设置完全一样。

标记感兴趣的基因后的效果:

还可以吧。

写在最后

此文并非说 EnhancedVolcano 或者 ggplot2 包的效果不行。它们都非常优秀,并且广受好评。只不过对于作图,每个人的审美偏好不同。作为平台,只有丰富工具的品种,以满足丰富多样的个性化需求。

推荐阅读

中国银河生信云平台(UseGalaxy.cn)致力于零代码生信分析。平台拥有海量计算资源、3000 多个生信工具和数十条生信流程,并且为用户提供 200G 免费存储空间。进群交流请先加 usegalaxy 为好友。我们还为进阶用户提供高质量培训课程:

RNA-seq数据分析实战 | 2026年第1期,开启你的生信学习之旅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 15:15:57

hbuilderx制作网页响应式头部与页脚设计完整示例

用 HBuilderX 打造响应式网页&#xff1a;从零实现自适应头部与页脚你有没有遇到过这样的情况&#xff1f;精心设计的网页在电脑上看得很完美&#xff0c;一拿到手机上就“乱成一团”——导航跑偏、文字挤在一起、按钮点不到……这背后的问题&#xff0c;其实就是缺乏响应式设计…

作者头像 李华
网站建设 2026/9/10 23:28:19

16、移动网页开发最佳实践与效率提升指南

移动网页开发最佳实践与效率提升指南 在移动网页开发过程中,我们会遇到各种各样影响用户体验和页面性能的问题。下面将详细探讨这些问题及相应的解决办法。 1. 页面滚动与弹窗问题 在不同的 Android 和 iOS 版本中,页面滚动和弹窗的表现存在差异。某些版本中主页面会随对话…

作者头像 李华
网站建设 2026/9/2 23:27:49

TVBoxOSC完整教程:3分钟掌握电视盒子终极播放方案

TVBoxOSC完整教程&#xff1a;3分钟掌握电视盒子终极播放方案 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库&#xff0c;用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC TVBoxOSC作为一款功能强大的开源电…

作者头像 李华
网站建设 2026/9/5 17:50:18

如何快速打造个性化电视盒子:TVBoxOSC终极配置手册

还在为电视盒子单调的界面而烦恼吗&#xff1f;想要让观影体验更符合个人喜好吗&#xff1f;TVBoxOSC作为一款功能强大的电视盒子管理工具&#xff0c;能够帮助你轻松实现个性化定制&#xff0c;打造专属的家庭娱乐中心&#xff01;&#x1f680; 【免费下载链接】TVBoxOSC TVB…

作者头像 李华
网站建设 2026/9/6 22:41:37

BilibiliDown:小白也能轻松上手的B站视频下载工具

BilibiliDown&#xff1a;小白也能轻松上手的B站视频下载工具 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bi…

作者头像 李华
网站建设 2026/9/6 14:48:46

Goo Engine:打造专业动漫3D渲染的Blender定制方案

Goo Engine&#xff1a;打造专业动漫3D渲染的Blender定制方案 【免费下载链接】goo-engine Custom build of blender with some extra NPR features. 项目地址: https://gitcode.com/gh_mirrors/go/goo-engine 你是否在为Blender难以完美呈现动漫风格而苦恼&#xff1f;…

作者头像 李华