CP-HRIC · Experiment 004
One cell-type tree for every dataset
Can one cell-type head, over a shared tree of 29 cell types, replace the five separate heads our encoder used to need, one per public dataset, without losing anything? It is the first step toward one model that names every cell it sees.
Kept: the tree head is now the base · decided at 5 seeds, holds at 10
The experiment
One change, everything else the same.
- What changed
- One head over a shared tree of 29 cell types replaces the five per-dataset heads. A cell labelled by one dataset only competes with the cell types that dataset uses, so a label another dataset never gives is treated as unknown, not wrong.
- Held the same
- The encoder recipe, the five public labelled-cell datasets, the seeds, the train and held-out split, and the scoring. 10 paired seeds of each.
- Compared with
- The previous model: the same encoder with five per-dataset heads. This is not a paper reproduction, so every difference is against that model.
At a glance
The tree head against the per-dataset heads.
- Tree head10 seeds · 0.907 ± 0.007
- Per-dataset heads (previous model)10 seeds · 0.902 ± 0.008
- Tree head10 seeds · 0.808 ± 0.019
- Per-dataset heads (previous model)10 seeds · 0.810 ± 0.018
- Tree head10 seeds · 0.769 ± 0.079
- Per-dataset heads (previous model)10 seeds · 0.698 ± 0.065
- Tree head10 seeds · 0.782 ± 0.089
- Per-dataset heads (previous model)10 seeds · 0.704 ± 0.085
Bar = mean across seeds · whisker = ± the spread across seeds · the difference is the mean of the seed-by-seed differences (tree head minus per-dataset heads) · axis starts at 0.5.
Cell type, dataset by dataset
Held-out balanced accuracy on each public dataset.
| Dataset | Tree head | Per-dataset heads | Difference |
|---|---|---|---|
| MLL23 | 0.867 | 0.857 | +0.010 |
| Bone Marrow Cytomorphology | 0.795 | 0.787 | +0.008 |
| Barcelona | 0.991 | 0.990 | +0.001 |
| Ostrava | 0.975 | 0.976 | −0.001 |
Means over the 10 seeds of each model.
LeukemiaAttri (ITU) row withheld: its held-out cells overlap training through a second camera; re-scoring on a slide-level split.
Every seed
Seed by seed, tree head vs per-dataset heads.
| Test | Seed 1 | Seed 2 | Seed 3 | Seed 4 | Seed 5 | Seed 6 | Seed 7 | Seed 8 | Seed 9 | Seed 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Cell type: held-out mean balanced accuracy over 4 datasets (LeukemiaAttri withheld: its held-out cells overlap training)balanced accuracy | 0.909 | 0.906 | 0.908 | 0.911 | 0.895 | 0.915 | 0.911 | 0.896 | 0.912 | 0.905 |
| Munich genetic subtype: SCEMILA's folds, macro-F1macro-F1 | 0.787 | 0.801 | 0.802 | 0.823 | 0.817 | 0.826 | 0.812 | 0.827 | 0.817 | 0.766 |
| Johns Hopkins APL: AUROC, all 106 patientsAUROC | 0.739 | 0.725 | 0.742 | 0.607 | 0.840 | 0.842 | 0.861 | 0.708 | 0.804 | 0.821 |
| Johns Hopkins APL: AUROC, the 82 Discovery patientsAUROC | 0.780 | 0.737 | 0.716 | 0.584 | 0.870 | 0.862 | 0.872 | 0.757 | 0.834 | 0.809 |
Data and reporting notes
- Every number is the mean across independently trained seeds ± the spread across seeds (sample standard deviation).
- The Johns Hopkins “all 106 patients” figure includes DeepAPL’s 24 held-out patients. Neither model was trained on Johns Hopkins, and both are scored the same way. Johns Hopkins scores use the cleaned data (prep v2).
- Architecture decisions need at least 5 seeds, so this page appears only once both models have them.
