# Borzoi

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

- Repository: https://github.com/aipoch/open-science (5414 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add aipoch/open-science --skill borzoi -g -a claude-code -y`
Codex: `npx skills add aipoch/open-science --skill borzoi -g -a codex -y`
Cursor: `npx skills add aipoch/open-science --skill borzoi -g -a cursor -y`
Gemini CLI: `npx skills add aipoch/open-science --skill borzoi -g -a gemini-cli -y`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Borzoi, DNA → Functional Track Prediction

## Prerequisites

| Requirement | Minimum | Recommended |
| ----------- | ------- | ----------- |
| Python      | 3.10+   | 3.11        |
| CUDA        | 12.1+   | 12.4+       |
| GPU VRAM    | 16 GB   | 24 GB+      |

## How to run

```python
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:

```python
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
```

The rest: https://github.com/aipoch/open-science/blob/HEAD/resources/skills/borzoi/SKILL.md
