A skill and agent pack for omics data analysis, literature discovery, scientific writing, and data visualization. Works with Claude Code and the Codex CLI.
Documentation
Read the docs at https://fmschulz.github.io/omics-skills/. They cover installation, the agent set, the skill catalog, routing, and development. Release notes are published on the GitHub Releases page.
Scope
Four agent personas — omics-scientist, literature-expert, science-writer, dataviz-artist — compose a set of small, single-purpose skills (SKILL.md files) for tasks ranging from read QC through assembly, gene calling, annotation, phylogenomics, comparative genomics, structure prediction, viromics, interdomain HGT, statistics, manuscript drafting, and figure generation.
The canonical agent sources are Markdown prompts. Installation keeps those files for Claude Code and renders native TOML agent definitions for Codex. Skills are Markdown directories with defined input/output contracts. A deterministic router (scripts/skill_index.py) picks an agent and an ordered set of skills for a task.
How Analyses Are Run
Every skill can be used on its own. The bio-* skills also share a few habits that make exploratory analyses easier to audit and reproduce:
- Hypothesis register. Exploratory work starts with at least five working hypotheses (biological mechanism, technical artifact, null, sampling or batch effect, database artifact). Each is revised as supported, weakened, ruled out, or unresolved, with the evidence that changed its status.
- Reflection after each step. After each major result or QC gate, the agent records what was observed, which hypotheses gained or lost support, and the next discriminating check.
- Literature-derived analysis plan. Before deciding what is "interesting" the agent reads the literature for the inferred group and summarises which markers, comparison sets, plots, and outliers are diagnostic.
- Comparative axes against close relatives. When relatives are available, the query is run through five axes — genome-property frontier, marker-gene census, per-family copy-number, synteny and conserved neighborhoods, and non-coding RNA census — each producing a side-by-side comparison file.
- Literature search with fallbacks. When users provide API access or local corpora,
polars-dovmedqueries PMC and bioRxiv through the hosted API or a local parquetdovmed scan, then falls back to targetedWebFetch/WebSearchso endpoint outages do not silently skip the literature step.
Tooling baseline
Skills target current stable releases as of 2026 and document GPU alternatives where they exist.
| Step | CPU baseline | GPU alternative |
|---|---|---|
| Read QC (long) | Dorado summaries/trimming, Chopper, Filtlong, Pychopper for full-length cDNA; Porechop_ABI only as a documented fallback | — |
| Read mapping (short) | bwa-mem2, BBMap | NVIDIA Parabricks fq2bam |
| Read mapping (long) | minimap2 v2.31 | mm2-fast (AVX-512), mm2-gb, mm2-ax |
| Assembly | SPAdes v4.2.0 (Illumina), Flye v2.9.6 (long-read isolate draft), Autocycler v0.6.2 (bacterial isolate consensus), Flye --meta / metaFlye (long-read metagenome), metaMDBG 1.1 (HiFi metagenome), myloasm (optional) |
— |
| Domain taxonomy triage | BBTools QuickClade via bryce911/bbtools:39.85 container (percontig for assemblies), then GTDB-Tk / EukCC / vConTACT3 / GVClass by domain |
— |
| Binning | QuickBin via bryce911/bbtools:39.85 container |
SemiBin2 v2.3.0 (CUDA-backed PyTorch) |
| Bin QC | CheckM2 v1.1.0, EukCC2 v2.1.3, GUNC v1.1.1 | — |
| Gene calling | Pyrodigal v3.7.1, pyrodigal-gv v0.3.2, BRAKER4 for current eukaryotic workflows; BRAKER3 v3.0.8 for legacy reproduction | — |
| ncRNA | tRNAscan-SE v2.0.12, Infernal v1.1.5 (cmsearch against Rfam SSU/LSU CMs) |
— |
| Annotation | DIAMOND v2.2.1 (clusterednr preferred), eggNOG-mapper v2.1.15, InterProScan 5.77-108.0, pyhmmer, TaxonKit v0.20 | MMseqs2-GPU |
| Phylogenetics | VeryFastTree v4 (exploratory/time-bounded trees and >2,000 taxa), IQ-TREE v3.1.2 (final ≤2,000 taxa), MAFFT, trimAl, ete4 | — |
| Orthology / pangenome | OrthoFinder v3, ProteinOrtho v6 (large pangenomes), MMseqs2 | MMseqs2-GPU |
| Synteny | MCScanX, ntSynt, SibeliaZ | — |
| Viromics | geNomad v1.12.0, CheckV v1.1.1, VirSorter2, vConTACT3 v3.2.x (prokaryotic-virus taxonomy), GVClass v1.6.0 (Nucleocytoviricota) | — |
| Structure | TM-Vec v1.0.2 (triage), Boltz v2.2.1 (default predictor), ColabFold v1.6.1 + MMseqs2-GPU MSA, ESMFold (pre-screen), Foldseek 10-941cd33 | Boltz, Foldseek --gpu 1, ColabFold, ESMFold |
| Statistics / ML | LinkML v1.11.1 schemas, Pydantic v2.13.4 validation/parsing, DuckDB v1.5.3, scikit-learn 1.8.0, XGBoost v3.2.0 | XGBoost device=cuda, RAPIDS cuML |
The full survey of versions, alternatives, and benchmarks is in docs/tooling-survey-2026.md.
Installation
Claude Code / Cowork Plugin Marketplace
This repository is packaged as a Claude Code / Cowork plugin marketplace. To test the marketplace directly from GitHub:
claude plugin marketplace add fmschulz/omics-skills
claude plugin install omics-skills@omics-skills
To test a local checkout before submitting or publishing changes:
claude plugin validate .
claude plugin marketplace add ./
claude plugin install omics-skills@omics-skills
After Anthropic approves the community marketplace submission, users can install it from the public Claude plugin catalog.
Codex Plugin Marketplace
The repository also includes a native Codex plugin manifest and repo marketplace:
codex plugin marketplace add fmschulz/omics-skills
codex plugin add omics-skills@omics-skills
For a local checkout, replace fmschulz/omics-skills with .. Run codex plugin list --available --json to inspect the resolved plugin before installing it.
Makefile
git clone https://github.com/fmschulz/omics-skills.git
cd omics-skills
make install
make install builds the routing catalog, installs skills under ~/.agents/skills, symlinks the Claude agent sources, and renders Codex agents as TOML. Use make install-claude or make install-codex for one runtime, make install INSTALL_METHOD=copy for copied skills, and make status to inspect the result. Re-run the installer after changing an agent prompt because generated Codex TOML files cannot track Markdown changes through a symlink. See docs/INSTALL.md for troubleshooting.
The routing hook attaches the router to every user prompt:
make install-hook # Claude Code + Codex CLI
make hook-status
make uninstall-hook
Set OMICS_SKILLS_AUTOROUTE=0 to suppress the hint for a session without uninstalling.
Usage
claude --agent omics-scientist
codex
In Codex, ask the primary agent to delegate to omics-scientist, or invoke a skill explicitly with $bio-annotation. The installed TOML definitions under ~/.codex/agents/ are available to Codex as custom subagents.
Query the router directly:
python3 scripts/skill_index.py route \
"assemble a metagenome and recover MAGs"
Skills are also invocable individually as /<skill-name> in Claude Code or $<skill-name> in Codex. Agent files list the skills each agent exposes and how they compose.
Agents
| Agent | Focus | Skills |
|---|---|---|
omics-scientist |
Project reproducibility, sequencing reads, assembly, binning, annotation, phylogenomics, interdomain HGT, MAG recovery, JGI access | 21 |
literature-expert |
PMC full text, arXiv and bioRxiv preprints, DOI metadata, and citation impact | 8 |
science-writer |
Manuscript drafting, multi-reviewer critique, proposal review, and AI-output evaluation | 8 |
dataviz-artist |
marimo and Jupyter notebooks, scientific data inspection, matplotlib/seaborn figures, and Plotly Dash dashboards | 4 |
Run python3 scripts/skill_index.py route --agent <agent> "<task>" to see how a specific agent routes a given task.
Repository layout
agents/ 4 agent definitions
skills/ skill directories; each has a SKILL.md
catalog/ generated router artifact (catalog.json)
scripts/
skill_index.py router and catalog builder
routing_benchmark.py regression harness
emit_routing_hint.py hook payload generator
install_hook.py idempotent hook installer
install.sh shell-script install (Makefile-free)
uninstall.sh, test-install.sh, validate-skills.py
tests/
test_skill_index.py unit tests for catalog and router
test_install_selected.py selected-install and uninstall integration tests
test_jgi_lakehouse_helpers.py JGI helper safety tests
test_routing_benchmark.py harness sanity tests
test_emit_routing_hint.py hook-script tests
routing_benchmark.yaml routing regression suite
docs/
INSTALL.md detailed installation and troubleshooting guide
CONTRIBUTING.md contribution workflow
DISTRIBUTION.md distribution and discovery notes
SKILL_GRAPH.md routing model and graph
routing_baseline.json benchmark baseline
tooling-survey-2026.md bioinformatics tooling survey
Makefile install, catalog, hook, benchmark, uninstall targets
Development
uv run --no-project --with requests python -m unittest discover -s tests -v
make benchmark # routing regression vs baseline
python3 scripts/skill_index.py build # rebuild catalog artifacts
Adding or modifying a skill:
- Create or edit
skills/<name>/SKILL.md. The YAMLnamefield must match the directory name. - Add the skill to the relevant agent's
Mandatory Skill UsageandTask Recognition Patterns. - Rebuild the catalog and run the test suite.
- Add a benchmark row in
tests/routing_benchmark.yamlif the skill is non-trivially discoverable by the router.
See AGENTS.md for structural conventions, docs/SKILL_GRAPH.md for how the router scores and composes skills, docs/CONTRIBUTING.md for contribution flow, and docs/skills.md for the public skill catalog.
Compatibility
| Platform | Notes |
|---|---|
| Claude Code | Agents in ~/.claude/agents/; skills in ~/.claude/skills/. |
| Codex CLI | TOML subagents in ~/.codex/agents/; canonical skills in ~/.agents/skills/ with a legacy ~/.codex/skills link; native plugin metadata in .codex-plugin/. |
| Claude API | Agent markdown files load directly as system prompts; skill files are readable as reference. |
License
MIT. See LICENSE.
No comments yet
Be the first to share your take.