← CHANGELOG

Ewing sarcoma: the cohort sampler run on a second cancer, and a published finding that did not reproduce.

29 June 2026·4 min read·Onkydra · Faith Ogundimu

Note added 2026-07-30, corrected 2026-08-13, extended 2026-08-15. This post describes work done in June and its numbers are left as they were, because they record what was actually run. Two things have since changed: the DMG anchor was corrected from n=49 to n=60 (the original derivation left HIST1H3B (H3C2) out of the queried gene set entirely, so every H3.1 case was missed; this note previously said it queried the wrong symbol, which is not what happened), and Ewing is held behind the coverage gate rather than made selectable, until DMG is proven out. Read the n=49 figures below as the anchor at the time, not as the current one.

THE CLAIM THIS POST WAS WRITTEN TO DEMONSTRATE IS RETRACTED, as of 2026-08-13. The post argues that the engine is indication-portable and that a second cancer needs nothing but a new molecular profile library. A sweep of every layer whose name, type or comment presents itself as indication-agnostic found 97 places where DMG is hard-coded. They sort into three piles: the ones parameterisable with no second indication's data, which were removed; the ones already named or typed as DMG-specific, which claim nothing else; and 31 that survived as genuine couplings, each naming the file, the reason it cannot be generalised, and the specific data that would remove it. Two of them are the kind this post was blind to: the coverage gate grounded a target against DMG artefacts whatever indication it was asked about, and the four cell states come from one substring rule over one author-supplied column in one DMG reference. What survives is narrower and is what the post actually measured: the COHORT SAMPLER ran on a second anchor and reproduced its published marginals. That is one component, checked once. It is not the engine, and expansion is not cheap. The register is lib/expansion/couplings.ts and every entry is published on the limitations page.

Second note, same date. This post used the word validated for two different things and neither met the bar the repository now holds itself to: naming the target, the dataset, the split, the comparator and the metric. Where it said validated it now says what was actually done, which is a comparison of realised marginal frequencies against published ones, with no held-out split, no permuted null and no comparator.

The claim we made when we shipped the DMG cohort architect in week 4 was that the engine would be indication-portable: keep the same statistical core, swap the molecular profile library and the anchor cohort, and watch it reproduce different biology in a different rare cancer.

This week we tested one component of that claim by building an Ewing anchor and running the cohort sampler against it. The sampler carried, and one published finding did not reproduce.

Why Ewing for the check

DMG and Ewing are deliberately different shapes. DMG is defined by a single-base histone mutation (H3 K27M). Ewing is defined by a recurrent structural variant: EWSR1::FLI1 in about 85% of cases, EWSR1::ERG in about 10%, other FET::ETS fusions in the rest. If one sampler handles both without re-parameterisation, that is evidence about the sampler across very different molecular paradigms. It is not evidence about the layers downstream of it, and treating it as evidence about the engine is the inference the rest of this post went on to make and that the note above retracts.

We anchored to two published Ewing cohorts on cBioPortal (Crompton et al., Cancer Discovery 2014, DFCI, n=107; Tirode et al., Cancer Discovery 2014, Institut Curie, n=115). Pooled anchor: n=222, about three times the DMG anchor as it stood then, n=49 (since corrected to n=60).

What the sampler produces

The 200 simulated Ewing co-mutation profiles surface EWSR1::FLI1 prevalence at 86.5% (target about 85% per the literature consensus). STAG2 marginal frequency lands at 13.1% versus the 17-22% range published by Tirode 2014 and Brohl 2014, close given the public mutation profile undercounts copy-number alterations. TP53 marginal at 9.5% is squarely inside the published 7-10% range.

STAG2 and TP53 do not reproduce

Tirode 2014's headline finding was that STAG2 and TP53 mutations co-occur in an aggressive subtype. In our n=222 extract, that pair does not reach significance on the co-occurrence test (observed 9, expected 12.3, raw p = 0.32). It actually trends toward mutual exclusivity, not co-occurrence.

Three plausible reasons this doesn't reproduce: (1) the published effect was partly driven by CDKN2A copy-number losses, which the public mutation profile misses; (2) the Tirode 2014 expanded series had more power than the sequencing-only pool we can pull today; (3) the effect size is small, on the edge of detectability at our sample size.

What this gives the rest of the build

  • An Ewing anchor cohort built, with its realised marginals compared against published frequencies. Not a second indication: Ewing sits at Planned in the capability register, it is absent from the supported list, and the coverage gate refuses it, so no run path can select it.
  • One component shown to run on a second anchor. Not a repeatable path to the next indication: 31 findings across the shared layers are genuine couplings to DMG, and each states the data that would remove it.
  • The STAG2+TP53 non-finding, which landed in the public methodology page and the preprint draft.
  • A co-occurrence agreement figure generated from live data: DMG (n=49 at the time, now n=60) shows wider scatter than Ewing (n=222), exactly as small-n predicts.

What's next

DMG is proven out first, and only then does Ewing become selectable. What proven out means is no longer a matter of judgement: it is a set of expansion gates in lib/expansion/gates.ts, each with a checkable condition and a stated evaluator, and a second indication cannot start while any blocking gate is unmet. Most of them are unmet today, and the one that would hold on its own is that the anchor carries no treatment-response or survival layer at all.

The full methodology supplement for this run stays in our internal notes; the preprint is in draft and not yet posted.