One embryo resource, two modalities

Roughly a million cells across eleven developmental time points from E6.75 to E12.5 — early gastrulation through cardiac progenitor emergence, heart-tube formation, looping, and later morphogenesis.

Modalities

Single-cell
Task 1
Single-cell RNA

Real dissociated cells profiled across the whole transcriptome, 32,285 genes rather than a panel. Cell-type labels ship with the training stages. This is what Task 1 predicts.

Spatial
Tasks 2 and 3
3D MERFISH — 500-gene panel

Serial sections decoded to per-cell 3D positions plus measured RNA over the same developmental window, with cell-type labels. Coordinates are per-embryo local, not registered across time points. The conditional knock-outs — Mab21l2, Gata4 and β-catenin, each with a matched wild type — are profiled the same way.

Task 1 — single-cell RNA

Real dissociated single cells, whole transcriptome — not the MERFISH panel.

E7.75
unused
E8.5
train
E9.5
train
E10.5
val
E12.5
test
Train Validation Test Not in split
Stage / conditionRoleNotesSize
E8.5trainE8.5_RNA.h5ad571 MB
E9.5trainE9.5_RNA.h5ad590 MB
E10.5valvalidation target — answers withheld647 MB
E12.5testhidden test target360 MB
E7.75unusedreleased, outside the Task-1 split911 MB

.h5ad · log1p-normalised .X · 32,285 genes · obs["celltype"] · no spatial coordinates

E7.75 ships with the release but is not part of the Task-1 split. There is no E9.25 stage in this single-cell release, so training uses the two real stages that exist before the target.

File format

AnnData .h5ad, one file per stage. Entries marked tbc are fixed with the data release; the keys and dtypes below are already pinned by the loaders.

Train
E8.5_RNA.h5ad 571 MB
n_obs × 32,285tbc
Train
E9.5_RNA.h5ad 590 MB
n_obs × 32,285tbc
Validation
not distributed — scored server-side
n_obs × 32,285tbc
Test
not distributed — scored server-side
n_obs × 32,285tbc
KeyTypeWhat it holds
.Xfloat32 [n_obs, 32285]Log1p-normalised expression over the whole transcriptome. Sparse or dense both load; the scorer densifies and casts to float32 either way.
obs["celltype"]categoricalCell-type label, released with the training stages. Never part of a submission — the scorer types every prediction with its own frozen classifier.
obs indextbcstringCell barcode. Not matched between prediction and target; the metrics are distributional, so submissions need not preserve cell identity or even cell count.
var indexstring [32285]Gene symbols in the fixed Task-1 panel order. A submission must carry exactly these names in exactly this order, or pass --allow-reorder and let the scorer reindex.
  • No spatial coordinates anywhere in Task 1 — dissociated cells have no position to predict.
  • Task 1 is the only task where training on external public single-cell data is allowed, provided the source is disclosed with the submission.

Task 2 — 3D MERFISH (heart setting)

Serial sections decoded to per-cell 3D positions plus measured RNA over the same developmental window.

E8.25
train
E8.5
val
E8.75
test
E9.25
train
E9.5
train
E10.5
val
E12.5
test
Train Validation Test
Stage / conditionRoleNotesSize
E8.25trainships as E8.25_late.h5ad288 MB
E8.5valimputation validation — answers withheld85 MB
E8.75testimputation test — hidden
E9.25trainorganizer-internal path, same underlying release128 MB
E9.5train4D MERFISH release164 MB
E10.5valextrapolation validation — answers withheld484 MB
E12.5testextrapolation test — hidden629 MB

.h5ad · log-normalised .X · 500-gene MERFISH panel · obs["celltype"] · obsm["spatial_3D"] (per-embryo local frame, not cross-timepoint registered)

The heart setting holds stages out on two axes at once. E8.5 and E8.75 sit strictly between the training stages E8.25 and E9.25, so recovering them is imputation; E10.5 and E12.5 sit past the last training stage, so reaching them is extrapolation. Each axis has one public validation stage and one hidden test stage, and the two questions are scored separately.

File format

AnnData .h5ad, one file per stage, per setting. Entries marked tbc are fixed with the data release; the keys and dtypes below are already pinned by the loaders.

Train
E<stage>.h5ad
n_obs × 500tbc
Validation
not distributed — scored server-side
n_obs × 500tbc
Test
not distributed — scored server-side
n_obs × 500tbc
KeyTypeWhat it holds
.Xfloat32 [n_obs, 500]Log-normalised expression on the 500-gene MERFISH panel — a measured panel, not a transcriptome. Must be finite and non-negative; a negative entry usually means the matrix was centred somewhere upstream.
obs["celltype"]categoricalCell-type label, released with the training stages. Not submitted, and not read from a submission.
obs indextbcstringCell identifier. Not matched across stages — there is no cell-level correspondence between time points in the released data.
var indexstring [500]The 500 panel genes, in panel order. Identical across every Task-2 and Task-3 file.
obsm["spatial_3D"]float32 [n_obs, 3]Per-cell x y z. The frame is per-embryo local and is not registered across time points, so no shared coordinate system holds between stages. Columns beyond the third are ignored.
  • The two settings — heart and embryo — share this schema exactly and differ only in which stages they load and which are held out.
  • A submission carries both channels: .X and obsm["spatial_3D"]. A file with expression but no coordinates is rejected before scoring.

