Spatial-temporal multiscale prediction
The question
Participants will predict, for an unobserved stage, both the gene expression and the 3D position of every cell. The two are scored as separate questions — tissue geometry carries a full quarter of the score on Task 2 — so matching every expression marginal while placing cells wrongly does not pass.
Each profiled embryo is expensive, so a developmental window is covered by a handful of time points rather than a dense series, and each embryo is imaged in its own arbitrary frame with no registration to any other. Every spatial metric here is therefore invariant to translation and rotation: a submission is never asked to register itself to an atlas.
The task runs at two organ scopes, each with its own ladder, and each holds stages out from inside the observed range as well as beyond it. Recovering a stage that sits between two training stages is imputation; predicting one past the last observation is extrapolation. They are different problems, and a model is asked for both. The heart setting follows heart-tube formation and looping; the embryo setting spans gastrulation and is the harder of the two.

Modality
3D MERFISH: sections decoded into per-cell 3D positions plus measured RNA on a 500-gene panel, log-normalised, with cell-type annotation. Coordinates are per-embryo local — they are not registered across time points, which is why every spatial metric is built to be invariant to the frame a submission chooses.
Splits
Validation and test ground truth are both withheld. A validation submission returns a leaderboard score, not the answers — those are released only when the final test set is.
- Train (heart)
- E8.25 · E9.25 · E9.5
- Heart-scope MERFISH. E8.5 and E8.75 sit between E8.25 and E9.25 and are held out.
- Validation (heart)
- E8.5 · E10.5
- One imputation target inside the observed range, one extrapolation target beyond it. Scored through the leaderboard; the answers are not distributed.
- Test (heart)
- E8.75 · E12.5
- The hidden counterparts of the same two questions. Held until the competition closes.
- Train (embryo)
- E6.75 · E7.25 · E8.0
- Whole-embryo scope, spanning gastrulation — the harder of the two settings.
- Validation (embryo)
- E7.5
- Sits between E7.25 and E8.0, so the embryo setting is imputation throughout. Scored through the leaderboard.
- Test (embryo)
- E7.75
- Its hidden counterpart, also bracketed by training stages.
Input and output
- Input
- The training stages for the chosen setting, each with expression, 3D coordinates and cell-type annotation. The model must emit a predicted set of cells for the target stage carrying both expression and position.
- Output
- An AnnData file with .X on the 500-gene panel and obsm["spatial_3D"] holding an (n, 3) coordinate array. Any frame is acceptable; no cell-type labels.
The exact file contract and validation rules →
How it is scored
Eight metrics rank Task 2, in four questions weighted 25% each: expression change, cell-state distribution, tissue shape and growth scale, and local spatial organisation. Geometry therefore carries a full quarter of the score on its own — matching every expression marginal buys none of it. Each setting and each held-out stage is scored separately.
- 25%
- Expression change
Which genes moved, and in which direction.
- 25%
- Cell-state distribution
The predicted population against the observed one, including the covariance structure marginals cannot see.
- 25%
- Tissue shape and growth scale
Rotation-invariant form and size. Geometry carries its own weight — matching every marginal does not buy it.
- 25%
- Local spatial organisation
Whether each cell sits among the right neighbours — the term that actually exercises the joint expression-and-position submission.
Every metric, with its derivation →
What the starter kit ships
Transparent reference points, not competitive upper bounds — a floor, a simple method, and a dynamics reference model, all with the exact evaluation code.
- copy_last — the floor.
- pseudobulk_shift — constant expression shift, geometry untouched.
- spatiotemporal_ode — the reference dynamics model; read its published score carefully, since it comes almost entirely from an analytic growth-rate extrapolation rather than from the ODE.
- dynode_flow — the external flow-matching reference model, unmodified.
Why it’s hard
- Expression and geometry are weighted as separate questions. Matching every expression marginal with the tissue in the wrong shape still fails the geometry quarter of the score.
- The embryo setting spans gastrulation, where composition changes fastest, and is the harder of the two settings. Both settings hold out stages from inside the observed range as well as beyond it — forward extrapolation alone reaches only half the targets.
- Coordinates are per-embryo local and not registered across time points, so a model cannot assume a shared frame between input stages.
- The 500-gene panel is much smaller than a transcriptome, so which expression dimensions carry tissue identity matters more than raw dimensionality.
Common pitfalls
- Regressing coordinates against an MSE target. That optimises absolute position in a frame the metrics deliberately ignore, while the shape group scores the relational structure it does not constrain.
- Padding or truncating cell counts to match the target — count is scored explicitly and separately, and the shape terms subsample to a shared size anyway.
- Emitting a plausible cloud with flat expression: it clears the constraints and loses the change and distribution groups outright.
- Reading a strong Moran’s I agreement as a spatial result. It is a reported constraint, not a ranking term.
Other tasks
The task documents, exact metric implementations and executed tutorials live in the baselines repo ↗; where this page and the repo differ, the repo is authoritative. Otherwise reach the organisers at [email protected].
