UpSet 图转换器
将复杂韦恩图(超过4个集合)转换为更清晰的 UpSet 图。
使用场景
- 当任务需要将超过4个集合的复杂韦恩图转换为更清晰的 UpSet 图时,使用此技能。
- 当数据分析任务需要明确假设、有界范围和可重现输出格式时,使用此技能。
- 当需要针对缺失输入、执行错误或部分证据提供有据可查的备用路径时,使用此技能。
主要功能
- 专注于范围的工作流,目标为:将超过4个集合的复杂韦恩图转换为更清晰的 UpSet 图。
- 打包的可执行路径:
scripts/main.py。 - 结构化执行路径,旨在保持输出的一致性和可审查性。
依赖项
相关详情请参见上方的 ## Prerequisites。
Python:3.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
示例运行计划:
- 确认用户输入、输出路径及所有必要的配置值。
- 如果脚本使用固定设置,请编辑文件内的
CONFIG块或已记录的参数。 - 使用经过验证的输入运行
python scripts/main.py。 - 审查生成的输出,并返回最终结果,同时说明所有假设。
实现细节
相关详情请参见上方的 ## Workflow。
- 执行模型:验证请求,选择打包的工作流,并生成有界的交付物。
- 输入控制:在运行任何脚本之前,确认源文件、范围限制、输出格式和验收标准。
- 主要实现界面:
scripts/main.py。 - 首先需要明确的参数:输入路径、输出路径、范围过滤器、阈值及任何特定领域的约束。
- 输出规范:保持结果可重现,明确标识假设,避免未记录的副作用。
快速检查
使用此命令在深入执行之前验证打包脚本入口点是否可以解析。
python -m py_compile scripts/main.py
审计就绪命令
使用这些具体命令进行验证。这些命令特意设计为自包含,避免使用占位符路径。
python -m py_compile scripts/main.py
python scripts/main.py
工作流程
- 在进行详细工作之前,确认用户目标、所需输入和不可协商的约束条件。
- 验证请求是否符合已记录的范围,如果任务需要不支持的假设,则提前停止。
- 使用打包的脚本路径或已记录的推理路径,仅使用实际可用的输入。
- 返回结构化结果,将假设、交付物、风险和未解决事项分开。
- 如果执行失败或输入不完整,切换到备用路径,并明确说明什么阻止了完整完成。
使用方法
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
评估标准
成功指标
- [ ] 成功执行主要功能
- [ ] 输出符合质量标准
- [ ] 优雅地处理边缘情况
- [ ] 性能可接受
测试用例
- 基本功能:标准输入 → 预期输出
- 边缘情况:无效输入 → 优雅的错误处理
- 性能:大型数据集 → 可接受的处理时间
生命周期状态
- 当前阶段:草稿
- 下次审查日期:2026-03-06
- 已知问题:无
- 计划改进:
- 性能优化
- 附加功能支持
输出要求
每个最终响应在相关时应明确以下内容:
- 目标或请求的交付物
- 使用的输入和引入的假设
- 工作流或决策路径
- 核心结果、建议或制品
- 约束、风险、注意事项或验证需求
- 未解决事项和下一步检查
错误处理
- 如果缺少所需输入,请准确说明哪些字段缺失,并仅请求最少的额外信息。
- 如果任务超出已记录的范围,请停止,而不是猜测或悄悄扩大任务范围。
- 如果
scripts/main.py失败,请报告失败点,总结仍可安全完成的内容,并提供手动备用方案。 - 不要捏造文件、引用、数据、搜索结果或执行结果。
输入验证
此技能接受符合 upset-plot-converter 已记录目的且包含足够上下文以安全完成工作流的请求。
当请求超出范围、缺少关键输入或需要不支持的假设时,不要继续工作流。请改为响应:
upset-plot-converter仅处理其已记录的工作流。请提供缺少的所需输入或切换到更合适的技能。
响应模板
对于非简单请求,请使用以下固定结构:
- 目标
- 已接收的输入
- 假设
- 工作流程
- 交付物
- 风险与限制
- 下一步检查
如果请求简单,可以压缩结构,但仍应在假设和限制影响正确性时明确说明。
微信扫一扫