Task 2 — 3D MERFISH (embryo setting)

The same 3D MERFISH assay applied to the whole embryo rather than the heart, over the gastrulation window.

E6.75
train
E7.25
train
E7.5
val
E7.75
test
E8
train
Train Validation Test
Stage / conditionRoleNotes
E6.75trainearliest released stage
E7.25trainlast stage before the held-out pair
E7.5valimputation validation — answers withheld
E7.75testimputation test — hidden
E8.0trainthe stage after the pair — both targets are bracketed

Same schema as the heart setting — 500-gene panel, obs["celltype"], obsm["spatial_3D"].

Both held-out stages sit strictly inside the training range — E7.5 and E7.75 fall between E7.25 and E8.0 — so the embryo setting is entirely imputation, with no extrapolation axis. It is still the harder of the two: it spans gastrulation, where composition turns over fastest, and the stages are packed far more tightly in time than the heart series. Scored separately from the heart setting. Per-file sizes are not in the handoff document, so they are omitted here rather than guessed.

File format

AnnData .h5ad, one file per stage, per setting. Entries marked tbc are fixed with the data release; the keys and dtypes below are already pinned by the loaders.

Train
E<stage>.h5ad
n_obs × 500tbc
Validation
not distributed — scored server-side
n_obs × 500tbc
Test
not distributed — scored server-side
n_obs × 500tbc
KeyTypeWhat it holds
.Xfloat32 [n_obs, 500]Log-normalised expression on the 500-gene MERFISH panel — a measured panel, not a transcriptome. Must be finite and non-negative; a negative entry usually means the matrix was centred somewhere upstream.
obs["celltype"]categoricalCell-type label, released with the training stages. Not submitted, and not read from a submission.
obs indextbcstringCell identifier. Not matched across stages — there is no cell-level correspondence between time points in the released data.
var indexstring [500]The 500 panel genes, in panel order. Identical across every Task-2 and Task-3 file.
obsm["spatial_3D"]float32 [n_obs, 3]Per-cell x y z. The frame is per-embryo local and is not registered across time points, so no shared coordinate system holds between stages. Columns beyond the third are ignored.
  • The two settings — heart and embryo — share this schema exactly and differ only in which stages they load and which are held out.
  • A submission carries both channels: .X and obsm["spatial_3D"]. A file with expression but no coordinates is rejected before scoring.

Task 3 — conditional knock-outs

3D MERFISH from genetically perturbed embryos with matched wild-type controls at the same stage.

E8.75
Gata4 KO
β-catenin KO
WT
E9.5
Mab21l2 KO
WT
Train Validation Test Reference
Stage / conditionRoleNotesSize
Mab21l2 KO @ E9.5trainclear phenotype, very specific gene458 MB
Gata4 KO @ E8.75valtwo replicates; also a specific gene374 + 409 MB
β-catenin KO @ E8.75testtwo replicates; broadly expressed — hardest300 + 381 MB
WT @ E9.5referencematched wild-type control (shared with Task 2)164 MB
WT @ E8.75referencematched wild-type control84 MB

Same schema as Task 2 — .X on the 500-gene panel plus obsm["spatial_3D"].

Training and validation use knockouts of very specific genes. The hidden test gene is broadly expressed, and its effect correspondingly diffuse.

File format

AnnData .h5ad, one file per condition; knock-outs ship as two replicates. Entries marked tbc are fixed with the data release; the keys and dtypes below are already pinned by the loaders.

Train
Mab21l2 KO @ E9.5 458 MB
n_obs × 500tbc
Validation
Gata4 KO @ E8.75 — 2 replicates 374 + 409 MB
n_obs × 500tbc
Test
not distributed — scored server-side
n_obs × 500tbc
Reference
matched WT @ E8.75 and E9.5 84 + 164 MB
n_obs × 500tbc
KeyTypeWhat it holds
.Xfloat32 [n_obs, 500]Same 500-gene panel and normalisation as Task 2. The prediction is the mutant embryo, not the difference from wild type.
obs["celltype"]categoricalAs Task 2. Released for the wild-type reference and the training knock-out.
obs["condition"]tbccategoricalGenotype of the embryo the cell came from — the knocked-out gene, or wild type.
var indexstring [500]The same 500 panel genes as Task 2, in the same order.
obsm["spatial_3D"]float32 [n_obs, 3]Per-cell x y z. The frame is per-embryo local and is not registered across time points, so no shared coordinate system holds between stages. Columns beyond the third are ignored.
  • Every differential-expression metric is computed against the matched wild type at the same stage, never against a preceding stage — so the wild-type reference is part of the input, not an extra.
  • Knock-outs ship as two biological replicates. Which replicate a submission is scored against is fixed by the scorer, not chosen by the entrant.

Access and reproducibility

Training data is released for method development. Validation and test ground truth are both withheld — a validation submission comes back as a leaderboard score, and the answers are released only when the final test set is. Task 1 additionally permits training on external public single-cell data — only the evaluation stages are fixed — provided any external source is disclosed with the submission.

Each task's loader in the starter kit reads a documented path list, and DATA_SOURCES.md records which file every task reads, its verified size, and its status — including two dependencies of the richer reference baselines that are not yet on shared storage. The floor and the simple baseline need neither.

Explore it first

The challenge is grounded in the same atlas you can browse on this site. Use it to understand modality coverage and stage spacing before writing a loader.