Skip to content

Chorus 0.2.0

Choose a tag to compare

@lucapinello lucapinello released this 27 Apr 12:07
· 199 commits to main since this release

First tagged release after the v22 → v29 audit chain. Three consecutive scorched-earth audits across macOS arm64 + Linux/CUDA returned 0 findings against chorus. Full change log + 0.1.x migration notes in CHANGELOG.md.

Highlights

  • ChromBPNet/BPNet ENCODE catalogue: 24 → 786 tracks (42 ATAC/DNASE + 744 BPNet TF×cell). 786-track CDF NPZ live on lucapinello/chorus-backgrounds, auto-downloaded by chorus setup --oracle chrombpnet.
  • Sharded GPU build pipeline--shard N --shard-of M + --part merge-shards on build_backgrounds_chrombpnet.py plus the 6-GPU scripts/run_bpnet_cdf_build.sh orchestrator. Cuts a full BPNet rebuild from ~37 h to ~6 h.
  • chorus backgrounds CLIstatus / build / add-tracks for managing per-track CDF backgrounds without leaving the shell.
  • chorus setup --all-chrombpnet opt-in flag to pre-cache every published model up front (~30 GB extra, 3-4 h). Default behaviour stays on the K562+HepG2 fast path (~25 GB total install, ~1 h setup).
  • docs/NORMALIZATION_GUIDE.md — ~700-line walkthrough including three end-to-end "bring your own model" recipes (ChromBPNet, LegNet, new oracle from scratch).
  • GitHub Actions CI runs the fast pytest suite (340 tests) on every push and PR.
  • Test coverage: 340 fast tests + 12 mock-based error-recovery tests + 4 marker-gated integration tests (MCP E2E, CDF download, ChromBPNet fresh download, SEI/LegNet CDF).

Bug fixes (P0)

  • Track-ID validator now accepts FANTOM CAGE identifiers (CNhs11250 etc.) — the shipped quickstart notebook was broken on the first multi-track cell for every new user.
  • chorus-sei.yml no longer triggers a 50-minute libsolv hang on fresh installs (dropped cudatoolkit=11.7 + pytorch<2.0.0 pins).
  • README now uses python -m pip install -e . (was pip install -e . — picked up Python 2.7 pip on HPC PATHs).
  • _setup_environment no longer silently swallows errors — raises EnvironmentNotReadyError on next predict with an actionable message.

Migration notes from 0.1.x

chorus setup --oracle chrombpnet now pre-caches K562 + HepG2 DNase only by default (~1.4 GB). Other ChromBPNet cell types download lazily on first load_pretrained_model(...). To restore "everything up front" behaviour, pass --all-chrombpnet.

The default ChromBPNet CDF NPZ has 786 rows (was 24). Code that hard-coded indices into the old NPZ should switch to PerTrackNormalizer.track_index[<id>].

chorus-sei env yml was updated; if you have a manually pinned env, rebuild with chorus setup --oracle sei --force.

Audits

🤖 Generated with Claude Code