返回 Skill 列表
extension
分类: 数据与分析无需 API Key

UpSet 图转换器

将超过4个集合的复杂韦恩图转换为更清晰的 UpSet 图。

person作者: aipoch-aihubclawhub

UpSet 图转换器

将复杂韦恩图(超过4个集合)转换为更清晰的 UpSet 图。

使用场景

  • 当任务需要将超过4个集合的复杂韦恩图转换为更清晰的 UpSet 图时,使用此技能。
  • 当数据分析任务需要明确假设、有界范围和可重现输出格式时,使用此技能。
  • 当需要针对缺失输入、执行错误或部分证据提供有据可查的备用路径时,使用此技能。

主要功能

  • 专注于范围的工作流,目标为:将超过4个集合的复杂韦恩图转换为更清晰的 UpSet 图。
  • 打包的可执行路径:scripts/main.py
  • 结构化执行路径,旨在保持输出的一致性和可审查性。

依赖项

相关详情请参见上方的 ## Prerequisites

  • Python3.10+。当前打包技能的仓库基准。
  • matplotlib未指定。已在 requirements.txt 中声明。
  • numpy未指定。已在 requirements.txt 中声明。

示例用法

相关详情请参见上方的 ## Usage

cd "20260318/scientific-skills/Data Analytics/upset-plot-converter"
python -m py_compile scripts/main.py
python scripts/main.py --help

示例运行计划:

  1. 确认用户输入、输出路径及所有必要的配置值。
  2. 如果脚本使用固定设置,请编辑文件内的 CONFIG 块或已记录的参数。
  3. 使用经过验证的输入运行 python scripts/main.py
  4. 审查生成的输出,并返回最终结果,同时说明所有假设。

实现细节

相关详情请参见上方的 ## Workflow

  • 执行模型:验证请求,选择打包的工作流,并生成有界的交付物。
  • 输入控制:在运行任何脚本之前,确认源文件、范围限制、输出格式和验收标准。
  • 主要实现界面:scripts/main.py
  • 首先需要明确的参数:输入路径、输出路径、范围过滤器、阈值及任何特定领域的约束。
  • 输出规范:保持结果可重现,明确标识假设,避免未记录的副作用。

快速检查

使用此命令在深入执行之前验证打包脚本入口点是否可以解析。

python -m py_compile scripts/main.py

审计就绪命令

使用这些具体命令进行验证。这些命令特意设计为自包含,避免使用占位符路径。

python -m py_compile scripts/main.py
python scripts/main.py

工作流程

  1. 在进行详细工作之前,确认用户目标、所需输入和不可协商的约束条件。
  2. 验证请求是否符合已记录的范围,如果任务需要不支持的假设,则提前停止。
  3. 使用打包的脚本路径或已记录的推理路径,仅使用实际可用的输入。
  4. 返回结构化结果,将假设、交付物、风险和未解决事项分开。
  5. 如果执行失败或输入不完整,切换到备用路径,并明确说明什么阻止了完整完成。

使用方法

from skills.upset_plot_converter.scripts.main import convert_venn_to_upset

# From set data
sets = {
    'A': {1, 2, 3, 4, 5},
    'B': {4, 5, 6, 7, 8},
    'C': {3, 5, 7, 9, 10},
    'D': {2, 4, 6, 8, 10},
    'E': {1, 3, 5, 7, 9}
}
convert_venn_to_upset(sets, output_path="upset_plot.png")

# From list data
from skills.upset_plot_converter.scripts.main import upset_from_lists
set_names = ['Genes A', 'Genes B', 'Genes C', 'Genes D', 'Genes E']
lists = [
    ['gene1', 'gene2', 'gene3'],
    ['gene2', 'gene4', 'gene5'],
    ['gene3', 'gene5', 'gene6'],
    ['gene7', 'gene8', 'gene9'],
    ['gene1', 'gene10', 'gene11']
]
upset_from_lists(set_names, lists, output_path="gene_upset.png", title="Gene Intersections")

输入

  • sets:集合名称到元素集合/列表的字典,或
  • set_names:集合名称列表
  • lists:列表的列表(每个列表包含元素)
  • output_path:保存输出图形的路径
  • title:图表的可选标题
  • min_subset_size:要显示的最小子集大小(默认值:1)
  • max_intersections:要显示的最大交集数(默认值:30)

输出

UpSet 图可视化的 PNG 文件。

注意事项

  • 当韦恩图超过4个集合时,它们变得难以阅读
  • UpSet 图提供了一种更清晰的集合交集可视化替代方案
  • x轴以点模式显示集合交集
  • 条形高度表示每个交集的大小
  • 自动按大小排序交集以提高可读性

需求

  • matplotlib
  • numpy
  • pandas

风险评估

| 风险指标 | 评估 | 级别 | |----------------|------------|-------| | 代码执行 | 本地执行 Python/R 脚本 | 中等 | | 网络访问 | 无外部 API 调用 | 低 | | 文件系统访问 | 读取输入文件,写入输出文件 | 中等 | | 指令篡改 | 标准提示指南 | 低 | | 数据暴露 | 输出文件保存到工作区 | 低 |

安全检查清单

  • [ ] 无硬编码凭据或 API 密钥
  • [ ] 无未授权文件系统访问(../)
  • [ ] 输出不暴露敏感信息
  • [ ] 已实施提示注入保护
  • [ ] 已验证输入文件路径(无 ../ 遍历)
  • [ ] 输出目录限制在工作区
  • [ ] 脚本在沙盒环境中执行
  • [ ] 错误消息已净化(不暴露堆栈跟踪)
  • [ ] 依赖项已审计

前置条件


# Python dependencies
pip install -r requirements.txt

评估标准

成功指标

  • [ ] 成功执行主要功能
  • [ ] 输出符合质量标准
  • [ ] 优雅地处理边缘情况
  • [ ] 性能可接受

测试用例

  1. 基本功能:标准输入 → 预期输出
  2. 边缘情况:无效输入 → 优雅的错误处理
  3. 性能:大型数据集 → 可接受的处理时间

生命周期状态

  • 当前阶段:草稿
  • 下次审查日期:2026-03-06
  • 已知问题:无
  • 计划改进
    • 性能优化
    • 附加功能支持

输出要求

每个最终响应在相关时应明确以下内容:

  • 目标或请求的交付物
  • 使用的输入和引入的假设
  • 工作流或决策路径
  • 核心结果、建议或制品
  • 约束、风险、注意事项或验证需求
  • 未解决事项和下一步检查

错误处理

  • 如果缺少所需输入,请准确说明哪些字段缺失,并仅请求最少的额外信息。
  • 如果任务超出已记录的范围,请停止,而不是猜测或悄悄扩大任务范围。
  • 如果 scripts/main.py 失败,请报告失败点,总结仍可安全完成的内容,并提供手动备用方案。
  • 不要捏造文件、引用、数据、搜索结果或执行结果。

输入验证

此技能接受符合 upset-plot-converter 已记录目的且包含足够上下文以安全完成工作流的请求。

当请求超出范围、缺少关键输入或需要不支持的假设时,不要继续工作流。请改为响应:

upset-plot-converter 仅处理其已记录的工作流。请提供缺少的所需输入或切换到更合适的技能。

响应模板

对于非简单请求,请使用以下固定结构:

  1. 目标
  2. 已接收的输入
  3. 假设
  4. 工作流程
  5. 交付物
  6. 风险与限制
  7. 下一步检查

如果请求简单,可以压缩结构,但仍应在假设和限制影响正确性时明确说明。