skill/heatmap-beautifier/SKILL.md
Professional beautification tool for gene expression heatmaps, automatically adds clustering trees, color annotation tracks, and intelligently optimizes label layout.
npx skillsauth add Centaurioun/osteogenesis_imperfecta heatmap-beautifierInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Professional beautification tool for gene expression heatmaps, automatically adds clustering trees, color annotation tracks, and intelligently optimizes label layout.
This skill accepts: CSV files containing gene expression matrices (genes as rows, samples as columns) for heatmap generation and beautification.
If the user's request does not involve heatmap generation or gene expression visualization — for example, asking to perform differential expression analysis, run statistical tests, or generate other chart types — do not proceed. Instead respond:
"heatmap-beautifier is designed to generate and beautify gene expression heatmaps from expression matrix data. Your request appears to be outside this scope. Please provide a CSV expression matrix file, or use a more appropriate tool for your task."
Do not continue the workflow when the request is out of scope, missing the required input CSV, or would require unsupported assumptions. For missing inputs, state exactly which fields are missing.
python -m py_compile scripts/main.py
python scripts/main.py --help
# Demo mode (no CSV required):
python scripts/main.py --demo --output demo_heatmap.pdf
--demo to generate a synthetic 20×10 matrix without a real CSVpip install seaborn matplotlib scipy pandas numpy
from skills.heatmap_beautifier.scripts.main import HeatmapBeautifier
hb = HeatmapBeautifier()
hb.create_heatmap(
data_path="expression_matrix.csv",
output_path="output/heatmap.pdf"
)
python -m skills.heatmap_beautifier.scripts.main \
--input expression_matrix.csv \
--output heatmap.pdf
python -m skills.heatmap_beautifier.scripts.main \
--input expression_matrix.csv \
--output heatmap.pdf \
--row-cluster \
--col-cluster \
--row-annotations row_annot.json \
--col-annotations col_annot.json \
--title "Gene Expression"
# Demo mode (no CSV required)
python -m skills.heatmap_beautifier.scripts.main --demo --output demo_heatmap.pdf
# Save clustering metadata to JSON for agent consumption
python -m skills.heatmap_beautifier.scripts.main \
--input expression_matrix.csv \
--output heatmap.pdf \
--output-json heatmap_metadata.json
| Parameter | Type | Default | Required | Description |
|-----------|------|---------|----------|-------------|
| --data-path, -d | string | - | Yes* | Path to input data file (CSV) |
| --demo | flag | - | No | Generate synthetic 20×10 demo matrix |
| --output-path, -o | string | heatmap.png | No | Output file path |
| --title | string | Gene Expression Heatmap | No | Heatmap title |
| --cmap | string | RdBu_r | No | Color map |
| --center | float | 0 | No | Color center value |
| --vmin | float | -2 | No | Minimum value for color scale |
| --vmax | float | 2 | No | Maximum value for color scale |
| --row-cluster | bool | true | No | Enable row clustering |
| --col-cluster | bool | true | No | Enable column clustering |
| --standard-scale | string | None | No | Standardization: row, col, None |
| --z-score | int | None | No | Z-score: 0 (row), 1 (col), None |
| --figsize | tuple | (12, 10) | No | Figure size (width, height) |
| --dpi | int | 300 | No | Resolution (dots per inch) |
| --format | string | pdf | No | Output format (pdf, png, svg) |
| --output-json | string | - | No | Save clustering metadata (gene_order, sample_order, annotation_colors) to JSON |
*One of --data-path or --demo is required.
,sample1,sample2,sample3,sample4
Gene_A,2.5,-1.2,0.8,-0.5
Gene_B,-0.8,1.5,-2.1,0.3
Gene_C,1.2,0.5,-0.7,1.8
"RdBu_r" — Red-Blue (classic differential expression)"viridis" — Yellow-Purple (continuous data)"RdYlBu_r" — Red-Yellow-Blue"coolwarm" — Cool-Warm"seismic" — Seismic"bwr" — Blue-White-Redscripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.except (pd.errors.ParserError, UnicodeDecodeError, ValueError) for CSV parsing errors — not bare except. If you see a bare except in an older version, report it.FileNotFoundError and ValueError are caught in main() with try/except (FileNotFoundError, ValueError) as e: print(f'Error: {e}', file=sys.stderr); sys.exit(1) and reported to stderr with exit code 1.If scripts/main.py fails or required inputs are incomplete:
python -m skills.heatmap_beautifier.scripts.main --input data.csv --output out.png.--demo to verify the environment works without a real CSV.Every final response must make these items explicit when relevant:
Use the following fixed structure for non-trivial requests:
For stress/multi-constraint requests, also include:
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
tools
Automated generation of baseline characteristics tables (Table 1) for clinical research papers.
development
Statistical models library for Python. Use when you need specific model classes (OLS, GLM, mixed models, ARIMA) with detailed diagnostics, residuals, and inference. Best for econometrics, time series, rigorous inference with coefficient tables. For guided statistical test selection with APA reporting use statistical-analysis.
development
Configure and manage - Calculate statistical significance calculator operations. Auto-activating skill for Data Analytics. Triggers on: statistical significance calculator, statistical significance calculator Part of the Data Analytics skill category. Use when working with statistical significance calculator functionality. Trigger with phrases like "statistical significance calculator", "statistical calculator", "statistical".
development
Statistical test selection, assumption checking, and APA-formatted reporting. Use when analyzing experimental results or writing results sections.