Creator · jaechang-hits
Last updated · Sep 3, 2026
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 e
Sandbox only
Install targets
Codex install prompt
Install the "omics-plotting" agent skill from https://github.com/jaechang-hits/SciAgent-Skills/tree/main/skills/data-visualization/omics-plotting. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: 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. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"jaechang-hits-omics-plotting","task":"Install omics-plotting","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Deep research, source comparison, literature review, RAG, knowledge search, and reports.
Scenario
Research agents
I need my agent to research a topic, compare sources, and produce a concise report.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add jaechang-hits/SciAgent-Skills --skill omics-plotting
Maintenance
fresh
10d since push
Risk
Safe to try
Quality score needs review
GitHub quality
359
72/100 Quality · 78/100 Trust
Coverage tags
Review notes
Quality score needs review · Stars/forks activity: 359 stars, 35 forks; issue activity unavailable in current metadata
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
StrongSolid option that is likely worth shortlisting for production workflows.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
359 GitHub stars
Repo activity
359 stars, 35 forks
Maintenance
10d since push
License
Proprietary (HITS Inc.)
Install
npx skills add jaechang-hits/SciAgent-Skills --skill omics-plotting
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add jaechang-hits/SciAgent-Skills --skill omics-plottingDo not use when
Alternative
175.1K Stars
npx skills add anthropics/skills --skill frontend-design
Alternative
85.2K Stars
npx skills add Leonxlnx/taste-skill --skill design-taste-frontend
Alternative
1.8K Stars
npx skills add Alisa0808/vox-director --skill vox-director
Alternative
175.1K Stars
npx skills add anthropics/skills --skill canvas-design
Agent safety v2
Usable candidate, but the agent should surface permission and audit notes before installation.
Require human approval before installing into a real workspace.
medium
Skill may drive a browser or interact with web pages.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
medium
Skill may inspect schemas, query databases, or work with persistent stores.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20omics-plotting%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20omics-plotting%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/jaechang-hits-omics-plotting/install
Agent should check
Copy prompt
Task: Use omics-plotting in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20omics-plotting%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/jaechang-hits-omics-plotting/install
Install command: npx skills add jaechang-hits/SciAgent-Skills --skill omics-plotting
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/jaechang-hits-omics-plotting/install
LLM text format
/api/skills/jaechang-hits-omics-plotting/install?format=text
Find alternatives
/api/skills/search?q=omics-plotting&limit=3
Agent prompt
Use omics-plotting for this task. Review https://www.openagentskill.com/api/skills/jaechang-hits-omics-plotting/install, then install with: npx skills add jaechang-hits/SciAgent-Skills --skill omics-plottingRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/jaechang-hits-omics-plotting
LLM text
/api/registry/manifest/jaechang-hits-omics-plotting?format=text
Install alias
/api/registry/install/jaechang-hits-omics-plotting
Recommend
/api/registry/recommend?task=Use%20omics-plotting%20in%20an%20agent%20workflow&limit=3
Agent fit
Research agents
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Shortlist this skill and compare it with close alternatives before production adoption.
Role in stack
Companion skill
Primary fit
Research agents
Trust label
Strong shortlist
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO359 GitHub stars
Stars/forks activity
CHECK359 stars, 35 forks; issue activity unavailable in current metadata
Recent maintenance
PASS10d since push
License clarity
PASSProprietary (HITS Inc.)
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Solid option that is likely worth shortlisting for production workflows.
Workflow fit
Investigate faster
I need my agent to research a topic, compare sources, and produce a concise report.
Analyze datasets
I need my agent to analyze CSV data, produce insights, and explain trends.
Search private knowledge
I need my agent to build a RAG workflow over documents and retrieve reliable context.
Workflow fit
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Design, build, test, and ship interfaces
A practical workflow for agents that turn product briefs or Figma designs into polished frontend code, review the result, test it in a browser, and prepare a safe deployment.
Alternative shortlist
Similar skills that may fit this task.
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
--- 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.) ---
# omics-plotting
## Overview
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.
## When to use
- The user asks for a plot / figure / chart / visualization from a results table or an in-memory DataFrame (DEG table, enrichment result, expression matrix, long-form measurements, survival table…). - You are preparing figures for a report, a paper submission or presentation and 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.
## Do NOT use for
- Interactive dashboards or web charts (this is static matplotlib output). - 3D molecular structure rendering (that is the structure viewer, not a plot).
## Key Concepts
### One consistent figure system
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.
### Diverging vs sequential colormaps
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.
### Data shape drives figure type
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.
## Decision Framework
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` |
## Workflow
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. ``).
## Shared style — paste at the top of every plot script
```python 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.family": "sans-serif", "font.sans-serif": ["Arial", "Liberation Sans", "Nimbus Sans", "Helvetica", "DejaVu Sans"], "font.size": 11, "axes.titlesize": 13, "axes.titleweight": "bold", "figure.titlesize": 13, "figure.titleweight": "bold", "axes.labelsize": 12, "axes.linewidth": 1.0, "axes.spines.top": False, "axes.spines.right": False, "xtick.labelsize": 10, "ytick.labelsize": 10, "xtick.direction": "out", "ytick.direction": "out", "legend.frameon": False, "legend.fontsize": 9, "svg.fonttype": "none", "pdf.fonttype": 42, "ps.fonttype": 42, } plt.rcParams.update(PUB_STYLE) # or: with plt.rc_context(PUB_STYLE): ...
# Palette — reuse the SAME colors across every panel of an analysis UP, DOWN, NS = "#d73721", "#204897", "#d9d9d9" # up / down / not-significant PALETTE = ["#2a78d6", "#eb6834", "#1baf7a", "#eda100", "#e87ba4", "#008300", "#4a3aa7", "#e34948", "#12a4c0", "#a66a2e"] # categorical (CVD-safe order) GROUP_COLORS = {"Group1": "#204897", "Group2": "#e34948", "Group3": "#E7B800"} DIVERGING_CMAP = "RdBu_r" # z-score / log2FC heatmaps — set center=0, vmin=-vmax SEQUENTIAL_CMAP = "viridis" # magnitude / -log10 p / density ```
## Multi-panel / composite figures
For combining several plots into **one** multi-panel journal figure (panels A, B, C…), or assembling already-rendered PNG/PDF panels the user supplies, use the sibling **`multipanel`** skill — it owns the composition discipline (one `subplot_mosaic` canvas, per-panel legends, correctly placed panel letters, text-legibility rules, image assembly). Draw each panel with the single-panel recipes below, then compose per that skill. The recipes here each build their *own* figure, so do not call them directly for a composite — copy the recipe **body** onto a mosaic axis as `multipanel` describes.
## Plot catalogue
Pick the recipe by figure type. Columns listed are the **defaults** — override the column-name variables to match the actual table.
| Figure | Input shape | Key columns (defaults) | |---|---|---| | Volcano | DEG table | `log2FoldChange`, `padj`; optional label column | | MA plot | DEG table | `baseMean`, `log2FoldChange`, `padj` | | Expression heatmap | genes × samples matrix | numeric matrix, optional `index_col` | | Correlation heatmap | samples × features (numeric) | all numeric columns | | GSEA bar plot | enrichment result | `Term`, `NES`, `FDR q-val` | | GSEA dot plot | enrichment result | `Term`, `GeneRatio`, `Count`, `Adjusted P-value` | | Box / Violin / Bar | long-form | `x` (category), `y` (numeric), optional `hue` | | Ridgeline | long-form | numeric `x`, categorical `group` | | PCA / UMAP / t-SNE | samples × features | numeric features + optional `group` | | Kaplan–Meier | survival table | `time`, `event`, `group` | | Manhattan | GWAS summary stats | `CHR`, `BP`, `P` | | QQ plot | p-value vector | `P` | | Forest | effect + CI table | `label`, `estimate`, `ci_low`, `ci_high` |
## Recipes
Each is a full python script body. Adjust column names, thresholds, and the save path. All save under `figures/`.
**Volcano** (`-log10 p` vs `log2` fold change):
```python import numpy as np, pandas as pd df = pd.read_csv("deg_results.csv").dropna(subset=["log2FoldChange", "padj"]) fc, p = df["log2FoldChange"].to_numpy(float), df["padj"].to_numpy(float) nlp = -np.log10(np.clip(p, 1e-300, None)) fc_t, p_t = 0.58, 0.05 up, down = (fc >= fc_t) & (p < p_t), (fc <= -fc_t) & (p < p_t) ns = ~(up | down) fig, ax = plt.subplots(figsize=(7, 6)) ax.scatter(fc[ns], nlp[ns], c=NS, s=12, alpha=0.5, edgecolors="none", rasterized=True, label=f"NS ({ns.sum()})") ax.scatter(fc[down], nlp[down], c=DOWN, s=18, alpha=0.85, edgecolors="none", label=f"Down ({down.sum()})") ax.scatter(fc[up], nlp[up], c=UP, s=18, alpha=0.85, edgecolors="none", label=f"Up ({up.sum()})") for v in (fc_t, -fc_t): ax.axvline(v, ls="--", lw=0.8, color="0.5") ax.axhline(-np.log10(p_t), ls="--", lw=0.8, color="0.5") lab = (df["gene"] if "gene" in df else pd.Series(df.index)).astype(str).to_numpy() sig = np.where(up | down)[0] top = sig[np.argsort(nlp[sig])[::-1][:10]] # standalone: top ~10; composite panel: cut to <=5 try: # repel labels so they never overlap from adjustText import adjust_text texts = [ax.text(fc[i], nlp[i], lab[i], fontsize=7) for i in top] adjust_text(texts, ax=ax, expand=(1.3, 1.6), arrowprops=dict(arrowstyle="-", color="0.6", lw=0.5)) except ImportError: # no adjustText -> label fewer, with an offset for i in top[:5]: ax.annotate(lab[i], (fc[i], nlp[i]), xytext=(6, 6), textcoords="offset points", fontsize=7, ha="left", va="bottom") ax.set_xlabel(r"$\log_{2}$ fold change"); ax.set_ylabel(r"$-\log_{10}$ padj") ax.set_title("Volcano plot"); ax.legend(loc="upper right", markerscale=1.4) fig.tight_layout(); fig.savefig("figures/volcano.png") ```
**MA plot** (`log2` fold change vs mean expression; columns `baseMean`, `log2FoldChange`, optional `padj`):
```python import numpy as np, pandas as pd df = pd.read_csv("deg_results.csv").dropna(subset=["baseMean", "log2FoldChange"]) x = np.log10(df["baseMean"].to_numpy(float) + 1) fc = df["log2FoldChange"].to_numpy(float) sig = (df["padj"].to_numpy(float) < 0.05) if "padj" in df else np.zeros(len(df), bool) fig, ax = plt.subplots(figsize=(7, 5)) ax.scatter(x[~sig], fc[~sig], c=NS, s=10, alpha=0.5, edgecolors="none", rasterized=True, label="NS") ax.scatter(x[sig], fc[sig], c=UP, s=14, alpha=0.85, edgecolors="none", label=f"padj<0.05 ({int(sig.sum())})") ax.axhline(0, color="0.4", lw=0.8) ax.set_xlabel(r"$\log_{10}$(mean norm. count + 1)"); ax.set_ylabel(r"$\log_{2}$ fold change") ax.set_title("MA plot"); ax.legend(loc="upper right") fig.tight_layout(); fig.savefig("figures/ma.png") ```
**Clustered expression heatmap** (z-scored, seaborn `clustermap`):
```python import seaborn as sns, pandas as pd mat = pd.read_csv("expression.csv", ind
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for omics-plotting, ready for a manual X post.
omics-plotting: omics-plotting: publication-style figure authoring for omics / bioinformatics results with ma... 359 stars https://www.openagentskill.com/skills/jaechang-hits-omics-plotting?ref=x
Listing + install path for omics-plotting: https://www.openagentskill.com/skills/jaechang-hits-omics-plotting?ref=x Install: npx skills add jaechang-hits/SciAgent-Skills --skill omics-plotting
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to jaechang-hits but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/jaechang-hits-omics-plotting?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jaechang-hits-omics-plotting?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/jaechang-hits-omics-plotting/audit)
[](https://www.openagentskill.com/skills/jaechang-hits-omics-plotting?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)jaechang-hits
@jaechang-hits
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Frontend Design
Guidance for distinctive, intentional UI design, typography, visual direction, and non-template-like product interfaces.
175.1K StarsTaste Skill: Anti-Slop Frontend
Design and implementation guidance for distinctive landing pages, portfolios, product demos, and purposeful redesigns.
85.2K StarsVox Director
Turn one topic into a narrated Vox-style paper-collage explainer or ad video, from script through captions.
1.8K StarsCanvas Design
Create original visual art, posters, PNG assets, and PDF documents through a clear design philosophy.
175.1K StarsPermission surface
filesystem or document access, database access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness