Skip to content

Clean up disease IDs, and change how HPO terms are sourced - #523

Merged
hdashnow merged 18 commits into
mainfrom
mondo
Oct 8, 2026
Merged

hdashnow merged 18 commits into
mainfrom
mondo

Conversation

@hdashnow

@hdashnow hdashnow commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

It is best if this is merged after #528 as it will create url changes that this other PR manages.

Description

Add missing MONDO IDs, clean up disease IDs, and change how HPO terms are sourced.

Renamed SD5_HOXD13 → SPD1_HOXD13 (disease "Synpolydactyly 1")
Renamed ALS1_NIPA1 -> ALS_NIPA1 (disease "Amyotrophic lateral sclerosis")
HPO terms now come directly from the HPO annotations (phenotype.hpoa) for each locus's OMIM and Orphanet IDs, instead of from Monarch via MONDO. Orphanet annotations are filtered by frequency, so terms Orphanet rates as very rare (1–4% of patients) are no longer included. MONDO IDs are still used to match diseases in other databases, e.g. ClinGen/GenCC.

Fixes: #524 #526
Partially addresses: #522

Major Changes

IDs and loci

  • Renamed ALS1_NIPA1 -> ALS_NIPA1 (disease "Amyotrophic lateral sclerosis"). ALS1 is for SOD1 mutations and most of the NIPA1 literature just writes "ALS".
  • Renamed SD5_HOXD13 → SPD1_HOXD13 (disease "Synpolydactyly 1"). All of the locus's IDs (OMIM 186000, MONDO:0008513, ORPHA:295195) are for synpolydactyly 1, not syndactyly type V. The criTRia curation and plots/gnomad.json are updated to match, and the old /loci/ and /critria/ URLs redirect to the new ones.
  • MONDO IDs added for OPDM_FAM193B, OPDM_TBC1D7, SCA51_THAP11 and FRA7A_ZNF713
  • Corrected the MONDO ID for FRDA_FXN (0100339 "Friedreich ataxia" → 0100340 "Friedreich ataxia 1")
  • Removed the lissencephaly OMIM ID from EIEE1_ARX (Re-examine EIEE1 ARX Lissencephaly link #524)
  • Updated MONDO/OMIM IDs for FTDALS1_C9orf72, ALS1_NIPA1, CJD_PRNP and XLID_SOX3
  • New field omim_gene: the OMIM gene entry for each locus, filled for all 82 loci from HGNC by the new scripts/getOMIMgene.py. Shown on locus pages as "OMIM Gene".
  • omim now holds disease (phenotype) entries only. Gene IDs that had been stored there were moved to omim_gene for FRA2A_AFF3, FRAXG_BCLAF3, EPM_CSNK1E, OPDM_FAM193B, OPDM_TBC1D7, FRA7A_ZNF713 and aFTLD-U_GOLGA8A.

HPO terms

  • scripts/getHPO.py now uses phenotype.hpoa, with term names from the HPO ontology (hp.json):
    • all OMIM annotations
    • Orphanet annotations rated occasional or more common (≥5% of patients); set by --orphanet-min-frequency
    • terms annotated as absent (NOT) are excluded
  • New --replace option. It was run once to rebuild every list from scratch; the regular pipeline still only adds terms.
  • Effect of the one-time rebuild: 31 loci changed, 367 terms added and 77 removed. Most removals are Orphanet "very rare" terms (e.g. the cancers listed for DM1_DMPK) and general-ALS terms on FTDALS1_C9orf72 that came only from its broad ALS MONDO term.
  • Schema description for hpo_terms updated to explain where the terms come from and the frequency cutoff.
  • criTRia curations aligned with STRchive: OPML1 curation ID OPML1_NUTM2B_AS1 → OPML1_NUTM2B-AS1 so it links to its locus; NIPA → NIPA1 (ALS1_NIPA1); inheritance corrected for SCA27B_FGF14 (AR → AD) and SBMA_AR (AR → XR); FRAXE_AFF2 inheritance XLR → XR; disease IDs HSAN VIII and EDM1, PSACH aligned; SPD1_HOXD13 description "type 5" → "type 1"

Minor Changes

  • Orphanet IDs:
    • added ORPHA:356 (Gerstmann-Sträussler-Scheinker syndrome) to CJD_PRNP
    • added ORPHA:1934 (early infantile developmental and epileptic encephalopathy) to EIEE1_ARX, alongside the ARX-specific ORPHA:182079
    • added ORPHA:208508 (ADCA type II) to SCA7_ATXN7
    • removed ORPHA:282 (frontotemporal dementia) from ALS1_NIPA1
  • Added OMIM 608088 and ORPHA:139564 (HSAN type 1B, sensory neuropathy with chronic cough, now known to be RFC1-related) to CANVAS_RFC1
  • omim schema description clarified to "phenotype IDs only"; omim_gene added to check-loci.py list fields

Checklist

  • All changes are well summarized
  • Check all tests pass
  • Check that the website preview looks good
  • Update the STRchive version in CITATION.cff, format X.Y.Z. If any major changes, increment Y. If only minor changes, increment Z. If the breaking change (rare), increment X.
  • Ask someone to review this PR

@netlify

netlify Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for strchive ready!

Name Link
🔨 Latest commit daf3bde
🔍 Latest deploy log https://app.netlify.com/projects/strchive/deploys/6ac6d03b37bca600081d39f6
😎 Deploy Preview https://deploy-preview-523--strchive.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@hdashnow
hdashnow marked this pull request as ready for review October 2, 2026 01:15
@hdashnow
hdashnow requested a review from gaberbz October 2, 2026 01:16
@hdashnow

hdashnow commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

Should ALS1_NIPA1 actually be called ALS_NIPA1? Because ALS1 is a specific type of ALS associated with specific genes.

@hdashnow
hdashnow marked this pull request as draft October 2, 2026 23:25
@hdashnow
hdashnow marked this pull request as ready for review October 3, 2026 00:13
@gaberbz

gaberbz commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Should ALS1_NIPA1 actually be called ALS_NIPA1? Because ALS1 is a specific type of ALS associated with specific genes.

I agree. ALS1 is for SOD1 mutations and most of the NIPA1 literature just writes "ALS"

@hdashnow

hdashnow commented Oct 4, 2026

Copy link
Copy Markdown
Member Author

Should ALS1_NIPA1 actually be called ALS_NIPA1? Because ALS1 is a specific type of ALS associated with specific genes.

I agree. ALS1 is for SOD1 mutations and most of the NIPA1 literature just writes "ALS"

@gaberbz thanks. I've just added this change to this PR

Comment thread data/STRchive-loci.json Outdated
Comment thread data/STRchive-loci.json Outdated
@hdashnow hdashnow changed the title add missing mondo ids and fix mondo id for FRDA + regenerate HPO terms Clean up disease IDs, and change how HPO terms are sourced [merge after #528] Oct 4, 2026
@hdashnow
hdashnow requested a review from gaberbz October 4, 2026 01:03
@hdashnow hdashnow changed the title Clean up disease IDs, and change how HPO terms are sourced [merge after #528] Clean up disease IDs, and change how HPO terms are sourced Oct 7, 2026
hdashnow and others added 17 commits October 7, 2026 16:53
MONDO:0100339 "Friedreich ataxia" -> MONDO:0100340 "Friedreich ataxia 1"
(OMIM 229300, the FXN form).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
getHPO.py now reads phenotype.hpoa for each locus's OMIM and Orphanet IDs
instead of Monarch associations for its MONDO IDs, so phenotypes no longer
change when a MONDO ID is swapped. Term names come from hp.json.

- All OMIM annotations are kept (they rarely record a frequency)
- Orphanet annotations are limited by --orphanet-min-frequency
  (default: occasional, >=5% of patients)
- NOT (absent) annotations are excluded
- New --replace option rebuilds lists instead of adding to them

Document how hpo_terms are populated in the loci schema.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CJD_PRNP: add ORPHA:356 (Gerstmann-Straussler-Scheinker syndrome)
- EIEE1_ARX: add ORPHA:1934 (early infantile developmental and epileptic
  encephalopathy) alongside the ARX-specific ORPHA:182079
- SCA7_ATXN7: add ORPHA:208508 (autosomal dominant cerebellar ataxia type II)
- CANVAS_RFC1: add OMIM 608088 and ORPHA:139564 (HSAN type 1B, sensory
  neuropathy with chronic cough, now known to be RFC1-related)
- ALS1_NIPA1: remove ORPHA:282 (frontotemporal dementia)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ran getHPO.py --replace once to rebuild all lists with the new sources;
regular pipeline runs only add terms. 31 loci changed: 371 terms added,
78 removed. Most removals are Orphanet terms rated very rare (1-4%), e.g.
the cancers listed for DM1_DMPK, and general ALS terms on FTDALS1_C9orf72
that came only from its broad ALS MONDO term.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
All of the locus's IDs (OMIM 186000, MONDO:0008513, ORPHA:295195) are for
synpolydactyly 1, not syndactyly type V (OMIM 186300). Update the locus ID,
disease ID and disease name ("Synpolydactyly 1"), the criTRia curation
(including "type 5" -> "type 1" in its description) and plots/gnomad.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New omim_gene field holds the OMIM gene entry for each locus, filled for all
82 loci from HGNC by scripts/getOMIMgene.py and linked on locus pages as
"OMIM Gene". omim is now documented as phenotype IDs only; gene IDs that were
stored there moved to omim_gene for FRA2A_AFF3, FRAXG_BCLAF3, EPM_CSNK1E,
OPDM_FAM193B, OPDM_TBC1D7, FRA7A_ZNF713 and aFTLD-U_GOLGA8A.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- OPML1: curation Locus_ID OPML1_NUTM2B_AS1 -> OPML1_NUTM2B-AS1 so it links
  to its locus
- ALS1_NIPA1: gene NIPA -> NIPA1
- SCA27B_FGF14: inheritance AR -> AD
- SBMA_AR: inheritance AR -> XR
- FRAXE_AFF2: inheritance XLR -> XR
- Disease IDs HSAN-VIII -> "HSAN VIII" and EDM1-PSACH -> "EDM1, PSACH"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Avoid a space inside a disease ID, since ", " separates multiple disease IDs
and disease_id is written into the catalogs. Matches the locus ID and other
hyphenated IDs (HFG-I, aFTLD-U). Applied to both STRchive and criTRia.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hdashnow
hdashnow merged commit e964fa8 into main Oct 8, 2026
6 checks passed
@hdashnow
hdashnow deleted the mondo branch October 8, 2026 16:37
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.

Re-examine EIEE1 ARX Lissencephaly link

2 participants