Skip to content

Improve HGNC export - #486

Merged
cthoyt merged 6 commits into
mainfrom
update-hgnc
Feb 21, 2026
Merged

Improve HGNC export#486
cthoyt merged 6 commits into
mainfrom
update-hgnc

Conversation

@cthoyt

@cthoyt cthoyt commented Feb 20, 2026

Copy link
Copy Markdown
Member

Motivated by biopragmatics/bioregistry#1811

This PR does the following:

  1. Adds missing relations (e.g., ones that appear in logical definition of other ones)
  2. Adds explicit labels for placeholder SO terms that haven't been reviewed yet (see Add SO:0003001 cluster RNA gene聽The-Sequence-Ontology/SO-Ontologies#667 and Add SO:0003002 viral integration site聽The-Sequence-Ontology/SO-Ontologies#668)
  3. Directly incorporate HGNC gene groups content into HGNC export (while simultaneously addressing some version management issues for HGNC gene groups)

This does not solve the more generic issue that PyOBO exports OFN and OWL products using IRIs instead of stringified CURIEs in annotations. This means that if the IRI isn't defined, then Protege tries its best to guess a label, and which pollutes the class list when exploring.

@cthoyt
cthoyt marked this pull request as ready for review February 20, 2026 09:41
@cthoyt cthoyt changed the title Add gene families to HGNC export Update HGNC export Feb 21, 2026
@cthoyt cthoyt changed the title Update HGNC export Improve HGNC export Feb 21, 2026
@cthoyt
cthoyt merged commit be34523 into main Feb 21, 2026
10 checks passed
@cthoyt
cthoyt deleted the update-hgnc branch February 21, 2026 14:15
cthoyt added a commit that referenced this pull request Feb 22, 2026
Motivated by biopragmatics/bioregistry#1811,
follow-up to #486.

This PR adds a function that can be used to search all terms in an
ontology, identify external references that weren't explicitly declared
as a class in the ontology, and add a declaration.

All terms declared this way get put under an ontology-wide _ad hoc_
grouping term, which in turn has children corresponding to each prefix
for which undeclared classes were found.

For example, in HGNC, the ontology-wide grouping term is
http://purl.obolibrary.org/obo/hgnc#aux, under which are terms like
http://purl.obolibrary.org/obo/hgnc#aux-ec (fo

Here's how it looks for HGNC:

<img width="1019" height="961" alt="Screenshot 2026-02-22 at 17 30 02"
src="https://github.com/user-attachments/assets/77592273-eb81-45ca-bd73-951ddb471d1c"
/>

There are a few caveats to this approach:

1. Axiom injection (馃し)
2. Doesn't get nice metadata like labels
3. Weird looking labels because there are no labels (will be improved
with protegeproject/protege#1322)
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