Skills

Borzoi

Predict genome-wide functional tracks (RNA-seq, CAGE, DNase, ChIP) from DNA sequence...

Install

npx skills add aipoch/open-science --skill borzoi -g -a claude-code -y
Repository
aipoch/open-science5.4k
Category
Design
Updated
3d ago
License
Apache-2.0
Context cost
Lightabout 723 tokens
Runs scripts
No, instructions only

What it does

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.

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
Read the whole SKILL.md on GitHub

More in Design