Proto is not affiliated with UMass Chan Medical School. This toolkit is open source and builds on the implementation produced by this organization. Product names, logos, and trademarks are the property of their respective owners.
Background
Cherimoya (Ramirez et al., 2026) adapts the BPNet/ChromBPNet architecture into a residual convolutional network of about 614,000 parameters. It takes one-hot DNA of 2,114 bp and predicts two quantities over the central 1,000 bp: a profile head (the shape of the read distribution, one value per base) and a count head (ln of the total reads plus one). Multiplying the softmaxed profile by the expected total gives predicted reads per base. CATv1 is the Cherimoya Accessibility aTlas, v1: models trained on 1,149 DNase-seq and 369 ATAC-seq experiments from the ENCODE Project, on GRCh38, across 407 biosamples. Each experiment has five models, one per chromosome-held-out cross-validation fold. A model reflects only the assay and biosample of the experiment it was trained on, so pick experiments withcherimoya-catalog rather than by cell type name alone.
Learning Resources
- Cherimoya: a lightweight genomic sequence-to-function model built for large-scale design and understanding (Genomics x AI) - the announcement post introducing the model, the CATv1 atlas, and the design workflows they are built for.
- jmschrei/cherimoya (Programmable Genomics Laboratory) - the reference implementation, with the model code and training scripts.
- CATv1 model weights (Hugging Face) - the released checkpoints this toolkit loads, one per ENCODE experiment and fold.
Tools
Cherimoya Catalog (cherimoya-catalog)
Searches the experiments in a collection by biosample, assay, biosample classification, accession, and validation performance, and marks one default experiment per (assay, biosample).API Reference
Input: CherimoyaCatalogInput
Input: CherimoyaCatalogInput
"K562" or "hepat|liver"."DNase-seq" or "ATAC-seq".include_perturbed says.accessions are always returned.Config: CherimoyaCatalogConfig
Config: CherimoyaCatalogConfig
True is coerced to 1 and False to 0.None waits indefinitely.BaseToolOutput.approx_equal), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.Applications
Use this tool to find which ENCODE experiments have models for a cell type or tissue before scoring, to choose between several experiments of the same biosample, and to look up the assay and biosample behind an accession.Usage Tips
- The biosample filter is a regular expression. It is case-insensitive and matches the biosample term name and summary, so
hepat|liverfinds hepatocytes and liver tissue. - Defaults come from Chorus.
is_defaultmarks the experiment Chorus resolves an (assay, biosample) to: the best fold 0 count Pearson, except 9 pairs pinned to the experiment behind Chorus’s ChromBPNet models. - Perturbed experiments are hidden from searches by default. Set
include_perturbed=Trueto see the 8 that ENCODE marks as perturbed; namedaccessionsanddefaults_onlyresults are returned either way, and 4 of the defaults (MCF-7, NAMALWA, SK-N-SH and WI38 DNase-seq) are perturbed experiments.
Cherimoya Score (cherimoya-score)
Predicts total accessibility for DNA sequences with one or more models and returns log counts over the 1,000 bp output window, plus expected reads inside a target range when one is given.API Reference
Input: CherimoyaSequenceInput
Input: CherimoyaSequenceInput
target_range; a bare string is accepted. N is encoded as all zeros.Config: CherimoyaScoreConfig
Config: CherimoyaScoreConfig
True is coerced to 1 and False to 0.None waits indefinitely.BaseToolOutput.approx_equal), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.models come from..torch checkpoints with the same 2,114 bp in, 1,000 bp out geometry.folds.Applications
Use this tool to rank regulatory element designs by predicted DNase-seq or ATAC-seq signal in a chosen biosample, compare a sequence across many cell types at once, or screen candidates before profiling them.Usage Tips
- Sequences are 2,114 bp windows. Pass exactly 2,114 bp, or a longer sequence with a
target_rangeof at most 1,000 bp and the tool cuts the window. - Compare experiments with care. Raw log counts scale with each experiment’s sequencing depth, so the same value means different things in two experiments.
- Folds and strands are options. The default runs fold 0; list more
foldsto average them, and setreverse_complement_average=Trueto average both strands.
Cherimoya Predict (cherimoya-predict)
Predicts a base-resolution accessibility profile over the 1,000 bp output window for each sequence and model.API Reference
Input: CherimoyaSequenceInput
Input: CherimoyaSequenceInput
target_range; a bare string is accepted. N is encoded as all zeros.Config: CherimoyaPredictConfig
Config: CherimoyaPredictConfig
"expected_counts" returns predicted reads per base; "probabilities" returns the profile shape, which sums to 1.Available options: expected_counts, probabilitiesTrue is coerced to 1 and False to 0.None waits indefinitely.BaseToolOutput.approx_equal), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.models come from..torch checkpoints with the same 2,114 bp in, 1,000 bp out geometry.folds.Applications
Use this tool to see where accessibility falls within an element, compare the profile shape between cell types, or plot predicted signal next to measured tracks.Usage Tips
- Choose the values.
values="expected_counts"returns predicted reads per base andvalues="probabilities"returns the profile shape, which sums to 1. - Profiles cover the output window only. Each profile spans
output_starttooutput_endof the input sequence, the central 1,000 bp of the 2,114 bp context.
Cherimoya Gradient (cherimoya-gradient)
Computes a weighted differentiable accessibility objective over one or more models and, by default, returns its gradient with respect to batched relaxed DNA logits.API Reference
Config: CherimoyaGradientConfig
Config: CherimoyaGradientConfig
loss_terms come from.log_target_counts span, relative to the designed segment; None means its start.log_target_counts span, relative to the designed segment; None means its end.True is coerced to 1 and False to 0.None waits indefinitely.BaseToolOutput.approx_equal), and the seed participates in cache keys. When None, cacheable seed-sensitive tools skip cache until seeded.Output: CherimoyaGradientOutput
Output: CherimoyaGradientOutput
None when compute_gradient=False.Applications
Use this tool inside gradient-based DNA design loops, for example to raise accessibility in one biosample while lowering it in others. It is designed for optimizer calls rather than final biological validation.Usage Tips
- Context fills the window.
context_left, the designed logits, andcontext_rightmust total 2,114 bp; only the designed segment receives a gradient. - Set the sigmoid per model. Both quantities are ln(reads + 1),
log_countsover the output window andlog_target_countsovertarget_start..target_end, and both depend on each experiment’s depth; the defaultsigmoid_centerof 4.5 is the medianlog_countsof the default model over hg38 cCREs. - Use
deterministic=Truefor reproducible gradients. The default Triton kernels are faster but do not repeat bit-for-bit on GPU.
Toolkit Notes
These apply to every Cherimoya tool in this toolkit (cherimoya-catalog, cherimoya-score, cherimoya-predict, cherimoya-gradient).
- Models are named by ENCODE experiment accession.
models(and each gradient loss term’smodel) takes accessions such asENCSR000EOT(K562 DNase-seq), validated against the bundled catalog. - Your own checkpoints work locally. A path to a Cherimoya
.torchfile with the same 2,114 bp in, 1,000 bp out geometry, no control tracks, and one output can stand in for an accession; remote devices reject paths. - Weights download on first use. Each fold checkpoint (about 2.5 MB) is fetched from Hugging Face at a pinned revision into the managed model cache, and loaded checkpoints stay in the worker between calls.
- Human GRCh38 only. Every CATv1 model was trained on human ENCODE data; for another species, any model is a proxy.
- Runs on CPU or GPU. A GPU is much faster; on CPU expect tens of sequences per second per model.

