Epione seq2PRINT checkpoints
Trained seq2PRINT models published by Epione. seq2PRINT is a dilated CNN that reads 1,840 bp of DNA and predicts PRINT's multi-scale footprint z-scores (99 scales × 800 bp) and the window's log coverage; fine-tuned with cell-state LoRA it becomes state-specific.
scPrinter publishes no seq2PRINT weights, so models are trained per dataset. These are the ones trained in Epione's seq2PRINT tutorial, so the tutorial can load instead of retrain.
Checkpoints
| name | what | parameters |
|---|---|---|
p2s1_fold0_bulk |
backbone, all spots pooled | 11.8 M |
p2s1_fold0_lora_bands |
the backbone + light cell-state LoRA (rank 8, hidden 64) for four spatial bands | 38.0 M (26.2 M LoRA) |
Each directory holds model.safetensors (weights) and manifest.json
(architecture and LoRA arguments, data, peaks, fold, training settings,
held-out metrics, training history, Epione commit).
Use
import epione as epi
model, manifest = epi.models.seq2print.load_pretrained(
"p2s1_fold0_bulk", return_manifest=True)
Epione pins a Hub revision and an md5 per file, so a later push here does not change what an existing Epione version loads.
The weight layout is scPrinter's own, so the file also loads into
scPrinter's seq2PRINT (built with its default configuration) with
safetensors.torch.load_model(model, "model.safetensors"), and the two
predict identically.
Training data
- GEO GSE308623, sample
P2S1: mouse brain at P2, spatial ATAC (100 × 100 grid of 50 µm spots, 7,131 on tissue), mm10. - Peaks: the 10,000 densest 500-bp bins genome-wide (stand-ins for called peaks), summit at the bin centre.
- Split: scPrinter's mm10 fold 0 — whole chromosomes. Train: chr2, 3, 4, 5, 7, 9, 10, 14, 15, 17. Valid: chr8, 11, 18, 19, X. Test: chr1, 6, 12, 13, 16.
- Bias: PRINT's Tn5 CNN (v2). Targets: PRINT footprint z-scores from PRINT's dispersion model (v2), as in scPrinter.
- Spatial bands (LoRA): spots split into four dorsal→ventral quartiles of array row. Embedding = one-hot band; coverage covariate = z-scored log cuts in peaks.
Held-out performance (test chromosomes)
p2s1_fold0_bulk, all spots: footprint profile r 0.530, footprint r
0.534, coverage r 0.149 (scPrinter's validation metrics, centred windows,
all 99 scales).
p2s1_fold0_lora_bands, footprint profile r per band:
| band 1 | band 2 | band 3 | band 4 | |
|---|---|---|---|---|
| bulk | 0.429 | 0.427 | 0.417 | 0.428 |
| LoRA | 0.473 | 0.472 | 0.460 | 0.477 |
| LoRA, conditioned on the opposite band | 0.471 | 0.469 | 0.462 | 0.474 |
The wrong-band control matches the right band: the LoRA gain here is adaptation to thinner per-band data, not band identity. Row quartiles mix cell types, so do not read this model as encoding band-specific regulation.
Full metrics and the per-epoch history are in each manifest.json.
Caveats
These are tutorial models: stand-in peaks, one section, and for the LoRA model a configuration much lighter than scPrinter's default (rank 32, hidden 256, ~414 M LoRA parameters). For a benchmark against scPrinter, train with its defaults.