Skip to content

Filter Monarch GO annotation subset - #418

Open
cbizon wants to merge 5 commits into
masterfrom
codex/filter-monarch-goa
Open

Filter Monarch GO annotation subset#418
cbizon wants to merge 5 commits into
masterfrom
codex/filter-monarch-goa

Conversation

@cbizon

@cbizon cbizon commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Filter selected Monarch-carried GOA-style biolink:contributes_to edges out of the curated MonarchKG ingest.
  • Leave MonarchKGFull unchanged.
  • Keep unrelated Monarch contributes_to edges; this is not a blanket predicate filter and not a blanket go_annotation_edges filter.

Removed Monarch GOA-Style Blocks

The removed records are the selected Monarch go_annotation_edges blocks with:

  • predicate = biolink:contributes_to
  • provided_by = go_annotation_edges
  • aggregator_knowledge_source includes infores:monarchinitiative
Primary source Monarch edges removed Human subset Human exact duplicates in direct GOA
infores:go 2,661 327 321 / 327
infores:ensembl 2,035 179 178 / 179
infores:uniprot 1,030 486 468 / 486
infores:hgnc 77 67 66 / 67
infores:uos-mcb 6 6 6 / 6
Total 5,809 1,065 1,039 / 1,065

The human portion is almost entirely redundant with direct HumanGOA already in Baseline. The non-human portion is not covered by current direct Baseline GOA because Baseline currently brings in HumanGOA, not explicit GOA ingests for the represented model organisms.

Interpretation

These Monarch-carried records appear to be small projected subsets of GO annotation edges. Keeping them through Monarch gives ORION uneven model-organism GOA coverage and duplicates nearly all of the human records we already get from direct GOA. If we want GOA annotations for mouse, rat, fly, zebrafish, yeast, or other organisms, the cleaner path is to add explicit GOA ingests for those species rather than retain this partial Monarch subset.

One related-looking Monarch block is intentionally not removed here: infores:monarchinitiative / biolink:contributes_to records from omim_gene_to_disease_edges. Those are not go_annotation_edges and are outside this GOA cleanup.

Implementation

  • MonarchKG now skips only records matching all of: selected primary source, biolink:contributes_to, and provided_by = go_annotation_edges.
  • MonarchKGFull still keeps the unfiltered Monarch source.

- Drop MonarchKG go_annotation_edges from primary infores:go contributes_to output.

- Keep MonarchKGFull unfiltered and cover both paths with tests.

- Add pyoxigraph compatibility shim so graph-spec tests pass in the current environment.
@github-actions github-actions Bot added the Biological Context QC Require validation of biological context to ensure accuracy and consistency label Jun 29, 2026
@cbizon
cbizon requested a review from eKathleenCarter June 29, 2026 10:56
- Broaden the MonarchKG GO annotation filter from primary infores:go to all contributes_to records with provided_by=go_annotation_edges.

- Cover the infores:ensembl GO annotation subset and keep MonarchKGFull unchanged.
@cbizon
cbizon marked this pull request as draft June 29, 2026 14:10
@cbizon
cbizon marked this pull request as ready for review June 29, 2026 14:49

@eKathleenCarter eKathleenCarter left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed and independently verified. The human portion of these Monarch GO-annotation edges is almost entirely redundant with direct HumanGOA.

I rebuilt HumanGOA fresh and cross-checked the human subset and got 95.2% overlap (1,076/1,130) against live-data pull, which lines up with the Chris's 97.6%. Absolute counts differ somewhat since Monarch's GO annotation data has grown between when this was tested and now; expected drift.

Also confirmed: filter/predicate fixes do not touch RGD/SGD/PomBase/FlyBase/ZFIN content, which has no direct ORION ingest. MonarchKGFull is unaffected, and the omim_gene_to_disease_edges block is correctly left out of scope here (addressed in another PR).

One gap found and fixed during review: infores:mgi attributed GO content (245 edges) wasn't in the filter's source list. MouseGOA was recently added as a direct ingest. Added infores:mgi to the filter.

Also reverted the pyoxigraph/MONDOProperties compatibility shim as unrelated scope creep (same finding as in PR 417 — only one pyoxigraph version is pinned, so it's never exercised).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Biological Context QC Require validation of biological context to ensure accuracy and consistency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants