Skip to content

Review disease synonyms vs subtypes (all 146 diseases) - #84

Merged
KrishnaTO merged 9 commits into
mainfrom
claude/disease-synonyms-subtypes-d11506
Sep 7, 2026
Merged

Review disease synonyms vs subtypes (all 146 diseases)#84
KrishnaTO merged 9 commits into
mainfrom
claude/disease-synonyms-subtypes-d11506

Conversation

@KrishnaTO

Copy link
Copy Markdown
Owner

Reviews every ARI_Synonym string in ontologies/ari_t1d.owl against the disease's own concept and retires the ones that are not synonyms — they name a narrower subtype, a broader parent, a different disease, or a downstream finding / import artefact.

Method

For each disease, every synonym was checked against the exact-synonym list and subclass hierarchy of the MONDO / DOID term it maps to (via the EBI OLS4 API), with clinical judgement where no mapping exists. Done in 8 batches (one commit each), alphabetically.

New retirement mechanism (keeps ARI_Synonym append-only)

ARI_Synonym stays append-only. A synonym is retired by removing its line and adding an ARI_SynonymWithdrawn marker on the same disease, shaped <synonym> | <reason> | <note> with <reason> in subtype / broader / distinct / non-disease.

validate_mappings.py:

  • accepts an ARI_Synonym removal that carries a matching marker, still fails an unexplained one;
  • shape-checks the markers (withdrawn-synonym-shape / -reason / -still-present);
  • treats ARI_SynonymWithdrawn as append-only itself.

ARI_ClinicalSubtype and ARI_ChangeLog are untouched — still strictly append-only.

Result

count
ARI_Synonym strings reviewed 708 (146 diseases)
Kept 450
Kept with a curator note 107
Withdrawn (56 diseases) 151
  → existing / clear subtype (subtype) 63
  → broader parent (broader) 45
  → different disease (distinct) 23
  → import artefact / downstream finding / split fragment (non-disease) 20

ARI_Synonym 708 → 557. Every edited disease gets a dated ARI_ChangeLog line. No ARI_ClinicalSubtype line was added or rewritten — every subtype-reason withdrawal already had a matching subtype (or a clearly narrower clinical form) on the disease. validate_mappings.py --since main is clean.

Representative catches

  • Whole synonym families sprinkled onto a narrow subtype: Cold agglutinin disease (16 general-AIHA names), Warm AIHA (3), IgG4-related disease (14 organ-manifestation names), Cataplexy and narcolepsy (8 NT1/NT2/locus names).
  • Wrong disease entirely: Endometriosis (all 4 synonyms name adenomyosis), MOG antibody disease (anti-MAG neuropathy), Immune thrombocytopenia (iTTP), Chronic Lyme disease (the acute-infection terms).
  • Import junk: 12 NON RARE IN EUROPE: … Orphanet labels; 2 terms split in half on a comma (Retinocochleocerebral vasculopathy, Rheumatoid aortitis).
  • Dangerous homonyms flagged but kept: SJS (Stevens-Johnson), Carpenter syndrome.

For a curator (not fixed here)

  • The 107 "kept (noted)" strings — ambiguous broad/near-synonymous terms, historical eponyms, misspellings pending a spelling pass.
  • Label/definition mismatches: ARI:0001031 (gastritis vs enteropathy), ARI:0001065 (chronic vs acute Lyme), ARI:0001076 (CLE vs discoid).
  • The two comma-split terms should be re-added whole.
  • Mis-imported sibling diseases in the ARI_ClinicalSubtype lists of ARI:0001069 and ARI:0001074.

Per-string rationale for all 708 is in the batch findings tables shared with the reviewer.

Related: #79 (same validator / green-build workflow).

🤖 Generated with Claude Code

KrishnaTO and others added 9 commits September 7, 2026 18:38
Each ARI_Synonym string was checked against the exact-synonym list and
subclass hierarchy of the disease's mapped MONDO/DOID term (EBI OLS),
with clinical judgement where no mapping exists. Strings that name a
narrower form, a broader parent, a different disease, or a downstream
finding are not synonyms.

Mechanism: ARI_Synonym stays append-only. A synonym is retired by
removing its line AND adding an ARI_SynonymWithdrawn marker on the same
disease, shaped "<synonym> | <reason> | <note>" with reason in
subtype/broader/distinct/non-disease. validate_mappings.py now accepts a
synonym removal carrying a matching marker, still fails an unexplained
one, shape-checks the markers, and treats ARI_SynonymWithdrawn as
append-only. ARI_ClinicalSubtype and ARI_ChangeLog are unchanged.

