# Deg And Marker Gene Heatmap With Viridis Col Clustering

> Generates a publication-ready heatmap for differentially expressed genes (DEGs) or marker genes using viridis colormap, column-only hierarchical clustering, and Arial font — applicable to any normalized gene expression matrix with genes as rows and samples/subclusters as columns.

- Skill: `ecnu-icalk/deg-and-marker-gene-heatmap-with-viridis-col-clustering` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/deg-and-marker-gene-heatmap-with-viridis-col-clustering`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/deg-and-marker-gene-heatmap-with-viridis-col-clustering/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/deg-and-marker-gene-heatmap-with-viridis-col-clustering

---


# deg-and-marker-gene-heatmap-with-viridis-col-clustering

Generates a publication-ready heatmap for differentially expressed genes (DEGs) or marker genes using viridis colormap, column-only hierarchical clustering, and Arial font — applicable to any normalized gene expression matrix with genes as rows and samples/subclusters as columns.

## Prompt

# Goal
Generate a seaborn-based heatmap for differentially expressed or marker genes, accepting a pandas DataFrame with genes as rows and samples/subclusters as columns.

# Constraints & Style
- Use `cmap="viridis"` exclusively; do not use RdBu_r, center, or any other colormap or symmetry setting.
- Enable only column-wise hierarchical clustering: set `col_cluster=True` and `row_cluster=False`.
- Use Arial font for all text elements (title, axis labels, tick labels, colorbar label); enforce via `plt.rcParams["font.sans-serif"] = ["Arial", "DejaVu Sans", "Liberation Sans"]` and `plt.rcParams["axes.unicode_minus"] = False`; explicitly annotate plot elements if seaborn does not inherit font settings.
- Apply row-wise z-score normalization (per gene) before plotting: `df.T.apply(lambda x: (x - x.mean()) / x.std(ddof=0)).T`.
- Use `robust=True` in `sns.heatmap` for outlier resilience.
- Set `linewidths=0.3` and `linecolor='lightgray'` for subtle cell borders.
- Set figure size to `(8, 10)`; include colorbar labeled "Z-score" with shrink=0.6.
- Title: "Differentially Expressed Genes (Z-score normalized)" or "Marker Genes (Z-score normalized)" (bold, 14pt); adapt label based on context but retain consistent phrasing.
- Axis labels: "Samples" or "Subclusters" (x), "Genes" (y); no rotation of tick labels.
- Call `plt.tight_layout()` before `plt.show()`; ensure no clipping.

# Workflow
1. Accept input DataFrame with gene-indexed rows and sample/subcluster-labeled columns.
2. Apply row-wise z-score normalization.
3. Configure matplotlib font settings for Arial compatibility.
4. Generate heatmap with specified clustering, colormap, robust scaling, layout, and labeling.
5. Display the plot.

## Triggers

- 生成差异表达基因热图
- 画DEG热图
- 单细胞亚群标志基因热图
- scRNA-seq marker gene heatmap
- viridis列聚类热图

