Dhruva Rajwade · Marianna Rapsomaniki
Biomedical Data Science Center, CHUV · SIB · University of Lausanne
VirtualMultiplexer — Pati et al., Nat. Mach. Intell. 2024
Joint morpho-molecular tissue embeddings — Martinelli et al., LMRL @ ICLR 2026
ATHENA — Martinelli & Rapsomaniki, Bioinformatics 2022
ProteinPNet — McConnell et al., arXiv 2025
CAROT — Driessen et al., Cell Systems 2026
CMonge — Driessen, Rajwade, et al., Nat. Mach. Intell. 2026
Spatial heterogeneity of tumour organoids — Norkin et al., bioRxiv 2026
Jolicoeur-Martineau, Less is More: Recursive Reasoning with Tiny Networks, 2025.
Can TRM iteratively refine predictions
jointly across entire biological samples?
One tiny recursive model, reasoning over the whole slide.
Same parameters and backbone architecture as TRM — equal to a single model forward pass.
Depth-matched: 2 layers × 3 × (6+1) = 42 effective depth. No prediction refinement, no outer supervision.
2 × 3 × (6+1) × 8 (Nsup steps) = 336 layers. Fails to fit even the training data.
| ARI · LOSO | 07 | 08 | 09 | 10 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | Mean |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No Rec. 2-Layer | .412 | .366 | .466 | .337 | .566 | .580 | .578 | .546 | .447 | .406 | .419 | .413 | .461 |
| Univ. Transformer | .462 | .407 | .458 | .408 | .636 | .612 | .541 | .547 | .437 | .442 | .410 | .439 | .483 |
| TRM (ours) | .519 | .492 | .555 | .525 | .695 | .736 | .665 | .591 | .520 | .520 | .466 | .426 | .559 |
| SpaGCN † | .414 | .369 | .354 | .336 | .423 | .406 | .380 | .363 | .340 | .352 | .292 | .293 | .360 |
| STAGATE † | .485 | .471 | .518 | .483 | .570 | .535 | .573 | .510 | .478 | .483 | .404 | .376 | .491 |
| GraphST † | .504 | .527 | .589 | .547 | .621 | .588 | .571 | .547 | .547 | .480 | .417 | .440 | .532 |
| 3d-OT † | .643 | .639 | .685 | .622 | .684 | .633 | .849 | .798 | .703 | .722 | .646 | .631 | .688 |
† per-sample unsupervised, trained on test slice · green: best · bold: ours
| Method (zero-shot unless noted) | Max ARI |
|---|---|
| PCA + k-means | 0.289 |
| No Rec. 2-Layer | 0.343 |
| No Rec. 2-Layer + spatial | 0.458 |
| TRM latent | 0.388 |
| TRM latent + spatial | 0.538 |
| GraphST — fit on the slice | 0.577 |
| 3d-OT — fit on the slice | 0.683 |
We project breast data into the cortex PCA space before clustering. Reality check: adding coordinates helps the plain baseline too (+0.115) — the spatial gain overshadows recursion here.
| Method | PCC-10 | PCC-300 | RVD |
|---|---|---|---|
| No Rec. 2-Layer | 0.865 | 0.762 | 0.257 |
| Univ. Transformer | 0.830 | 0.745 | 1.088 |
| TRM (ours) | 0.883 | 0.785 | 0.354 |
| HisToGene † | 0.681 | 0.525 | 10.34 |
| BLEEP † | 0.773 | 0.565 | 0.603 |
| TRIPLEX † | 0.791 | 0.577 | 0.643 |
| STEM † | 0.830 | 0.598 | 0.069 |
STEM keeps the best RVD — it’s a diffusion model, built to match variance. We close most of that gap with adaptive halting, two slides from now.
The model automatically allocates compute for each problem at inference.
Lets the model determine computation through the number of reasoning steps — recursion, for us.
click for ACT
click to return to the full figure
| Strategy | PCC-300 | RVD | mean nhalt |
|---|---|---|---|
| TRM fixed Nouter=8 | 0.785 | 0.354 | 8.0 |
| Slide-level PCC-halt (never fires) | 0.723 | 0.163 | 8.0 |
| Slide-level RVD-halt (never fires) | 0.723 | 0.164 | 8.0 |
| Slide-level MSE-halt | 0.779 | 0.109 | 2.0 |
| Per-gene PCC-halt | 0.780 | 0.158 | 4.9 |
Slide-level signals either never fire or always halt at the minimum step — but the halt loss still stabilizes variance (MSE-halt: RVD 0.354 → 0.109). One halt logit per gene is the only recipe that adapts to the input: ~42% less compute at matched PCC.
Recursive modelling does help in spatial omics.
Whole-slide Xenium · H&E → expression, zero-shot
Also in progress
When does looping a small model beat scaling a big one?
What is the right stop signal for continuous outputs? · If the encoder is a foundation model, is the latent state ever needed?
code · github.com/AI4SCR/recursive-reasoning-omics · dhruva.rajwade@chuv.ch