Evidence

What we can prove today.

Every number here is out-of-fold, every dataset is named, and every claim carries the status it actually holds. Where a figure could be inflated by an easier comparison, we publish the harder one. When a number improves, this page changes. When something is not yet measured, it says so.

Four lesions from morphology

Demonstrated in preliminary testing

Out-of-fold predictions on 129 AML patients, patient-grouped nested cross-validation, folds sealed and hashed before any training ran. Encoder: DinoBloom-B, a haematology foundation model, with attention multiple-instance learning and one head per gene. Every figure is the mean over 10 training seeds, and the interval combines two independent sources of uncertainty: resampling patients, and retraining.

LesionAUROC
mean of 10 seeds
95% CI
patients + retraining
seed SDpositives
PML::RARA0.9770.948 – 1.0000.00324 / 129
CBFB::MYH110.9220.859 – 0.9850.01537 / 129
RUNX1::RUNX1T10.8820.809 – 0.9540.02032 / 129
NPM10.8190.726 – 0.9120.02036 / 129

Why 129 and not 189. The source cohort is 129 AML patients plus 60 healthy stem-cell donors. Separating a healthy donor from a leukaemic patient is trivial and has nothing to do with detecting a lesion, so including the donors inflates every figure while looking like lesion detection. Every number above excludes them, and each is therefore a lesion-versus-other-AML discrimination, which is the question a trial screens on. With the donors included these read 0.985, 0.955, 0.933 and 0.907 respectively; we publish the lower, harder numbers because they are the ones that answer the real question.

Why these are means, and why they moved. A single training run is one draw. Our first run reported 0.851 for NPM1; across ten seeds the mean is 0.819, and that first value turned out to be the highest of the ten. The seed was the pipeline default, fixed long before any result was seen, so nothing was selected after the fact, but the published number was still a favourable draw. Reporting the mean and the full spread removes the question. Seeds are fixed in the script before it runs and none are dropped.

Where the uncertainty comes from. Resampling patients dominates retraining in every gene (for NPM1, SD 0.043 against 0.020): with 24 to 37 positives, who is in the cohort matters more than how the model is initialised. The intervals above add both.

Status: demonstrated in preliminary testing. Out-of-fold but not externally validated, and on one dataset. No claim of clinical performance.

The contamination control

Encoder saw this cohort

DinoBloom was pretrained on this exact cohort. Not "may have been": the DinoBloom paper (Koch et al., MICCAI 2024) states "we train the DinoBloom models on all datasets except the Acevedo dataset, which is kept as external test set", and lists the AML Hehr set at 81,214 single-cell images from 189 patients, which is byte-for-byte the cohort used above. The encoder has seen every image we embedded. It never saw the labels, and the classifier heads above are still out-of-fold on patient-grouped folds sealed before training, so this is not label leakage. But it does mean a DinoBloom number here is not an estimate of how the model would behave on a cohort it has never seen.

So every run is repeated with a generic ImageNet-pretrained DINOv2 on the same sealed folds and the same patients, and both are published together. The control has not seen these images.

LesionDinoBloom-BImageNet controlGap
PML::RARA0.9770.803 (0.674–0.931)+0.174
CBFB::MYH110.9220.731 (0.604–0.857)+0.191
RUNX1::RUNX1T10.8820.681 (0.578–0.785)+0.201
NPM10.8190.581 (0.459–0.703)+0.238

The control cannot see NPM1. Its interval, 0.459 to 0.703, spans 0.5: on AML patients a generic encoder is not distinguishable from a coin flip for this gene. The control also loses far more than DinoBloom when the healthy donors are removed, on every gene, which is evidence it was leaning on the healthy-versus-leukaemic signal rather than reading the cell. Both columns are means over the same 10 seeds; an earlier single run put this gap at +0.304 for NPM1, which was the two runs diverging in opposite directions from their means.

Read the gap as a ceiling, not a measurement. Because the encoder was pretrained on these images, the DinoBloom column is the optimistic end of the range and the gap over the control is an upper bound on what haematology pretraining buys on unseen data. The honest reading of this table: on a cohort the encoder has seen, it separates these lesions well; on a cohort it has not, this table cannot say. That is what an external cohort is for, and as of 29 August 2026 there is one, for a single lesion. It is the next card.

First external validation: PML::RARA on an unseen cohort

External, single lesion, underpowered
0.724 AUROC · 0.516–0.906 95% CI · p = 0.0091

Every figure above this card comes from a cohort DinoBloom was pretrained on, so none of them describes behaviour on unseen data. This one does. The model was frozen, then run without modification on BoneMarrowWSI-PediatricLeukemia (public, CC BY 4.0, published 2025 and not among DinoBloom’s pretraining corpora): 93 AML patients, 10 PML::RARA against 83 other AML, labelled from the molecular diagnosis recorded in the images themselves. Nothing about this cohort touched training, calibration or threshold selection.

