sciagent-skill-creator
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
omics-plotting: publication-style figure authoring for omics / bioinformatics results with matplotlib / seaborn. Read this before writing any plotting or figure code in any omics analysis — RNA-seq, proteomics, single-cell, variant, or database results — not only when a plot is
$ npx -y skills add jaechang-hits/SciAgent-Skills --skill omics-plotting --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/omics-plottingContext preview
The summary Claude sees to decide when to auto-load this skill.
omics-plotting: publication-style figure authoring for omics / bioinformatics results with matplotlib / seaborn. Read this before writing any plotting or figure code in any omics analysis — RNA-seq, proteomics, single-cell, variant, or database results — not only when a plot is
name: omics-plotting description: > omics-plotting: publication-style figure authoring for omics / bioinformatics results with matplotlib / seaborn. Read this before writing any plotting or figure code in any omics analysis — RNA-seq, proteomics, single-cell, variant, or database results — not only when a plot is explicitly requested: whenever an analysis will produce a figure, load this first and follow its recipes. Covers volcano, MA, expression / correlation heatmap, GSEA bar / dot plot, box / violin / bar / ridgeline, PCA / UMAP / t-SNE scatter, Kaplan–Meier, Manhattan / QQ / forest. Supplies a shared journal-ready style and copy-paste recipes so every figure looks like one consistent system. To combine several plots into ONE multi-panel composite figure, use the sibling `multipanel` skill. license: Proprietary (HITS Inc.)
When the user wants a figure, **generate it with matplotlib / seaborn**, applying the shared style block below. The user can hand-tune colors, fonts, or spines per plot, but unless they ask for something specific, paste the style block and reuse the palette so a whole analysis reads as one figure system at a glance.
This skill is self-contained: everything you need (style, palette, recipes) is in this document.
or an in-memory DataFrame (DEG table, enrichment result, expression matrix, long-form measurements, survival table…).
want a consistent publication style.
> Combining several plots into one multi-panel composite, or assembling > user-supplied PNG/PDF panels, is handled by the sibling `multipanel` > skill — use this skill to draw each individual panel.
The core idea is that every figure from a single analysis should look like it came from the same publication. That is enforced by two shared objects: the `PUB_STYLE` rcParams block (fonts, spines, DPI, editable vector text) and a fixed `PALETTE` / directional color set (`UP`, `DOWN`, `NS`). Paste both at the top of every plot script and map the *same* group or direction to the *same* color across panels, so a reader can carry meaning from one figure to the next.
Color encoding is not free choice. Use the **diverging** colormap (`DIVERGING_CMAP = "RdBu_r"`, always `center=0`, `vmin=-vmax`) for signed quantities where zero is meaningful — z-scores, log2 fold changes, correlations. Use the **sequential** colormap (`SEQUENTIAL_CMAP = "viridis"`) for unsigned magnitudes — densities, `-log10 p`, counts. Mixing these (a sequential map on signed data) hides the sign and misleads the reader.
Each recipe expects a specific table shape: a per-gene DEG table (volcano, MA), a genes × samples matrix (heatmap), a samples × features matrix (PCA/UMAP), or long-form tidy rows (box/violin/bar, ridgeline, Kaplan–Meier). Identifying the shape first — then reading the header to confirm the real column names — is what selects the recipe. The column names in each recipe are defaults to override, not fixed requirements.
Pick the figure type from what the data represents and what question it answers:
What does the table hold? ├─ Per-gene stats (log2FC, padj) │ ├─ emphasize significance ......... Volcano │ └─ emphasize expression level ..... MA plot ├─ genes × samples matrix │ ├─ show patterns/clusters ......... Clustered expression heatmap (z-score) │ └─ show sample-sample QC .......... Correlation heatmap ├─ Enrichment / gene-set result │ ├─ signed effect (NES) ............ GSEA bar │ └─ ratio + size + significance .... GSEA dot plot ├─ Long-form measurements (x, y) │ ├─ compare distributions .......... Box / Violin │ ├─ compare means .................. Bar (with error bars) │ └─ many groups, shape matters ..... Ridgeline ├─ samples × features (high-dim) ...... PCA / UMAP / t-SNE └─ time-to-event + group ............. Kaplan–Meier
| Data you have | Question | Figure | Colormap / palette | |---|---|---|---| | DEG table | Which genes change, how significantly? | Volcano | `UP`/`DOWN`/`NS` | | DEG table | Effect vs abundance | MA plot | `UP`/`DOWN`/`NS` | | Expression matrix | Cluster structure | Clustered heatmap | diverging, center 0 | | Expression matrix | Sample QC | Correlation heatmap | diverging, [-1, 1] | | Enrichment result | Top pathways, direction | GSEA bar | `UP`/`DOWN` | | Enrichment result | Ratio + significance + size | GSEA dot plot | sequential | | Long-form | Group distributions | Box / Violin | categorical `PALETTE` | | High-dim matrix | Global sample layout | PCA / UMAP / t-SNE | categorical `PALETTE` | | Survival table | Group survival over time | Kaplan–Meier | categorical `PALETTE` |
1. **Identify the data source** — a workspace-relative CSV/TSV path or a DataFrame already in memory — and the **figure type** (pick from the table below). If the required columns are unclear, inspect the table's header first. 2. **Write one python script**: paste the style block, load the data, draw the plot with the matching recipe, and save to a **workspace-relative** path under `figures/`. 3. **Report the saved path** back to the user (and reference it in any report / deck by that relative path, e.g. ``).
import matplotlib.pyplot as plt
# Publication style (colorblind-friendly, editable vector text, no top/right spines)
PUB_STYLE = {
"figure.dpi": 110, "savefig.dpi": 300, "savefig.bbox": "tight",
"font.familTurn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.
Scaffold a new SciAgent-Skills entry. Picks pipeline/toolkit/database/guide template, creates skills/{category}/{name}/SKILL.md with valid frontmatter, appends…
Bayesian modeling with PyMC 5: priors, likelihood, NUTS/ADVI sampling, diagnostics (R-hat, ESS), LOO/WAIC comparison, prediction. Hierarchical, logistic, GP…
Time-to-event modeling with scikit-survival: Cox PH (elastic net), Random Survival Forests, Boosting, SVMs for censored data. C-index, Brier, time-dependent…
Guided statistical analysis: test choice, assumption checks, effect sizes, power, APA reporting. Pick tests, verify assumptions, or format results for…
Python statistical modeling: regression (OLS, WLS, GLM), discrete (Logit, Poisson, NegBin), time series (ARIMA, SARIMAX, VAR), with rigorous inference,…
DL cell/nucleus segmentation for fluorescence and brightfield microscopy. Pre-trained models (cyto3, nuclei, tissuenet) and a generalist flow-based algorithm…