bulkrna-enrichment

bulkrna-enrichment is a skill for Claude Code, Codex from TianGzlab/OmicsClaw. It costs 59 tokens per session (1,165 once invoked), scanned A, original, Apache-2.0.

A workflow for finding biological pathways that are overrepresented in a list of genes from bulk RNA sequencing. Bulk RNA sequencing measures average gene activity across a sample, and pathway enrichment checks whether related genes appear unusually often.

In plain words
What is it for?
Use it after comparing two bulk RNA-seq conditions, with either a filtered gene list or a ranked full list, to produce enrichment tables, plots, and a report.
Why use it?
It turns a long list of changed genes into groups of biological processes that may help explain the result.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it after comparing two bulk RNA-seq conditions, with either a filtered gene list or a ranked full list, to produce enrichment tables, plots, and a report.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tiangzlab/omicsclaw/bulkrna-enrichment
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add TianGzlab/OmicsClaw --skill bulkrna-enrichment
Clone the repo
git clone --depth 1 https://github.com/TianGzlab/OmicsClaw

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for bulkrna-enrichment

README.md
[![agentmods](https://agentmods.dev/badge/skills/tiangzlab/omicsclaw/bulkrna-enrichment/github.svg)](https://agentmods.dev/skills/tiangzlab/omicsclaw/bulkrna-enrichment)
Your own site
<a href="https://agentmods.dev/skills/tiangzlab/omicsclaw/bulkrna-enrichment"><img src="https://agentmods.dev/badge/skills/tiangzlab/omicsclaw/bulkrna-enrichment/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for bulkrna-enrichment

Your own site · 80×15
<a href="https://agentmods.dev/skills/tiangzlab/omicsclaw/bulkrna-enrichment"><img src="https://agentmods.dev/badge/skills/tiangzlab/omicsclaw/bulkrna-enrichment.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,165 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Rogue Agent · line 3
    Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
    Fix: Prevent the skill from modifying its own code, SKILL.md, or configuration files. Treat skill files as read-only at runtime.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00059 $0.01165
Opus 5 $0.00030 $0.00583
Sonnet 5 $0.00012 $0.00233
Haiku 4.5 $0.00006 $0.00117

Measured 11d ago against content hash 9b53ed45e862, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

bulkrna-enrichment scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

The scan reads SKILL.md. This mod also ships 3 executable files (bulkrna_enrichment.py, tests/__init__.py, tests/test_bulkrna_enrichment.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/bulkrna/bulkrna-enrichment/SKILL.md · 89 lines

How it starts

The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.

bulkrna-enrichment

When to use

Run after bulkrna-de to ask "which biological pathways are enriched in the DEG list?". Two modes: ORA (over-representation analysis on a significance-filtered gene list) and pre-ranked GSEA (full ranked list, no threshold needed). Backed by GSEApy with R clusterProfiler and a built-in hypergeometric implementation as fallbacks.

Inputs & Outputs

Inputs

  • File types: .csv
  • Accepts artifact bulkrna.differential_results (csv)

Outputs

  • tables/enrichment_results.csv
  • tables/enrichment_significant.csv
  • figures/enrichment_barplot.png
  • figures/enrichment_dotplot.png
  • report.md
  • result.json

Flow

  1. Load DE table; pick a ranking metric (log2FoldChange, signed -log10 padj, etc.). Falls back to log2FoldChange with a warning at bulkrna_enrichment.py:67 if the heuristic finds no preferred metric.
  2. Resolve --method: ORA, GSEA, or auto. Hard-fails at :370 for unknown methods.
  3. Try R clusterProfiler first; on import failure, fall back to GSEApy (:379).
  4. On GSEApy failure, fall back to the built-in hypergeometric implementation (:436 ORA path, :479 GSEA path).
  5. Render barplot + dotplot; emit enrichment table + report.

Gotchas

  • Three-tier silent fallback chain. R clusterProfiler → GSEApy → built-in. Each fall is logger.warning-only (bulkrna_enrichment.py:379, :436, :479); the chosen backend is in result.json["method_used"]. Built-in is the least feature-rich (no permutation-based GSEA p-values) — verify which engine actually ran before claiming a particular method.
  • Ranking-metric auto-pick is heuristic and not surfaced in result.json. :67 warns when it falls back to log2FoldChange, but if your DE table uses a non-standard column name (e.g. lfc instead of log2FoldChange), the heuristic may pick the wrong column without complaint. The chosen metric is logged at INFO (:450) but does NOT make it into the summary dict (which carries only n_input_genes, n_significant, method_used, n_terms_tested, n_enriched_terms, enrichment_df). Grep the run's stderr for "Using gseapy for pre-ranked GSEA (metric: ...)" to confirm.
  • --padj-cutoff and --lfc-cutoff only apply to ORA. Pre-ranked GSEA uses the full ranked list and ignores both flags — passing them on a GSEA run silently does nothing. This is correct GSEA behaviour, but easy to mistake for a bug.
  • No DEGs above thresholds → silent empty plots. :516 and :525 warn ("No enrichment results to plot" / "No terms with valid padj") and skip plotting; the run still exits 0 with empty figures and an empty tables/enrichment_results.csv. Loosen thresholds or pre-filter the input if your DE list is sparse.

Read the full file on GitHub · 89 lines

Files

What ships with it

7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 89 lines · 59 tokens per session scan A 9b53ed45e862

Subscribe to this mod's changes

bulkrna-enrichment is a skill published in the GitHub repository TianGzlab/OmicsClaw (160 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 59 tokens to every session and 1,165 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

enrichment

Functional enrichment and pathway analysis including GSEA, ORA, ssGSEA, GSVA, and decoupler-based activity inference.

inflexa-ai/inflexa · 29 tokens

spatial-enrichment

Pathway and gene set enrichment analysis for spatial transcriptomics data.

ShangBioLab/SpatialClaw · 18 tokens

kegg-query

Query KEGG database for drug information, pathway analysis, and disease-drug-target discovery. Use this skill when: (1) Looking up drug information including efficacy, targets, metabolism, and interactions, (2) Analyzing metabolic or signaling pathways to retrieve genes, compounds, and modules, (3) Discovering…

PharMolix/OpenBioMed · 82 tokens

onekgpd

Query the 1000 Genomes Project dataset (3,202 whole-genome-sequenced individuals, GRCh38) at the level of individual participants. Use when a question is about individuals or variants in the 1000 Genomes Project cohort: which individuals carry variants matching specific criteria in a gene or region, which individuals…

K-Dense-AI/scientific-agent-skills · 143 tokens

pkpd-modeling

Pharmacokinetic and pharmacodynamic modelling and simulation - non-compartmental analysis, compartmental and population PK, PK/PD and exposure-response, TMDD, PBPK orientation, bioequivalence, allometric scaling and first-in-human dose, drug interaction prediction, and Bayesian therapeutic drug monitoring. Use when…

K-Dense-AI/scientific-agent-skills · 273 tokens

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

K-Dense-AI/scientific-agent-skills · 50 tokens