Professional heatmap beautification tool with automatic clustering and annotation tracks
Install with Tessl CLI
npx tessl i github:aipoch/medical-research-skills --skill heatmap-beautifierOverall
score
61%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
ID: 147
Professional beautification tool for gene expression heatmaps, automatically adds clustering trees, color annotation tracks, and intelligently optimizes label layout.
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.txtIf 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.