1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | upset-plots-gptomics-bioskills |
| 项目自述名称 | UpSet Plots(SKILL.md 内部标题) |
| 作者/维护者 | GPTomics Organization |
| 来源链接 | https://github.com/GPTomics/bioSkills/tree/main/data-visualization/upset-plots |
| 许可证 | MIT(数据来源:GitHub API,仓库级) |
| GitHub Stars / Forks | 所属合集仓库 bioSkills 整体 1,129 / 193(数据来源:GitHub API;⚠️ 为整个合集的数字,不代表本技能自身热度) |
| 最新版本 | 本子技能内容最近一次提交于 2026-05-24(数据来源:GitHub API commits,按该子目录路径查询) |
| 安装方式 | 复制 data-visualization/upset-plots/ 整个目录(含 SKILL.md、examples/、usage-guide.md)到 agent 的 skills 目录 |
2. 功能介绍与亮点
该技能指导 agent 用 UpSet 图(Lex 2014 IEEE TVCG)替代 4 个以上集合的 Venn 图——集合数一旦超过 4 个,传统 Venn 图即难以辨读。核心内容:
- R 侧:
ComplexUpset(现代首选,ggplot2 语法,可叠加任意 ggplot 图层作为属性面板)与UpSetR(自 2019 年起未获 CRAN 新版本发布,事实上已停止维护) - Python 侧:
upsetplot库,支持from_contents/from_indicators/from_memberships多种输入格式 - 明确标注 ggplot2 4.0(2025 年中)破坏了
ComplexUpset的upset()函数(上游 issue #213),需固定版本规避 - 交集排序两种模式——按交集大小(cardinality,“最大重叠优先”)或按集合数分组(degree),并说明各自回答的科学问题不同
upset_query()可高亮特定交集;ComplexUpset 的属性面板支持叠加任意 ggplot 图层(如按交集分组展示 log2FC 箱线图)- 6 类具体失败模式对照表(如误用已停滞的 UpSetR、2^N 交集数爆炸导致图不可读、
fromList重复元素导致计数错误、单集合交集主导排序掩盖跨集合故事等),逐条给出触发条件、机制、症状与修复方法
3. 适用场景
所属分类:数据分析与可视化
面向需要比较 4 个以上基因集、变异列表、peak 集合等成员关系重叠的研究者——典型场景是比较不同处理组/时间点的差异表达基因交集,或多个变异检测流程结果的一致性核对。当集合数超过 4 个,传统 Venn 图已丧失可读性,该技能生成的 UpSet 图能清晰展示全部交集的大小与构成。Claude Code / Codex 等初中级用户可直接用自然语言描述需求(如“画出 6 个基因集合的重叠情况,按交集大小排序”),由 agent 产出可运行的 R 或 Python 代码,无需自行摸索 ComplexUpset 的参数语法。
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」类目按目录名精确列出upset-plots
5. 推荐理由
超过 4 个集合的重叠关系是生信分析中的常见需求(比较多处理组、多时间点或多流程结果),但 Venn 图在此规模下已丧失可读性,而不少人仍在沿用已停止维护五年的 UpSetR。该技能直接给出现代替代方案 ComplexUpset 的完整代码模板,同时明确标注其与新版 ggplot2 的已知冲突及规避方法,让 agent 能一次产出可用且免于常见踩坑的图表代码。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 6 | 所属合集仓库 GPTomics/bioSkills 整体 1,129 stars,该数字属整个合集,不代表本技能自身热度;本技能在 Hermes Agent 官方生物信息学技能网关的 Data Visualization & Reporting 类目中被按目录名精确收录 |
| 可用性 | 9 | SKILL.md + 独立 usage-guide.md(含 5 组可直接使用的 prompt 示例)+ R/Python 双语言示例脚本;一条 install.packages()/pip install 即可安装;仓库最近一次推送为 2026-07-25,本技能所在路径最近一次提交为 2026-05-24;无付费依赖 |
| 安全性 | 9 | 纯提示词模板 + 本地绘图代码,无 shell 命令执行、无运行时联网外发、无需 API key 或凭据;MIT 许可证明确;通读全文与示例代码未见混淆逻辑或可疑指令 |
安全检查清单:①无 shell 命令执行,示例代码仅调用 R/Python 绘图库函数 ②运行时不联网 ③无需任何凭据 ④SKILL.md 与示例脚本均为公开的绘图代码,未见可疑指令 ⑤GPTomics 为持续维护该开源生物信息学技能合集的组织账号,公开仓库活动记录未见刷星、误导性描述等造假迹象 ⑥MIT 许可证清晰 ⑦本技能所在路径最近一次提交为 2026-05-24
7. 跟同类 Skills 相比的优势
| 维度 | upset-plots(本技能) | Claude Code 内置通用图表技能(dataviz 类) |
|---|---|---|
| 覆盖范围 | 专精集合交集可视化(UpSet 图),R 与 Python 双实现并重 | 通用图表设计方法论,覆盖任意图表类型的配色、排版、可访问性原则 |
| 领域深度 | 内置生物信息学场景(差异表达基因集、变异列表)范例与失败模式表 | 领域中立,不含针对特定图表类型的绘图库代码模板 |
| 库版本知识 | 明确标注 UpSetR 自 2019 起未获 CRAN 更新、ComplexUpset 与 ggplot2 4.0 的已知冲突(issue #213) | 不涉及具体第三方绘图库的版本兼容性问题 |
两者定位互补而非替代:需要统一图表美学、配色与可访问性规范的通用绘图场景适合内置通用图表技能;需要专精处理 4 个以上集合重叠、且要规避 ComplexUpset/UpSetR 已知坑点的场景更适合本技能。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价;所属仓库的公开 Issue 与 PR 记录中,与本子技能相关的活动主要是维护者自身的内容更新,未见独立第三方使用反馈。
9. 其他补充
SKILL.md 的「Related Skills」交叉引用同合集内的 heatmaps-clustering(更小规模集合成员关系的替代可视化方案)与 pathway-analysis/go-enrichment(产出待可视化的基因集重叠数据),形成同一技能合集内“分析产出数据 → 可视化”的衔接链路。
10. 安装使用方式
- 从 GitHub 下载或克隆仓库子目录:
data-visualization/upset-plots/ - 复制整个目录(含
SKILL.md、examples/、usage-guide.md)到所用 agent 的 skills 目录(如 Claude Code 的~/.claude/skills/或项目内.claude/skills/) - R 侧依赖:
install.packages('ComplexUpset')(遗留方案install.packages('UpSetR'));Python 侧依赖:pip install upsetplot - 无需重启 agent,安装后下次对话即可通过自然语言描述集合交集可视化需求触发(如“对比 5 个基因集的重叠情况,用 ComplexUpset 画图并按交集大小排序”)
11. 注意事项
- ggplot2 4.0 起(2025 年中)
ComplexUpset的upset()函数存在已知兼容性问题(上游 issue #213),使用前建议固定ggplot2 ≤ 3.5.2直至上游修复 UpSetR自 2019 年起未获 CRAN 新版本发布,仅建议用于复现历史论文图表,新项目应改用ComplexUpset- 仓库为社区维护的生物信息学技能合集,非任何厂商官方出品,选用前建议自行核对示例代码与当前环境中的库版本是否匹配