-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Test] Taxon constraint check with added feedback #3110
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Import the version of the NCBITaxon slim that includes disjointness axioms over taxon siblings. Those axioms are needed for the taxon constraint check to work.
We make sure that taxon constraints are checked as part of the QC pipeline (during the "bridge checks"). This is done by two steps. 1. We expand the RO:0002175 macros present in the ontology. This must only be done as part of the QC pipeline to avoid bloating the released artefacts with the "witness classes" created by the expansion of this macro. 2. We merge in the NCBITaxon slim with disjointness axioms. Not just an extracted module (such an extracted module has already been been imported as part of the normal imports pipeline), but the entire slim. Again, this must only be done in the QC pipeline because we do not want the entire NCBITaxon slim to be included in any relaese artefact, not even -full.
'suspensorium' is explicitly constrained to be 'NOT in mammals', but pterygoid bone has no such restriction and is apparently found (at least) in mice, so presumably pterygoid bone should not be assumed to be part of something that does not exist in mammals.
The existence of a corpus luteum is documented in some jawless vertebrates, so it cannot be said to only exist in mammals.
The pericardial cavity, like all terms related to 'heart', is strictly defined as vertebrate-specific in Uberon. Ciona do have something that is akin to a pericardium, but since they are not vertebrates, we should either: * broaden our heart-related terms (at least 'pericardium', and all terms connected to it) so that it is no longer vertebrate-specific; * create another term to represent pericardium-like structure in non-vertebrates. Until a decision is made between these two approaches, here we simply remove the statement that the pericardial cavity exists in Ciona, since it directly violates the vertebrate-specific constraint.
Some hagfish may have vertebral elements without having a full vertebral column, so the existence of vertebral elements should not imply the existence of a vertebral column.
The philtrum (UBERON:0005402) exists in species that do not have a rhinarium (UBERON:0011256), so it should not be said to be part_of some rhinarium.
Hagfishes are reported to "have independently evolved a highly laminated cerebral cortex, comparable in many ways to the cerebral cortex of mammals". So we relax the taxon constraint on 'neocortex' from mammals up to vertebrates, so as to cover fishes.
The mapping between UBERON:0006334 and HBA:4413 is most likely bogus. The Uberon term refers to a 'posterior lateral line' that is not supposed to exist in amniotes, whereas the HBA term refers to a 'lateral nucleus of the pulvinar, left', a regional part of the brain.
'axial skeletal system' is intended to apply to chordates, but is said to have as part some 'axial skeleton plus cranial skeleton', which is vertebrate-specific. We remove the offending has_part axiom.
'dermatocranium' is taxon-constrained to jawed vertebrates, but is part of the definition of 'nose' (through 'nasal skeleton') which exists throughout vertebrates. So we relax the taxon constraint on 'dermatocranium' up to vertebrates as well.
AEO:0000154 is mapped to both UBERON:0036215 (anatomical surface region) and UBERON:0002416 (integumental system), making the two Uberon terms equivalent with each other upon merging the AEO bridge. Based on the definition of the AEO term, the mapping with integumental system should be the correct one; the mapping with 'anatomical surface region' had probably been created on the basis on the lexical similarity between 'organism surface' and 'anatomical surface' (yet another example of how lexical similarity matching is harmful).
'epithelium' is restricted to Eumatazoa, but "true epithelia" have been reported in some sponges. Besides, the homology notes on 'epithelium' clearly states that epithelial tissues are found in *metazoans*, not *eumetazoans*. So we relax the taxon constraint up to metazoans.
'choroidal guanine tapetum' is restricted to elasmobranchs, but that structure seems to exist throughout cartilaginous fishes, so we relax the taxon constraint accordingly.
'skull' is said to be 'present in taxon' some Myxinidae. But Myxinidae are jawless vertebrates while skull, as defined in Uberon, refers to the association of a cranium with a mandible. Without a mandible, Myxinidae have a cranium but no skull. So we move the 'present in taxon' some Myxinidae axiom from 'skull' to 'cranium'.
'mouth' is said to overlap with 'respiratory system', but the mouth exists throughout the eumatozoans while the respiratory system is restricted to Bilateria. We remove the link to avoid restricting the mouth to Bilateria as well.
The 'olivary pretectal nucleus' has been reported to exist in salamanders, so we relax its taxon constraint from Amniota to Tetrapoda, as as to cover both Amniota and Amphibia.
An arthropod structure quite obviously cannot be part of an insect-specific structure, so we remove that link.
The 'cranium' exists throughout all craniates, so it should not be said to be part of the 'skull', which only exists in jawed vertebrates.
…ton'. The nose exists throughout vertebrates, but making the 'nasal skeleton' part of the 'facial skeleton' makes it dependent of the 'skull', which is specific to jawed vertebrates. So we break that link.
Homology notes on 'mouth' suggests the mouth evolved before the head and is therefore present in taxa where the head is not, so 'mouth' should not be dependent on 'head'.
The taxslim-disjoint-over-in-taxon.owl subset of NCBITaxon contains *only* the disjointness axioms and nothing else, so we cannot import just that subset. We need to import both the "normal" taxslim.owl subset and the "disjoints" subset.
We removed the offending mapping between UBERON:0036215 and AEO:0000154, but we must also re-regenerate the AEO bridge for the change to take effect; otherwise the mapping still causes the QC check to fail since the bridges are not automatically re-regenerated as part of the QC pipeline.
We add a new Github Action workflow to be run upon failure of the main QC workflow. It peforms the TC check again and if it fails, run the reasoner over the ontology with TC added and post the reasoner's output to a new comment on the PR.
So the triggering of a second workflow upon failure of a first don’t seem to work as expected… |
Thank you for the try. That's fine to be inside the QC workflow. |
OK, I won’t investigate that path further then. Closing here. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is yet another variation on #3102. Like #3109, its purpose is to add a GitHub Action that checks whether taxon constraints are violated by a PR, and post the reasoner’s explanations as a comment to the PR if that’s the case.
Contrary to #3109, in which running
robot explain
and posting the result was done as part of the main QC workflow, here this is done as part of a distinct workflow.