Convert complex Venn diagrams with more than 4 sets into clearer UpSet plots for publication-ready set intersection visualization.
72
66%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./scientific-skills/Data analysis/upset-plot-converter/SKILL.mdConvert complex multi-set Venn diagrams (4+ sets) into clearer UpSet plots. Automatically sorts intersections by size and generates publication-ready figures.
This skill accepts: set membership data (dicts of sets or paired name/list inputs) for converting multi-set Venn diagrams into UpSet plots.
If the request does not involve set intersection visualization — for example, asking to perform statistical tests on set overlaps, generate heatmaps, or create bar charts of non-set data — do not proceed. Instead respond:
"upset-plot-converter is designed to visualize set intersections as UpSet plots. Your request appears to be outside this scope. Please provide set membership data with 4+ sets, or use a more appropriate tool for your task."
python -m py_compile scripts/main.py
python scripts/main.pypython -m py_compile scripts/main.py
python scripts/main.py --help
# Inline test with 5 sets:
python -c "
from scripts.main import convert_venn_to_upset
sets = {'A':{1,2,3},'B':{2,3,4},'C':{3,4,5},'D':{4,5,6},'E':{5,6,7}}
convert_venn_to_upset(sets, output_path='test_upset.png')
print('OK')
"from skills.upset_plot_converter.scripts.main import convert_venn_to_upset
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")| Parameter | Required | Default | Description |
|---|---|---|---|
sets | Yes* | — | Dict of set names → sets/lists of elements |
set_names | Yes* | — | List of set names (alternative input) |
lists | Yes* | — | List of lists (paired with set_names) |
output_path | Yes | — | Path to save output figure |
title | No | None | Optional plot title |
min_subset_size | No | 1 | Minimum intersection size to display |
max_intersections | No | 30 | Maximum intersections to show |
*Provide either sets dict OR set_names + lists pair.
scripts/main.py with available inputs, or use the documented reasoning path.If scripts/main.py cannot run (missing inputs, environment error), respond with:
FALLBACK REPORT
───────────────────────────────────────
Objective : <stated goal>
Blocked by : <exact missing input or error>
Partial result : <what can still be assessed manually>
Next step : <minimum action to unblock>
───────────────────────────────────────PNG file of the UpSet plot visualization with:
Every response must make these explicit when relevant:
scripts/main.py fails, report the failure point, summarize what can still be completed safely, and provide the manual fallback above.Use this fixed structure for non-trivial requests:
For simple requests, compress the structure but keep assumptions and limits explicit when they affect correctness.
pip install -r requirements.txt
# Requires: matplotlib, numpy, pandasca9aaa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.