Skip to content

Cell Ontology definition check and the external single-cell split (negative result) - #38

Merged
NingyuSUN merged 3 commits into
mainfrom
definition-check
Oct 6, 2026
Merged

NingyuSUN merged 3 commits into
mainfrom
definition-check

Conversation

@NingyuSUN

Copy link
Copy Markdown
Owner

Adds definitions (Cell Ontology presence/absence marker axioms mapped to genes, checked against measurements, BEV026) and an external split of six new datasets (81 clusters). Protocol 3 was frozen in c86d5d4 before the run.

Result: negative. On the external split the check flagged wrong annotations no better than chance (47% vs 42%). Several protein definitions do not hold for transcripts: mast cell CCR3 and neutrophil CEACAM8 are undetected, and NK/ILC3 cells express CD3E. Fed back in the loop, the findings turned 15 correct answers into wrong ones, and compatible answers fell from 278 (model alone) to 242. The identifier layer still caught all 70 identifier errors.

Lessons, written into the docs:

  • feed back only findings that are facts;
  • protein definitions need mRNA-level validation before they are used as transcript checks.

Checks: ruff, mypy, pytest (98.71%), mkdocs --strict, wheel smoke test. Byte-for-byte replays of all three single-cell splits.

Not for merge as-is without a decision: keep the module with this documented limitation, or keep it out until markers are validated.

definitions.MarkerDefinitions reads the presence and absence marker
axioms of each Cell Ontology term (own and inherited) and maps their
proteins to HGNC genes; DefinitionGrounder sends a record to review
(BEV026) when the claimed term's definition is contradicted by the
cluster's measurements. Thresholds (present below 10%, absent at 50%
or more and higher than elsewhere) were set on the first six datasets.

The case adds per-cluster definition panels and six datasets from other
studies as the external split (81 clusters). Protocol 3 is protocol 2
plus the definition check; it is committed before the external split
is run.
486 episodes on six datasets from other studies, with protocol 3 frozen
in c86d5d4. The definition check flagged wrong annotations no better
than chance (47% against 42%): several protein definitions do not hold
for transcripts (mast cell CCR3, neutrophil CEACAM8, NK cells lacking
CD3 epsilon). Fed back in the loop, its findings turned 15 correct
answers into wrong ones. Identifier errors (70 of 479) were all caught.
Its findings still go back to the proposer in the feedback loop; the
docs record that, fed back on transcript data, they turned correct
answers into wrong ones, and that the check needs markers validated at
the mRNA level.
@NingyuSUN
NingyuSUN merged commit 14ad53c into main Oct 6, 2026
9 checks passed
@NingyuSUN
NingyuSUN deleted the definition-check branch October 6, 2026 02:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant