docs(cherimoya): fill in missing README + attribution references - #166
Open
jmschrei wants to merge 2 commits into
Open
docs(cherimoya): fill in missing README + attribution references#166jmschrei wants to merge 2 commits into
jmschrei wants to merge 2 commits into
Conversation
added 2 commits
August 5, 2026 15:27
The README predates Cherimoya and a later pass patched it in incompletely, so it was still missing from commands, tables and attribution. Each gap below was verified against the code or by running the command, not just pattern-matched. README: - both `download_pertrack_backgrounds` loops (ran all 8 oracles; all return 1) and the "all seven oracles" count - `chorus setup --oracle cherimoya`, absent entirely; name is valid per `EnvironmentManager.list_available_oracles()` - new "Cherimoya / CATv1" model-details section -- that section had no Cherimoya entry at all. Geometry matches `mcp/server.py::ORACLE_SPECS` and `oracle.sequence_length` (2,114 in / 1,000 bins / 1 bp); both documented load paths executed; 613,892 params measured - "Pick an oracle": GPU needed? recommended -> optional, with measured inference-only timings (H200 vs 8 CPU threads: 1.2/10.5 ms at 1 kb, 2.3/103 ms at 10 kb, 18.4 ms/2.75 s at 100 kb). CPU verified working with GPUs masked across direct+env mode and explicit+auto device - macOS: Cherimoya is CPU-only. Deliberately NOT added to the Metal list -- `cherimoya.py` resolves cuda-or-cpu and `platform.py` records no MPS path - notebooks table said "All 6"; also excludes Cherimoya - `cherimoya_quickstart.ipynb` ships but was never referenced - `list_tracks` returns `track_id` for Cherimoya, not `identifier` (checked all 7 oracles; only Enformer and Borzoi use `identifier`) - backgrounds file-size table said ~154 MB while the generated table says 162 MB; pinellolab#163 updated ChromBPNet there but missed Cherimoya - stale counts: "does all 7", "other 5 oracles" THIRD_PARTY: Cherimoya row (MIT code, CC-BY-4.0 weights) and the "wraps six oracles" count. EPInformer-seq attribution is still absent and is left to the session working on that oracle. notebooks/README: same "needs a CUDA GPU" overstatement as the main README -- needed for speed, not to run. No hand-written row was added to the generated background-table block; it already carries Cherimoya.
The Environments block says to always run per-oracle work through the matching mamba env, then omitted the Cherimoya one -- so an agent following it would fall back to base `chorus`, where `import cherimoya` raises ModuleNotFoundError. Cherimoya appeared nowhere in the file. Comment records CUDA-or-CPU because the CPU path works: verified with GPUs masked across direct and env mode, explicit device='cpu' and auto-detect. chorus-epinformerseq is also missing from this list and is left to the session working on that oracle.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The README predates Cherimoya, and a later pass patched it in incompletely — so it was still missing from commands, tables, and attribution. This fills the remaining gaps.
Every item was verified against the code or by running the command, not pattern-matched.
README
download_pertrack_backgroundsloops omittedcherimoya1chorus setup --oracle cherimoyaabsent entirelyEnvironmentManager.list_available_oracles()mcp/server.py::ORACLE_SPECSandoracle.sequence_length(2,114 in / 1,000 bins / 1 bp); both documented load paths executed on GPU; 613,892 params measuredrecommended,<1 s (GPU)optional, with measured inference-only timingscherimoya_quickstart.ipynbships but was never referencedidentifierfield"track_id; Enformer and Borzoi returnidentifier, Cherimoya returnstrack_id; ChromBPNet/Sei/LegNet/EPInformer-seq return no track list at all (different response shape)GPU is optional, and the timings
CPU was verified working with the GPUs hard-masked (
CUDA_VISIBLE_DEVICES="",torch.cuda.is_available()False, 0 devices) across four paths: direct and env mode, each with explicitdevice='cpu'and with auto-detect. Auto-detect falls back to CPU and returns values bit-identical to explicitcpu.Inference step only (model load, FASTA extraction and subprocess startup excluded), one H200 vs 8 CPU threads, median of 7–20 warmed runs:
The ratio is batch-dependent — the GPU amortises windows (1.23 → 0.19 ms/window) while CPU per-window cost climbs (10.5 → 28 ms). So the runtime's flat "~50x slower" warning is only right in the middle of that range. A footnote records the scaling so "optional" doesn't mislead anyone planning a wide scan, plus the ~1e-2 relative CPU/Triton logit divergence (r = 0.99999) measured at the same locus.
Cherimoya is deliberately not added to the macOS Metal list:
cherimoya.pyresolves cuda-or-cpu only, andplatform.pyrecords that the model has no MPS path and that itstritonpin has no macOS wheel.Also
docs/THIRD_PARTY.md: Cherimoya row (MIT code, CC-BY-4.0 weights) + the "wraps six oracles" count. SatisfiesAUDIT_CHECKLIST.md§18 for this oracle. EPInformer-seq attribution is still missing there and is intentionally left alone.examples/notebooks/README.md: same "needs a CUDA GPU" overstatement as the main README — needed for speed, not to run.<!-- GENERATED: background-table -->block — it already carries Cherimoya.Not addressed (pre-existing, flagging only)
examples/notebooks/README.mdsaysadvanced_multi_oracle_analysis"needs all six oracle envs" — stale, and that notebook only uses three (Enformer, ChromBPNet/BPNet, LegNet).README.md#setting-up-oracle-environmentsis broken; the heading slug is...-one-by-one.|effect|that breaks its columns on GitHub.🤖 Generated with Claude Code