-
Notifications
You must be signed in to change notification settings - Fork 30
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
Add taxon constraints #2108
Add taxon constraints #2108
Conversation
1. add taxon constraint `in taxon` *some* **Arthropoda** to some terms using a ROBOT template, 2. add taxon restriction annotation `never in taxon` **Mammalia** (NCBITaxon:40674) to some terms using another ROBOT template. If applied, this commit will address #2050.
|
ROBOT report
|
Will be much less confusing to work through this in Protege. |
I think the robot reports are not very helpful in this case. The cases above are all indirect - inconsistency comes from referencing an inconsistent term. It's much easier to home in on the terms causing the problem when working in Protege. I just checked out out the branch and |
contradicts
|
contradicts http://purl.obolibrary.org/obo/UBERON_2001626 UBERON:2001626 'premaxillary tooth' |
That certainly looks wrong: Display name http://purl.obolibrary.org/obo/UBERON_3000961 UBERON:3000961 'external integument structure' |
contradicts
|
I find them v useful! I can find the problems right here without opening Protege
Hmm, according to the spec in ontodev/robot#329 we should be finding minimal unsats "Bonus: in an ontology with multiple unsats, it can be useful to start with the one with the most minimal explanation, typically the MRCAs of all unsats in the asserted hierarchy. It may even be possible to combine explanations to find the most likely offending axiom" In any case, maybe my brain is just too uberon-wired but I can mentally filter the redundant ones easily
Are you blanket adding TCs for all TAO (UBERON:2x) terms? Or is there a fltered curated sheet? If so what is the link? It makes sense to review the unsats in light of the sheet. Ideally we would have some kind of report that integrates these. E.g. add one term at a time in the TSV and report errors in the sheet |
And agreed, TCs on vague groupings like "external integument structure" are likely wrong. Do we even need this class? |
contradicts Display name http://purl.obolibrary.org/obo/UBERON_2005260 UBERON:2005260 'fenestrated capillary' |
The splenic sinusoid explanation seems incomplete? In any case the proposed TC is obviously contradicting FMA: id: UBERON:2005260
name: fenestrated capillary
def: "Capillary that has pores in the endothelial cells (60-80 nm in diameter) that are spanned by a diaphragm of radially oriented fibrils and allow small molecules and limited amounts of protein to diffuse." [Wikipedia:Capillary#Types, Wikipedia:Fenestra_(histology)]
synonym: "fenestrated blood vessel endothelium" BROAD [ZFA:0005260]
synonym: "fenestrated capillary vessel" EXACT [FMA:63196]
xref: FMA:63196
xref: NCIT:C32595
xref: TAO:0005260
xref: UMLS:C1179615 {source="ncithesaurus:Fenestrated_Capillary"}
xref: Wikipedia:Capillary#Types
xref: ZFA:0005260
is_a: UBERON:0001982 {source="FMA"} ! capillary
is_a: UBERON:0004638 {source="ZFA"} ! blood vessel endothelium
property_value: editor_note "the ZFA class from which this was derived is not explicitly classified as a capillary - need to verify for taxon histology differences" xsd:string
property_value: external_definition "Blood vessel endothelium that has pores that allow passage small molecules and proteins[ZFA]." xsd:string
before getting fancy with reasoning a sensible first pass check is to look at the ontologies that use them Also are we asserting present-in-taxon axioms for mappings to FMA etc? |
Yes, it does.. |
This commit intends to avoid the 11 unsatisfiable classes from the previous commit by excluding these terms from the ROBOT template `uberon2x-3x_robot.tsv`: UBERON:3000961 'external integument structure' -- 1 UBERON:2001626 'premaxillary tooth' -- 2 UBERON:2001457 'postcranial axial cartilage' -- 6 UBERON:2005260 'fenestrated capillary' -- 1 UBERON:2001995 'papilla' -- 1 If applied, this commit will address #2050.
Excluding
from the ROBOT template seems to fix the unsatisfiable classes problem. |
Happy to approve if we can get a non-huge diff. Still too large to display. |
I can see the diff if I click "load diff" it's not optimal as sometimes the name is truncated, and there are many redundancies. Coming up with the perfect entailment diff is not trivial (I am not sure if ontobot will work out the box here since we need to transform the APs to TBox axioms) If it is not hard what about a query for all TCs in this batch:
(I have prolog queries for all this but weaning us off them...) If either the query or the review is too hard, I am OK to sign off on merging this, my intuition is that there will be very few false positives, and any such will be relatively low utility and can be added back later. However, provenance must be added so that we aren't perplexed by these 3 years later... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add per axiom provenance. Can be to the issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's have a go at doing this, but I don't want it to end up as rabbit hole that prevents us getting these out ASAP. @rays22 this can be done with an additional column:
See annotations doc at http://robot.obolibrary.org/template for explanation. Not sure exactly what this will look like in OBO. If it ends up in the header, we might need to move the axioms to an OWL extension file. @matentzn - I took the typing from Mondo - please let us know if this is not correct. |
I think this is fine! I actually never thought about the difference between AT xsd:anyUri and AI.. |
This commit intends to 1. add taxon constraint `in taxon` *some* **Arthropoda** to some terms using a ROBOT template, 2. add taxon restriction annotation `never in taxon` **Mammalia** (NCBITaxon:40674) to some terms using another ROBOT template, 3. add provenance for the changes. If applied, this commit will address #2050.
This commit intends to 1. add taxon constraint `in taxon` *some* **Arthropoda** to some terms using a ROBOT template, 2. add taxon restriction annotation `never in taxon` **Mammalia** (NCBITaxon:40674) to some terms using another ROBOT template, 3. add provenance for the changes. If applied, this commit will address #2050.
I have added per axiom provenance to the issue. |
You have correctly addressed the @cmungall issue, so you don't need to wait for his approval again (just for QC to pass). Note that I changed your provenance a bit to use the "Mondo way". Confusingly, the Mondo way is:
we should not change that system now, if we do not like it, we can fix it in bulk when the time is right. @rays22 can you add a note to our CL/Uberon/RO board to discuss this at the next call Once QC is passed, this is ready to be merged. |
Great to see this fixed I'm curious about when this is generated: Nothing EquivalentTo postcranial axial cartilage and (in taxon some Mammalia) If I understand correctly, this is an expansion of a never in taxon AP, but I can't see where this expansion happens in Ray's Robot commands.
Maybe something other command has produced |
Yes, you will ahve to run
To get to this file. The command is documented here: |
This commit intends to
in taxon
some Arthropoda to some termsusing a ROBOT template,
never in taxon
Mammalia (NCBITaxon:40674) to some terms using another ROBOT template.If applied, this commit will address #2050.