Batch 1: 25 diseases, 69 synonym strings - 37 kept, 13 kept with a
curator note, 19 withdrawn across 9 diseases (9 subtype, 4 broader,
4 distinct, 2 non-disease). Every withdrawn synonym already exists as an
ARI_ClinicalSubtype on its disease, so no subtype lines were added or
rewritten. Each edited disease gets a dated ARI_ChangeLog entry.

Noted for a curator, not fixed: ARI:0001031 is labelled "Autoimmune
gastritis" but its rdfs:comment describes autoimmune enteropathy.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…01067)

16 diseases, 181 synonym strings: 129 kept, 21 kept with a curator note,
31 withdrawn across 8 diseases via ARI_SynonymWithdrawn markers -
12 subtype (all already ARI_ClinicalSubtypes), 12 non-disease
("NON RARE IN EUROPE: ..." Orphanet classification labels that leaked in
as synonyms, on celiac disease and CFS), 4 distinct, 3 broader. No
ARI_ClinicalSubtype lines added or rewritten. One ARI_ChangeLog line per
edited disease.

Notable: "Chronic Lyme disease" carried the acute-infection terms
(Lyme borreliosis, Lyme arthritis, erythema migrans) as synonyms;
"Cataplexy and narcolepsy" carried NT1/NT2/genetic-locus subtype names.

Pre-existing, noted not fixed: ARI:0001065 definition describes the acute
tick-borne infection rather than the chronic syndrome.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
17 diseases, 125 synonym strings: 60 kept, 23 kept with a curator note,
42 withdrawn across 7 diseases via ARI_SynonymWithdrawn markers -
20 broader, 13 subtype (already ARI_ClinicalSubtypes), 7 distinct,
2 non-disease. One ARI_ChangeLog line per edited disease; no
ARI_ClinicalSubtype lines added or rewritten.

Notable: Cold agglutinin disease carried the whole autoimmune haemolytic
anaemia synonym set (CAD is its cold-agglutinin subtype); Endometriosis'
four synonyms all name adenomyosis, a separate diagnosis.

Pre-existing, noted not fixed: ARI:0001076 definition describes discoid
lupus rather than the cutaneous-lupus umbrella; ARI:0001069 / ARI:0001074
carry mis-imported sibling diseases in their subtype lists.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
18 diseases, 64 synonym strings: 40 kept, 4 kept with a curator note,
20 withdrawn across 5 diseases via ARI_SynonymWithdrawn markers -
17 subtype/manifestation, 2 distinct, 1 broader. No ARI_ClinicalSubtype
lines added or rewritten.

Notable: IgG4-related disease carried 14 organ-manifestation names
(Riedel's thyroiditis, Kuttner's tumor, Mikulicz's syndrome, Ormond's
disease, ...) as synonyms; Immune thrombocytopenia carried iTTP
(a different disease).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 diseases, 70 synonym strings: 48 kept, 11 kept with a curator note,
11 withdrawn across 9 diseases via ARI_SynonymWithdrawn markers -
5 subtype, 3 broader, 3 distinct.

Notable: MOG antibody disease carried anti-MAG neuropathy names (a
different disease - MAG vs MOG); Mooren's ulcer carried the broader
"peripheral ulcerative keratitis" / "corneal ulcer".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 diseases, 98 synonym strings: 77 kept, 13 kept with a curator note,
8 withdrawn across 4 diseases via ARI_SynonymWithdrawn markers -
6 broader, 2 subtype.

Notable: Paraneoplastic cerebellar degeneration carried the broad
"paraneoplastic (neurological) syndrome"; PANDAS carried PANS (the wider
umbrella).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
20 diseases, 70 synonym strings: 41 kept, 16 kept with a curator note,
13 withdrawn across 9 diseases via ARI_SynonymWithdrawn markers -
4 non-disease, 3 broader, 3 distinct, 3 subtype.

Notable: two entities (Retinocochleocerebral vasculopathy, Rheumatoid
aortitis) had one synonym each split into fragments on a comma during
import; Sjogren's disease carried "SJS" (collides with Stevens-Johnson
syndrome) and the broader "sicca syndrome" / "keratoconjunctivitis sicca".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…01211)

Final batch. 10 diseases, 31 synonym strings: 18 kept, 6 kept with a
curator note, 7 withdrawn across 5 diseases via ARI_SynonymWithdrawn
markers - 5 broader, 2 subtype.

Review now covers all 146 diseases with synonyms: 708 strings reviewed,
450 kept, 107 kept with a note, 151 withdrawn across 56 diseases
(63 subtype, 45 broader, 23 distinct, 20 non-disease). No
ARI_ClinicalSubtype line added or rewritten; validate_mappings.py
--since main clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ms-subtypes-d11506

# Conflicts:
#	changelog.md
#	ontologies/ari_t1d.owl
@KrishnaTO
KrishnaTO merged commit 71e7d32 into main Sep 7, 2026
1 check passed
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