AugmentClaude
Apache-2.0MLResearch

Borzoi

Predict gene expression and regulatory activity tracks from DNA sequences.

Installation

  1. Make sure Claude is on your device and in your terminal.

    Skills load from ~/.claude/skills/ when Claude Code starts up β€” so you need it on your machine first. If you don't have it yet, install it once with the command below, then run claude in any terminal to verify.

    One-time setup
    npm i -g @anthropic-ai/claude-code

    Already have it? Skip ahead.

  2. Paste into Claude Code or into your terminal.

    This copies the whole skill folder into ~/.claude/skills/borzoi-aipoch/ β€” the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.

    Faster alternative (instruction-only skills)

    Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β€” they won't be downloaded and the skill will fail when it tries to load them.

    Quick install (SKILL.md only)
    Sign up to copy
  3. Restart Claude Code.

    Quit and reopen Claude Code (or any other agent that loads from ~/.claude/skills/). New skills are picked up on startup.

  4. Just ask Claude.

    Skills auto-activate when your request matches the skill's description β€” no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the β€œWhat this skill does” section above.

Prefer to read the source first? Open on GitHub.

When Claude uses it

Predict genome-wide functional tracks (RNA-seq, CAGE, DNase, ChIP) from DNA sequence with Borzoi. Use this skill when: (1) Scoring the regulatory effect of a variant on expression/accessibility, (2) Generating predicted coverage tracks for a locus, (3) Prioritising non-coding variants by predicted track delta.

What this skill does

Borzoi β€” DNA β†’ Functional Track Prediction

Prerequisites

RequirementMinimumRecommended
Python3.10+3.11
CUDA12.1+12.4+
GPU VRAM16 GB24 GB+

How to run

from borzoi_pytorch import Borzoi

model = Borzoi.from_pretrained("johahi/borzoi-replicate-0").cuda().eval()
# input: (batch, 4, 524288) one-hot DNA  β†’ output: (batch, tracks, 6144) bins

Borzoi consumes ~524 kb one-hot windows and emits binned predictions across 7,611 human tracks (the separate 2,608-track mouse head is off by default; enable via enable_mouse_head=True and select with forward(..., is_human=False)). For variant scoring, run ref/alt windows centred on the variant and compare per-track output.

Output format

(B, T, L) tensor β€” T tracks Γ— L 32-bp bins. Track metadata (assay, biosample) is in borzoi_pytorch.pytorch_borzoi_model.TRACKS_DF (or model.tracks_df when using the AnnotatedBorzoi subclass) β€” the base Borzoi model has no targets attribute.

Remote compute

Needs β‰₯24 GB VRAM and either pre-cached HF weights or egress to huggingface.co. Read compute_details({provider, mode:'read'}) for an environment with borzoi-pytorch, then:

c = host.compute.create(provider)
job = c.submitJob(
    intent="Borzoi track prediction for 1 locus β€” 1Γ—GPU, ~2 min",
    inputs=[{"src": "borzoi_run.py", "dstFilename": "borzoi_run.py"}],
    command="python3 borzoi_run.py",   # env selection is host-specific β€” see compute_details for your provider
    outputs=["tracks.npz"],
    timeoutSeconds=1800,
)
print(job.job_id)   # cell ends here β€” kernel never blocks on compute

Retain the exact returned job_id. Query that saved ID with the non-blocking c.attachJob(job_id).status() or .result() when its state or result is relevant; do not scan Job history. A final .result() read reports whether its follow-up was suppressed or had already been committed; otherwise the app starts the later analysis turn for an unread final result. See the remote-compute-ssh skill for details.

If the provider exposes a weight-cache mount, point HF_HOME at it inside borzoi_run.py (path is in compute_details).

Troubleshooting

SymptomCauseFix
module has no __version__Package exposes no attrUse importlib.metadata.version("borzoi-pytorch")
Shape mismatch on inputWrong window lengthPad/crop to 524288 bp (fixed; not exposed as a model attribute)

Next: combine track deltas with evo2 likelihood deltas for a two-axis variant prioritisation.

Related skills