Filter Monarch GO annotation subset - #418
Conversation
- 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.
- 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.
eKathleenCarter
left a comment
There was a problem hiding this comment.
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).
Summary
biolink:contributes_toedges out of the curatedMonarchKGingest.MonarchKGFullunchanged.contributes_toedges; this is not a blanket predicate filter and not a blanketgo_annotation_edgesfilter.Removed Monarch GOA-Style Blocks
The removed records are the selected Monarch
go_annotation_edgesblocks with:predicate = biolink:contributes_toprovided_by = go_annotation_edgesaggregator_knowledge_sourceincludesinfores:monarchinitiativeinfores:goinfores:ensemblinfores:uniprotinfores:hgncinfores:uos-mcbThe 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_torecords fromomim_gene_to_disease_edges. Those are notgo_annotation_edgesand are outside this GOA cleanup.Implementation
MonarchKGnow skips only records matching all of: selected primary source,biolink:contributes_to, andprovided_by = go_annotation_edges.MonarchKGFullstill keeps the unfiltered Monarch source.