Professional beautification tool for gene expression heatmaps, automatically adds clustering trees, color annotation tracks, and intelligently optimizes label layout.
49
54%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./scientific-skills/Data Analysis/heatmap-beautifier/SKILL.mdID: 147
Professional beautification tool for gene expression heatmaps, automatically adds clustering trees, color annotation tracks, and intelligently optimizes label layout.
See ## Features above for related details.
scripts/main.py.references/ for task-specific guidance.See ## Prerequisites above for related details.
Python: 3.10+. Repository baseline for current packaged skills.matplotlib: unspecified. Declared in requirements.txt.numpy: unspecified. Declared in requirements.txt.pandas: unspecified. Declared in requirements.txt.seaborn: unspecified. Declared in requirements.txt.See ## Usage above for related details.
cd "20260318/scientific-skills/Data Analytics/heatmap-beautifier"
python -m py_compile scripts/main.py
python scripts/main.py --helpExample run plan:
CONFIG block or documented parameters if the script uses fixed settings.python scripts/main.py with the validated inputs.See ## Workflow above for related details.
scripts/main.py.references/ contains supporting rules, prompts, or checklists.Use this command to verify that the packaged script entry point can be parsed before deeper execution.
python -m py_compile scripts/main.pyUse these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.
python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py --input "Audit validation sample with explicit symptoms, history, assessment, and next-step plan."pip install seaborn matplotlib scipy pandas numpyfrom skills.heatmap_beautifier.scripts.main import HeatmapBeautifier
# Initialize
hb = HeatmapBeautifier()
# Load data and generate heatmap
hb.create_heatmap(
data_path="expression_matrix.csv",
output_path="output/heatmap.pdf"
)hb.create_heatmap(
data_path="expression_matrix.csv",
output_path="output/heatmap_annotated.pdf",
# Row annotations (gene classification)
row_annotations={
"Gene Type": gene_type_dict, # {"gene1": "Kinase", "gene2": "Transcription Factor", ...}
"Pathway": pathway_dict
},
# Column annotations (sample grouping)
col_annotations={
"Condition": condition_dict, # {"sample1": "Control", "sample2": "Treatment", ...}
"Time": time_dict
},
# Custom colors
annotation_colors={
"Condition": {"Control": "#2ecc71", "Treatment": "#e74c3c"},
"Gene Type": {"Kinase": "#3498db", "Transcription Factor": "#9b59b6"}
}
)hb.create_heatmap(
data_path="expression_matrix.csv",
output_path="output/heatmap.pdf",
title="Gene Expression Heatmap",
cmap="RdBu_r", # Color map
center=0, # Color center value
vmin=-2, vmax=2, # Value range
row_cluster=True, # Row clustering
col_cluster=True, # Column clustering
standard_scale=None, # Standardization: "row", "col", None
z_score=None, # Z-score: 0 (row), 1 (col), None
# Label optimization
max_row_label_fontsize=10,
max_col_label_fontsize=10,
rotate_col_labels=45, # Column label rotation angle
hide_row_labels=False,
hide_col_labels=False,
# Size
figsize=(12, 10),
dpi=300
)| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
--data-path, -d | string | - | Yes | Path to input data file (CSV) |
--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 | No | Output format (pdf, png, svg) |
,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
...Annotation dictionary format: {item_name: category_value}
Example:
condition_dict = {
"sample1": "Control",
"sample2": "Control",
"sample3": "Treatment",
"sample4": "Treatment"
}Built-in color schemes:
"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-Red# Basic usage
python -m skills.heatmap_beautifier.scripts.main \
--input expression_matrix.csv \
--output heatmap.pdf
# With clustering and annotations
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"Generated heatmap includes:
Bioinformatics Visualization Team
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
# Python dependencies
pip install -r requirements.txtEvery final response should make these items explicit when they are relevant:
scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.This skill accepts requests that match the documented purpose of heatmap-beautifier and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
heatmap-beautifieronly handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Use the following fixed structure for non-trivial requests:
If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.
f5ef65b
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.