The named-but-unwritten queue is keyed on gene symbols, so CD15 is invisible to it at 23 entries
also called non-gene antigen blind spot · CD15 CD65s queue gap · carbohydrate epitope
We built a tool that finds molecules this graph talks about a lot but has never written an entry for, and it works by looking up gene names. Some of the most useful markers in this disease are not made by a single gene - CD15 and CD65s are sugar structures assembled by enzymes - so the tool can never see them no matter how often we mention them, and CD15 is mentioned in 23 entries. There is a second and sneakier version of the same problem: TdT is a real gene, but we call it by its enzyme nickname in 13 entries and use its actual symbol in only 3, so the tool sees a quarter of the discussion and decides it is not important enough to report.
The same thing, for a scientist
`check-named-but-unwritten.py` enumerates HGNC protein-coding symbols named in >=6 entries with no entry of their own. Two failure classes escape it. **Invisible**: CD15 (23 entries), CD65 (12), CD65s (7) are carbohydrate/glycolipid epitopes with no encoding gene - CD15 is Lewis-x, assembled by FUT4/FUT9, which are named in 1 entry between them. **Underweighted**: TdT is named in 13 entries against 3 for DNTT (4.3x), HLA-DR in 13 against 1 for HLA-DRA (13x); both fall below the threshold of 6 and are therefore reported as absent from the queue rather than as gaps. The second class is the dangerous one because the queue appears to be working.
What the queue cannot see
| antigen | class | named in | as gene symbol | visible? |
|---|---|---|---|---|
| CD15 | invisible | 23 | 1 (FUT4) | no |
| TdT | underweighted | 13 | 3 (DNTT) | no |
| HLA-DR | multigene | 13 | 1 (HLA-DRA) | no |
| CD65 | invisible | 12 | 0 | no |
| CD65s | invisible | 7 | 0 | no |
| kappa | locus | 7 | 0 (IGKC) | no |
CD15 at 23 entries would sit high on the written queue if the queue could reach it. For comparison, the queue's own published top entries were CD34 at 132 and CD19 at 114, and it surfaced symbols at 6.
Four distinct reasons a gene-symbol lookup misses a marker, which is the part worth generalising:
- No gene encodes it. CD15, CD65, CD65s are carbohydrate or glycolipid epitopes - enzymatic products. No symbol exists at any threshold.
- The graph names the protein, not the symbol. TdT/DNTT. The gene exists; the queue counts 3 where the discussion is 13.
- The marker is a complex. HLA-DR is an MHC class II heterodimer; no single symbol denotes the surface marker that flow cytometry reports.
- The marker comes from a rearranged locus. kappa and lambda light chains.
Why this was found here, and what it implies about the instrument
The immunophenotype beat found it, not the instrument. PMID 12886247 associates NG2 expression in ALL with a CD10(-)/CD24(-)/CD65s(+)/CD15(+) phenotype - the two carbohydrate epitopes carry real diagnostic weight in exactly the KMT2A-rearranged subset this graph exists to describe, and both are unreachable by the queue.
The instrument's own reported success is what makes this worth recording. check-named-but-unwritten.py independently reproduced CTCF, ATR, KMT2B, KMT2C and KMT2D - gaps that had been found by hand the same cycle - and that reproduction was taken as validation. It validated the queue over the population the queue can see. Every symbol it recovered was a protein-coding gene, because those are the only things it enumerates. A detector cannot be validated against the class of thing it structurally excludes, and reproducing hand-found gene gaps says nothing about non-gene coverage.
The fix is not to widen the regex. There is no lexical rule that distinguishes CD15 from CD19; the difference is ontological, not textual. It requires a curated list of non-gene antigens, which is what this analysis supplies and which is hand-made and certainly incomplete.
- A panel designed from this graph's gene-keyed coverage would under-weight CD15 and CD65s, which carry real diagnostic weight in the NG2-positive KMT2A-rearranged phenotype. The graph discusses them; it just cannot enumerate them, and anyone automating over node ids rather than prose would not find them.
- Do not read this as 'the named-but-unwritten queue is unreliable'. Its gene-symbol results were independently reproduced and stand. The defect is that its validation covered only the class it enumerates, so its silence about non-genes was never evidence of their absence.
- How large is the non-gene blind spot really? The list is hand-made; a derived approach might start from the full CD nomenclature and subtract those with HGNC symbols.
- Should CD15 and CD65s get entries, or should the queue simply record that it cannot see them?
- How many other instruments in this repository are validated only against the population they can enumerate?
- E1strong confidence 4 of 5: Replicated in peer-reviewed work by more than one group.analysis
CD15 is named in 23 entries of this graph with no entry of its own and cannot be surfaced by a queue keyed on HGNC gene symbols, because it is a carbohydrate epitope assembled by fucosyltransferases rather than a gene product; the enzymes FUT4 and FUT9 are together named in one entry. TdT is named in 13 entries against 3 for its symbol DNTT, and HLA-DR in 13 against 1 for HLA-DRA, so both fall below the queue's threshold of six.
non-gene-antigen-blind-spot/run.py: antigens named in the graph that a HGNC-symbol queue cannot reach, by failure class · Oncofusion knowledge graph (internal analysis) 2026What this evidence cannot show
Run 2026-09-20 against 1,464 entries. **The antigen list is curated by hand, not derived**, seeded from one paper's phenotype plus the CD antigens this graph already discusses - so the true blind spot is larger than measured and this is a lower bound. Counting by string match over the serialised entry includes mentions in citations and counter-notes, not only substantive discussion, so the per-antigen counts are upper bounds. Strong for the specific claim that these antigens are unreachable by a symbol queue, which follows from what they are rather than from the count.
Evidence that argues against this (1)
- An antigen lacking its own entry is not necessarily a coverage gap: CD15 and CD65s are discussed substantively inside `concept-flow-cytometry-immunophenotype-kmt2a-r`, so the graph does carry the biology. What is missing is a queryable node, which matters for the queue's purpose but overstates the deficit if read as 'the graph ignores CD15'. Schwartz S et al. 2003
- E2established confidence 5 of 5: Multiple independent lines of evidence; treated as settled in the field.paper
NG2 expression in adult ALL is closely associated with MLL rearrangement and with a CD10-negative, CD24-negative, CD65s-positive, CD15-positive B-cell phenotype, placing two carbohydrate epitopes among the defining markers of the subset this graph is about.
Expression of the human homologue of rat NG2 in adult acute lymphoblastic leukemia: close association with MLL rearrangement and a CD10(-)/CD24(-)/CD65s(+)/CD15(+) B-cell phenotype · Schwartz S, ..., Thiel E · Leukemia 2003What this evidence cannot show
Abstract fetched and read back on 2026-09-20; full text not read. Established as what the paper reports in 313 adult ALL patients with MLL rearrangement determined in 120 B-precursor cases. **It is an adult series** and this graph's index population is infants, so the phenotype is carried across an age boundary; it is cited here for what it says about which markers matter, not as an infant measurement.
Evidence that argues against this (1)
- Diagnostic weight in one 2003 adult series does not establish that CD15 and CD65s deserve entries ahead of the protein-coding gaps already queued; the argument for writing them rests on the queue being structurally blind, not on these two being the most important missing markers. Oncofusion knowledge graph (internal analysis) 2026
IF THE MYELOID PARTNER SHOULD BE CHANGED, the alternatives include CD15 and CD65s - which no gene-keyed target-discovery pipeline can enumerate.
THE BLIND SPOT IS DEEPER FOR CD65s THAN FOR CD15: no gene encodes it AND the obvious enzyme bridge is now excluded, so no symbol-keyed instrument can reach it at all.
THIRD INSTRUMENT GAP OF THE SAME SHAPE: each checker is blind precisely where the graph is most freely expressive - non-gene antigens, cross-entry contradictions, free-form data keys.
BLIND SPOT IN THAT INSTRUMENT: its queue is keyed on HGNC symbols, so CD15 at 23 entries, CD65 at 12 and CD65s at 7 are unreachable at any threshold, and TdT is undercounted 4.3x because the graph names the enzyme and not DNTT.
WHERE THE BIOLOGY ACTUALLY LIVES: CD15 and CD65s are discussed substantively in this entry, which is why the deficit is a queryable-node gap rather than a coverage gap.
FOUND VIA NG2: PMID 12886247 puts CD65s and CD15 alongside NG2 in the same KMT2A-rearranged phenotype, which is how the blind spot surfaced at all.
SAME LESSON, DIFFERENT INSTRUMENT: a detector validated only over the population it can enumerate, and a query whose zero was mistaken for a negative result.
CLEC12A is a gene and WAS visible to the queue; it went unwritten for the ordinary reason of budget, which is the control case for the non-gene blind spot
the worked example: 24 entries, no gene, structurally invisible to a symbol-keyed queue
CD15 is a previous official HGNC symbol of FUT4, so a symbol-keyed queue can be confidently wrong rather than merely blind
HGNC returns no record at all for CD65 - the honest blank, against CD15's misleading resolution to FUT4
the one-to-many failure: two chains and several beta loci, so no single symbol denotes the marker
the second, sneakier failure: a real gene called by its enzyme nickname 14 times and by its symbol 4 times
- ← supportsA CD number names a reagent cluster, not a molecule - and four different things can sit behind one
the taxonomy behind the measured blind spot, including why the obvious repair makes it worse
independent re-measurement of the blind spot, plus the finding that the obvious repair introduces a new error
THE OTHER HALF OF THE SAME INSTRUMENT PROBLEM: that analysis found what the queue cannot see, this one finds what it wrongly sees. The registry now carries both.