1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | volcano-and-ma-plots-gptomics-bioskills |
| 项目自述名称 | bio-data-visualization-volcano-and-ma-plots(SKILL.md 内部 name 字段) |
| 作者/维护者 | GPTomics Organization |
| 来源链接 | https://github.com/GPTomics/bioSkills/tree/main/data-visualization/volcano-and-ma-plots |
| 许可证 | MIT(数据来源:GitHub API,仓库级) |
| GitHub Stars / Forks | 所属合集仓库 bioSkills 整体 1,129 / 193(数据来源:GitHub API;⚠️ 为整个合集的数字,不代表本技能自身热度) |
| 最新版本 | 本子技能内容最近一次提交于 2026-05-29(数据来源:GitHub API commits,按该子目录路径查询) |
| 安装方式 | 复制 data-visualization/volcano-and-ma-plots/ 整个目录(含 SKILL.md、examples/、usage-guide.md)到 agent 的 skills 目录 |
2. 功能介绍与亮点
该技能指导 agent 从差异表达 / 关联分析结果(RNA-seq、ChIP-seq、ATAC-seq、蛋白质组等)绘制火山图与 MA 图,覆盖 R(EnhancedVolcano、ggplot2+ggrepel、DESeq2::plotMA)与 Python(matplotlib+adjustText)两条路线:
- 效应量收缩方法选择表:对比 apeglm(Zhu 2019,DESeq2 默认)、ashr(Stephens 2017,支持 s-value)、normal(已弃用)三种收缩先验的适用场景与失效条件
- 8 类具体失败模式逐条给出触发条件、机制、症状与修复方法(如误用原始 p 值画阈值线、
EnhancedVolcano的selectLab被阈值静默过滤、ggrepel默认max.overlaps=10静默丢标签等) - MA 图作为收缩效果的诊断工具——扇形分布提示收缩不足,水平条带提示批次效应混杂
- 按 bulk RNA-seq / 单细胞伪批量 / 蛋白质组 / GWAS 差异峰等场景给出推荐方法的决策树,并附「审稿人常见质疑与标准回应」对照表
- 正文引用 9 篇同行评议文献(Zhu 2019 Bioinformatics、Stephens 2017 Biostatistics、Wong 2011 Nat Methods 等),并附完整可运行示例脚本
examples/volcano_phd.R
3. 适用场景
所属分类:数据分析与可视化
面向需要绘制符合期刊发表标准的火山图 / MA 图的生物信息学研究者与数据分析人员——典型场景是 RNA-seq、ChIP-seq、ATAC-seq 或蛋白质组差异分析后,需要判断该用收缩后还是原始的效应量、该在原始 p 值还是校正后 p 值上画阈值线、如何选择有代表性的标注基因。Claude Code / Codex 等初中级用户可用自然语言描述目标(如“用 apeglm 收缩后的 LFC 画火山图,标注 TP53、MYC、BRCA1”),由 agent 生成对应的 R 或 Python 代码,避免踩中收缩方法或阈值误用等统计陷阱。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持——标准 SKILL.md(YAML front matter + 指令正文),可直接复制进技能目录使用
- Codex:✅ 遵循同一 Agent Skills 规范格式,可安装使用
- OpenClaw:✅ 同上,格式通用
- Hermes Agent:❓ 未验证——Hermes Agent 生物信息学技能网关文档(
docs/user-guide/skills/optional/research/research-bioinformatics)的「Data Visualization & Reporting」类目列出的是volcano-customization,与本技能目录名volcano-and-ma-plots不一致,未获证是否指同一技能
5. 推荐理由
火山图与 MA 图是差异表达分析里最常用、也最容易画错的图——原始 log2FC 在低 count 基因上会失真、阈值线画在错误的坐标轴上、标注基因被静默过滤或丢弃,这些问题往往等审稿人质疑时才被发现。该技能把这些统计与工程细节显式列成“触发条件→修复方法”的对照表,并同时给出 R 与 Python 两条主流实现,让 agent 能一次性产出统计上站得住脚、且可直接投稿的图表代码。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 5 | 所属合集仓库 GPTomics/bioSkills 整体 1,129 stars,该数字属整个合集,不代表本技能自身热度;Hermes Agent 官方生物信息学技能网关的 Data Visualization 类目未按本技能目录名精确收录(列出的近似名称未获证为同一技能),暂无其他独立第三方证据 |
| 可用性 | 9 | SKILL.md(约 500 行)+ 独立 usage-guide.md(含 5 组可直接使用的 prompt 示例)+ 可运行 R 示例脚本 volcano_phd.R;一条 install.packages() / pip install 即可安装依赖;本技能所在路径最近一次提交为 2026-05-29,所属仓库最近一次推送为 2026-07-25;全部依赖为免费开源包 |
| 安全性 | 9 | 纯 R/Python 绘图代码,无 shell 命令执行、无运行时联网外发、无需 API key 或凭据;MIT 许可证明确;通读 SKILL.md、usage-guide.md 与示例脚本未见混淆逻辑或可疑指令 |
安全检查清单:①无 shell 命令执行,示例脚本仅调用 R 绘图与统计库函数 ②运行时不联网 ③无需任何凭据 ④SKILL.md、usage-guide.md 与示例脚本均为公开的绘图代码,未见可疑指令 ⑤GPTomics 为持续维护该开源生物信息学技能合集的组织账号,公开提交记录(作者 Domen Jemec)未见刷星、误导性描述等造假迹象 ⑥MIT 许可证清晰 ⑦本技能所在路径最近一次提交为 2026-05-29
7. 跟同类 Skills 相比的优势
| 维度 | volcano-and-ma-plots(本技能) | ClawBio Differential Expression Visualizer |
|---|---|---|
| 覆盖范围 | 专精火山图与 MA 图本身的统计正确性(效应量收缩方法选择、阈值线坐标轴匹配、标注策略) | 更广的差异表达可视化工具包,覆盖火山图、热图、MA 图、点图等多种图形,产出交互式 HTML 报告 |
| 定位 | 教 agent 生成可直接嵌入分析脚本的 R/Python 绘图代码,强调统计推理过程 | 面向“把统计结果表转成可视化报告”的自动化流水线,偏工具型封装 |
| 统计严谨性文档 | 8 类具体失败模式逐条给出触发/机制/修复,附 9 篇文献引用支撑方法选择 | 未见针对收缩方法选择或阈值坐标轴匹配问题的同等深度文档 |
两者定位不同:需要快速产出多图种交互式报告的用户适合 ClawBio 工具;需要在代码层面确保火山图/MA图统计方法正确(收缩类型、阈值坐标轴、标注策略)、且已有 R/Python 分析脚本的用户更适合本技能。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价;所属仓库中唯一提及“volcano”的 Pull Request(#14,“bug cleanup and new skills”)为维护者自身的批量修订提交,未见独立第三方使用反馈。
9. 其他补充
SKILL.md 开篇设有「Version Compatibility」小节,列出各依赖库(DESeq2、EnhancedVolcano、ggplot2、matplotlib 等)的兼容版本区间,并指导 agent 在实际安装版本与文档不符时如何自行排查 API 差异而非直接重试报错——这是该合集仓库内多个技能共用的写作规范。
10. 安装使用方式
- 从 GitHub 下载或克隆仓库子目录:
data-visualization/volcano-and-ma-plots/ - 复制整个目录(含
SKILL.md、examples/、usage-guide.md)到所用 agent 的 skills 目录(如 Claude Code 的~/.claude/skills/或项目内.claude/skills/) - R 侧依赖:
install.packages(c('ggplot2', 'ggrepel', 'dplyr'))及BiocManager::install(c('DESeq2', 'EnhancedVolcano', 'apeglm', 'ashr'));Python 侧依赖:pip install matplotlib numpy pandas adjustText - 无需重启 agent,安装后下次对话即可通过自然语言描述需求触发(如“用 apeglm 收缩画火山图,FDR<0.05”)
11. 注意事项
- 若跟随较旧教程使用
lfcShrink(type='normal'),收缩先验会过度压缩大效应量,导致真实的 8 倍变化在图上看起来只有 2-3 倍,建议改用apeglm(DESeq2 v1.28 起默认)或ashr EnhancedVolcano的selectLab参数会被pCutoff/FCcutoff阈值静默过滤,指定的基因若未通过阈值将不会出现且无警告- 仓库为社区维护的生物信息学技能合集,非任何厂商官方出品,选用前建议自行核对示例代码与当前环境中的库版本是否匹配