cohort paediatric bone marrow, 2025
n 93 (10 pos / 83 neg)
internal comparator 0.977 out-of-fold
permutation p 0.0091

The specificity check, which is the load-bearing part. One forward pass produces a head per gene. If the model were merely registering that a slide looks unfamiliar, every head would rise together on these cases. Scored against the same PML::RARA label, only the PML::RARA head separates.

HeadAUROC against the PML::RARA label
PML::RARA0.724
RUNX1::RUNX1T10.411
CBFB::MYH110.366
NPM10.349
healthy0.476

Every other head sits at or below chance. What the model responds to on these slides is specific to the lesion, not a generic reaction to a new scanner, a new stain batch or paediatric marrow.

The drop is large and we are not going to smooth it. Internal out-of-fold for this lesion is 0.977; external is 0.724. Four things changed at once: bone marrow rather than peripheral blood, paediatric rather than adult, cells found by our own classical detector at F1 0.465 rather than curated by an expert, and a different site’s scanner and stain. Any one would move the number. This run cannot isolate how much of the drop is encoder contamination, because contamination is only one of those four differences.

What it does and does not establish. The confidence interval excludes 0.5 under both a stratified bootstrap and Hanley-McNeil, and a 20,000-shuffle permutation test rejects the null at p = 0.009, so the signal is real on data the encoder has never seen. With 10 positives the interval is wide, and this is a pilot rather than a performance estimate. Ranking 4 of the 10 positives into the top 10 of 93 is a screening aid, not a call. NPM1, CBFB::MYH11 and RUNX1::RUNX1T1 remain externally untested: this cohort carries a molecular label for PML::RARA only.

Cell detection on real clinical whole-slide images

Benchmarked on held-out patients
0.961 precision · 0.963 recall · 0.962 F1

A learned detector, trained on 70 patients and scored on a sealed test set of 21 patients and 3,249 expert consensus-labelled cell bounding boxes it never saw, on pediatric bone marrow aspirate smears scanned at 40x. Public data, DICOM whole-slide images, read at 0.11 microns per pixel. Average precision, threshold-free, is 0.991. The operating threshold was chosen on a separate validation split and never on the test set.

labels 3,249 consensus boxes, 21 held-out patients
substrate pediatric bone marrow
resolution 0.11 um/px
published elsewhere AP 0.958 (not matched)

Against the classical baseline it replaces. On the same held-out tiles under the same IoU rule, the stain-threshold detector reaches precision 0.329 and recall 0.507. At the lowest threshold we swept, the learned detector returns 0.491 more recall while still holding precision 0.818, two and a half times the baseline’s. It is not an equal-precision comparison: no swept threshold brings the learned detector down to 0.329. Measured across all 114 patients that baseline is F1 0.465 under the centre-in-box rule and 0.303 under IoU, superseding the 10-slide figure of 0.672 shown here previously.

How it is scored. Both detectors are scored on the monolayer regions a cell count is read from, so the number measures detection rather than coverage. Labelled cells that do not belong in a blast count, 32% of all boxes, are ignore regions for both detectors rather than errors, and the classical detector runs at the 0.44 microns per pixel it was tuned at.

On the 0.958 figure. Learned detectors published elsewhere report average precision around 0.958 on this collection. That is indicative, not a matched comparison: it comes from a different paper, on a different split, possibly a different subset, under an evaluation protocol we have not reproduced. We cite it to say the headroom is real, not to claim our number sits on the same axis.

The record

Working in production

Production ledger, signed and hash-chained, anchored to a public append-only transparency log. Anyone can verify an entry without our cooperation.

Verify at public log index 2051205018 →

Status: working in production. Public anchoring powered by Project AIR.

What is not measured yet

No numbers
  • External validation of any lesion except PML::RARA. One lesion has now been tested on an outside cohort. NPM1, CBFB::MYH11 and RUNX1::RUNX1T1 have not, because no public cohort we have found carries their molecular labels alongside slides.
  • An adequately powered external estimate of anything. Ten positives establishes that a signal survives the transfer; it does not measure how well.
  • Any prospective comparison against an assay. No patient has been managed using these predictions.
  • How much of the internal-to-external drop is encoder contamination. DinoBloom’s pretraining included the internal dataset, so those figures remain an upper bound. The external run shows the signal survives, but tissue, age, cell selection and scanner all changed with it, so no part of the drop can be attributed to contamination alone.
  • Any gene reaching the deferral bar. A lesion becomes a candidate for deferring an assay only at NPV 0.99 or above, at a coverage that matters, on an external cohort. Best here is PML::RARA at 0.988 NPV, and it is internal.

None of these have numbers, and until they do, no claim on this site depends on them.

Research Use Only. Not for diagnostic use.