| --- |
| license: mit |
| library_name: pytorch |
| tags: |
| - single-cell |
| - foundation-model |
| - waddington |
| - dynamics |
| - fine-tuned |
| language: en |
| pipeline_tag: feature-extraction |
| --- |
| |
| # Chreode — downstream fine-tuned heads |
|
|
| Fine-tuned Chreode dynamics heads for **Weinreb hematopoiesis** (§5.1, Table 1) and **Veres islet differentiation** (§5.2, Table 2) of [arXiv:2605.28111](https://arxiv.org/abs/2605.28111). |
|
|
| Each task is shipped at three seeds (0, 1, 2). Each checkpoint was produced by 5000 epochs of fine-tuning on top of the released pretrained backbone [`WhenceFade/chreode-pretrained`](https://huggingface.co/WhenceFade/chreode-pretrained). |
|
|
| ## Files |
|
|
| | File | Task | Seed | Size | |
| |---|---|---|---| |
| | `weinreb_seed0.pt`, `weinreb_seed1.pt`, `weinreb_seed2.pt` | Weinreb hematopoiesis (d2 → d4, d6) | 0, 1, 2 | 36 MB ea | |
| | `veres_seed0.pt`, `veres_seed1.pt`, `veres_seed2.pt` | Veres islet differentiation (t0 → t1…t7) | 0, 1, 2 | 36 MB ea | |
|
|
| These files include the dynamics head only (the scVI encoder is frozen and lives in [`WhenceFade/chreode-pretrained`](https://huggingface.co/WhenceFade/chreode-pretrained)). |
|
|
| ## How to use |
|
|
| The full evaluation flow is in `reproduce/02_weinreb.md` and `reproduce/03_veres.md` of the [Chreode GitHub repo](https://github.com/mufanq/Chreode). Quick command (after cloning the GitHub repo + downloading these weights into `checkpoints/downstream/`): |
|
|
| ```bash |
| for seed in 0 1 2; do |
| PYTHONPATH=src python -m cellworldmodel.script.run_intermediate_eval \ |
| --method m10 --dataset weinreb_scvi \ |
| --experiment g2a_m10_wdit_time2vecu_lowfreqcurl_uncertainty_adamw \ |
| --model-config-checkpoint checkpoints/downstream/weinreb_seed${seed}.pt \ |
| --init-checkpoint checkpoints/downstream/weinreb_seed${seed}.pt \ |
| --epochs 0 --seed ${seed} \ |
| --output-dir output/reproduce/weinreb_eval_seed${seed}/ |
| done |
| ``` |
|
|
| `--epochs 0` skips fine-tuning and reports eval-only Sinkhorn $W_2$. |
| |
| ## Expected paper numbers (3-seed mean ± std) |
| |
| ### Weinreb hematopoiesis (Table 1) |
| |
| | Day | Chreode (these weights) | Best baseline | |
| |---|---|---| |
| | d4 | **1.5133 ± 0.0757** | PI-SDE 1.745 | |
| | d6 | **1.6884 ± 0.0362** | PI-SDE 1.840 | |
| |
| ### Veres islet differentiation (Table 2) |
| |
| | t | Chreode (these weights) | |
| |---|---| |
| | t1 | 2.4009 ± 0.0658 | |
| | t4 | 2.4048 ± 0.1020 | |
| | t7 | 2.9132 ± 0.1704 | |
| | avg | **2.6171** | |
| |
| (Full curve t1 – t7 in the paper's Table 2.) |
| |
| ## Training recipe |
| |
| | | Setting | |
| |---|---| |
| | Initialization | `dynamics_dit.pt` from `WhenceFade/chreode-pretrained` | |
| | Epochs | 5,000 | |
| | Optimizer | AdamW β=(0.9, 0.95), wd=0.01, lr=3 × 10⁻⁴ | |
| | Schedule | 5% cosine warmup | |
| | Batch | 512 | |
| | Loss | MMD + Sinkhorn W₂ + drift + downhill (1 : 1 : 1 : 0.1) | |
| | Hardware | 1 × A100 per seed | |
| | Wall-clock | Weinreb ≈ 1.5 h / seed, Veres ≈ 2 h / seed | |
|
|
| ## License & citation |
|
|
| MIT — see the GitHub repo. Citation block is the same as the pretrained card. |
|
|
| ```bibtex |
| @article{qiu2026chreode, |
| title = {Chreode: A Cell World Model for One-Step Temporal Dynamics and Perturbation Prediction}, |
| author = {Qiu, Mufan and Zheng, Genhui and Xu, Yinuo and Zhang, Ruichen and Ding, Ying and Long, Qi and Chen, Tianlong}, |
| year = {2026}, |
| eprint = {2605.28111}, |
| archivePrefix = {arXiv}, |
| primaryClass = {cs.LG}, |
| url = {https://arxiv.org/abs/2605.28111} |
| } |
| ``` |
|
|