diff --git a/.github/workflows/qc.yml b/.github/workflows/qc.yml index 257dad319d..af0237a0e1 100644 --- a/.github/workflows/qc.yml +++ b/.github/workflows/qc.yml @@ -27,10 +27,35 @@ jobs: - uses: actions/checkout@v2 - name: Run ontology QC checks + id: check + continue-on-error: true env: DEFAULT_BRANCH: master ROBOT_JAVA_ARGS: -Xmx6G run: cd src/ontology && mkdir -p tmp reports mirror && make ROBOT_ENV='ROBOT_JAVA_ARGS=-Xmx6G' GH_ACTION=true BRI=false MIR=false IMP=false test > TESTLOG.log + + - name: Reason over taxon constraints + id: explaintc + continue-on-error: true + if: steps.check.outcome == 'failure' + run: | + if [ -s src/ontology/reports/taxon-constraint-check.txt ]; then + robot explain -i src/ontology/tmp/uberon-edit-plus-tax-equivs.owl -M unsatisfiability -u all -r ELK -e taxon-unsats.md + echo "
\nThis PR violates some taxon constraints. Here is what the reasoner has to say:\n" > comment.md + cat taxon-unsats.md >> comment.md + echo "
" >> comment.md + exit 1 + fi + - name: Post explanation for taxon constraint violations + if: steps.explaintc.outcome == 'failure' + uses: NejcZdovc/comment-pr@v2 + with: + github_token: ${{secrets.GITHUB_TOKEN}} + file: "../../comment.md" + identifier: "TAXON_CONSTRAINTS_REASONING" + - name: Last rows of QC report - if: ${{ failure() }} - run: tail -20 src/ontology/TESTLOG.log \ No newline at end of file + if: steps.check.outcome == 'failure' + run: | + tail -20 src/ontology/TESTLOG.log + exit 1 diff --git a/src/ontology/Makefile b/src/ontology/Makefile index d650bef1c7..2e82bc90c2 100644 --- a/src/ontology/Makefile +++ b/src/ontology/Makefile @@ -114,7 +114,7 @@ all_main: $(MAIN_FILES) # ---------------------------------------- -IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon nbo orcidio omo +IMPORTS = pr cl go envo ro bspo chebi pato bfo ncbitaxon ncbitaxondisjoints nbo orcidio omo IMPORT_ROOTS = $(IMPORTDIR)/merged_import IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl) @@ -496,6 +496,14 @@ mirror-ncbitaxon: | $(TMPDIR) mv $@.tmp.owl $(TMPDIR)/$@.owl; fi +## ONTOLOGY: ncbitaxondisjoints +.PHONY: mirror-ncbitaxondisjoints +.PRECIOUS: $(MIRRORDIR)/ncbitaxondisjoints.owl +mirror-ncbitaxondisjoints: | $(TMPDIR) + if [ $(MIR) = true ] && [ $(IMP) = true ]; then $(ROBOT) convert -I http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim-disjoint-over-in-taxon.owl -o $@.tmp.owl &&\ + mv $@.tmp.owl $(TMPDIR)/$@.owl; fi + + ## ONTOLOGY: nbo .PHONY: mirror-nbo .PRECIOUS: $(MIRRORDIR)/nbo.owl diff --git a/src/ontology/bridge/uberon-bridge-to-aeo.obo b/src/ontology/bridge/uberon-bridge-to-aeo.obo index 49d8262236..38256f5e73 100644 --- a/src/ontology/bridge/uberon-bridge-to-aeo.obo +++ b/src/ontology/bridge/uberon-bridge-to-aeo.obo @@ -1,5 +1,5 @@ ontology: uberon/bridge/uberon-bridge-to-aeo -data-version: 2023-10-27 +data-version: 2023-10-30 property_value: seeAlso "http://purl.obolibrary.org/obo/uberon/references/reference_0000026" xsd:anyURI [Term] @@ -697,11 +697,6 @@ id: AEO:0001010 ! property_value: IAO:0000589 "differentiating neuroepithelium (AEO)" xsd:string equivalent_to: UBERON:0034707 ! differentiating neuroepithelium -[Term] -id: AEO:0000154 ! -property_value: IAO:0000589 "anatomical surface region (AEO)" xsd:string -equivalent_to: UBERON:0036215 ! anatomical surface region - [Typedef] id: part_of xref: BFO:0000050 diff --git a/src/ontology/bridge/uberon-bridge-to-aeo.owl b/src/ontology/bridge/uberon-bridge-to-aeo.owl index 36aab40ff9..d0359e8fb8 100644 --- a/src/ontology/bridge/uberon-bridge-to-aeo.owl +++ b/src/ontology/bridge/uberon-bridge-to-aeo.owl @@ -13,7 +13,7 @@ xmlns:terms="http://purl.org/dc/terms/" xmlns:oboInOwl="http://www.geneontology.org/formats/oboInOwl#"> - + http://purl.obolibrary.org/obo/uberon/references/reference_0000026 @@ -1118,8 +1118,6 @@ - - anatomical surface region (AEO) integumental system (AEO) AEO:0000154 @@ -2531,12 +2529,6 @@ - - - - - - diff --git a/src/ontology/bridge/uberon-bridge-to-dmba.obo b/src/ontology/bridge/uberon-bridge-to-dmba.obo index a6515a46dd..ebbfaf7dfd 100644 --- a/src/ontology/bridge/uberon-bridge-to-dmba.obo +++ b/src/ontology/bridge/uberon-bridge-to-dmba.obo @@ -1319,13 +1319,6 @@ intersection_of: BFO:0000050 NCBITaxon:10090 {name="anterior nucleus of hypothal property_value: IAO:0000589 "posterior part of anterior hypothalamic nucleus" xsd:string property_value: status "Verified" xsd:string {source="https://ror.org/03cpe7c52"} -[Term] -id: DMBA:16271 -intersection_of: UBERON:0000435 {name="lateral tuberal nucleus"} -intersection_of: BFO:0000050 NCBITaxon:10090 {name="lateral tuberal nucleus"} -property_value: IAO:0000589 "lateral tuberal nucleus" xsd:string -property_value: status "Verified" xsd:string {source="https://ror.org/03cpe7c52"} - [Term] id: DMBA:16308 intersection_of: UBERON:0001894 {name="diencephalon"} diff --git a/src/ontology/bridge/uberon-bridge-to-dmba.owl b/src/ontology/bridge/uberon-bridge-to-dmba.owl index 6eca213c5d..efc161812b 100644 --- a/src/ontology/bridge/uberon-bridge-to-dmba.owl +++ b/src/ontology/bridge/uberon-bridge-to-dmba.owl @@ -5723,37 +5723,6 @@ - - - - - lateral tuberal nucleus - Verified - - - - - - - - - - - - - - - lateral tuberal nucleus - - - - - Verified - https://ror.org/03cpe7c52 - - - - diff --git a/src/ontology/components/hra_subset.owl b/src/ontology/components/hra_subset.owl index 1506385305..45ca962e60 100644 --- a/src/ontology/components/hra_subset.owl +++ b/src/ontology/components/hra_subset.owl @@ -14131,15 +14131,6 @@ - - - - - - - - - @@ -14209,6 +14200,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/ontology/imports/ncbitaxon_terms.txt b/src/ontology/imports/ncbitaxon_terms.txt index ff6792faf3..6812f79f1c 100644 --- a/src/ontology/imports/ncbitaxon_terms.txt +++ b/src/ontology/imports/ncbitaxon_terms.txt @@ -1,4 +1,251 @@ NCBITaxon:1 +NCBITaxon:10047 +NCBITaxon:10088 +NCBITaxon:10090 +NCBITaxon:10114 +NCBITaxon:10116 +NCBITaxon:10135 +NCBITaxon:10205 +NCBITaxon:10219 +NCBITaxon:10220 +NCBITaxon:110815 +NCBITaxon:117565 +NCBITaxon:117569 +NCBITaxon:117570 +NCBITaxon:117893 +NCBITaxon:118040 +NCBITaxon:118072 +NCBITaxon:119203 +NCBITaxon:119825 +NCBITaxon:120557 +NCBITaxon:1206795 +NCBITaxon:1294634 +NCBITaxon:147099 +NCBITaxon:1476529 +NCBITaxon:181400 +NCBITaxon:186634 +NCBITaxon:189497 +NCBITaxon:207598 +NCBITaxon:261739 +NCBITaxon:264759 +NCBITaxon:270656 +NCBITaxon:27686 +NCBITaxon:28376 +NCBITaxon:29132 +NCBITaxon:30458 +NCBITaxon:30533 +NCBITaxon:30559 +NCBITaxon:30649 +NCBITaxon:31033 +NCBITaxon:311790 +NCBITaxon:314145 +NCBITaxon:314146 +NCBITaxon:314147 +NCBITaxon:314293 +NCBITaxon:314295 +NCBITaxon:32443 +NCBITaxon:32455 +NCBITaxon:32519 +NCBITaxon:32523 +NCBITaxon:32524 +NCBITaxon:32525 +NCBITaxon:32561 +NCBITaxon:32577 +NCBITaxon:33090 +NCBITaxon:33208 +NCBITaxon:33213 +NCBITaxon:33317 +NCBITaxon:33392 +NCBITaxon:33511 +NCBITaxon:33554 +NCBITaxon:337687 +NCBITaxon:338153 +NCBITaxon:35033 +NCBITaxon:35069 +NCBITaxon:35497 +NCBITaxon:37572 +NCBITaxon:376911 +NCBITaxon:376913 +NCBITaxon:377294 +NCBITaxon:37887 +NCBITaxon:379584 +NCBITaxon:38624 +NCBITaxon:38625 +NCBITaxon:39107 +NCBITaxon:399537 +NCBITaxon:40151 +NCBITaxon:40674 +NCBITaxon:41324 +NCBITaxon:41426 +NCBITaxon:41712 +NCBITaxon:43120 +NCBITaxon:43453 +NCBITaxon:436486 +NCBITaxon:436491 +NCBITaxon:436495 +NCBITaxon:4751 +NCBITaxon:50557 +NCBITaxon:51337 +NCBITaxon:569425 +NCBITaxon:57294 +NCBITaxon:6040 +NCBITaxon:6072 +NCBITaxon:6073 +NCBITaxon:6157 +NCBITaxon:6178 +NCBITaxon:6199 +NCBITaxon:6211 +NCBITaxon:6217 +NCBITaxon:6231 +NCBITaxon:6239 +NCBITaxon:63221 +NCBITaxon:6340 +NCBITaxon:6425 +NCBITaxon:6447 +NCBITaxon:6448 +NCBITaxon:6544 +NCBITaxon:65997 +NCBITaxon:6656 +NCBITaxon:6657 +NCBITaxon:6681 +NCBITaxon:6830 +NCBITaxon:6843 +NCBITaxon:70846 +NCBITaxon:7088 +NCBITaxon:7227 +NCBITaxon:7434 +NCBITaxon:7568 +NCBITaxon:7586 +NCBITaxon:7588 +NCBITaxon:7618 +NCBITaxon:7625 +NCBITaxon:7711 +NCBITaxon:7712 +NCBITaxon:7713 +NCBITaxon:7718 +NCBITaxon:7735 +NCBITaxon:7737 +NCBITaxon:7742 +NCBITaxon:7745 +NCBITaxon:7746 +NCBITaxon:7761 +NCBITaxon:7762 +NCBITaxon:7764 +NCBITaxon:7769 +NCBITaxon:7776 +NCBITaxon:7777 +NCBITaxon:7778 +NCBITaxon:7858 +NCBITaxon:7863 +NCBITaxon:7864 +NCBITaxon:7878 +NCBITaxon:7896 +NCBITaxon:7898 +NCBITaxon:7900 +NCBITaxon:7901 +NCBITaxon:7911 +NCBITaxon:7915 +NCBITaxon:7922 +NCBITaxon:7954 +NCBITaxon:7955 +NCBITaxon:79805 +NCBITaxon:8022 +NCBITaxon:8065 +NCBITaxon:8075 +NCBITaxon:80999 +NCBITaxon:8287 +NCBITaxon:8289 +NCBITaxon:8292 +NCBITaxon:8293 +NCBITaxon:8295 +NCBITaxon:8296 +NCBITaxon:8314 +NCBITaxon:8342 +NCBITaxon:8353 +NCBITaxon:8355 +NCBITaxon:8457 +NCBITaxon:8459 +NCBITaxon:8464 +NCBITaxon:8492 +NCBITaxon:8493 +NCBITaxon:8499 +NCBITaxon:8504 +NCBITaxon:8507 +NCBITaxon:8508 +NCBITaxon:8509 +NCBITaxon:8561 +NCBITaxon:8570 +NCBITaxon:8578 +NCBITaxon:8782 +NCBITaxon:8801 +NCBITaxon:8827 +NCBITaxon:88770 +NCBITaxon:8930 +NCBITaxon:89593 +NCBITaxon:9030 +NCBITaxon:9031 +NCBITaxon:9126 +NCBITaxon:91561 +NCBITaxon:9254 +NCBITaxon:9255 +NCBITaxon:9257 +NCBITaxon:9258 +NCBITaxon:9259 +NCBITaxon:9261 +NCBITaxon:9263 +NCBITaxon:9265 +NCBITaxon:9305 +NCBITaxon:9321 +NCBITaxon:9322 +NCBITaxon:9338 +NCBITaxon:9347 +NCBITaxon:9348 +NCBITaxon:9359 +NCBITaxon:9362 +NCBITaxon:9363 +NCBITaxon:9365 +NCBITaxon:9369 +NCBITaxon:9373 +NCBITaxon:9376 +NCBITaxon:9397 +NCBITaxon:9443 +NCBITaxon:9475 +NCBITaxon:9499 NCBITaxon:9539 +NCBITaxon:9590 +NCBITaxon:9596 +NCBITaxon:9599 +NCBITaxon:9604 +NCBITaxon:9605 +NCBITaxon:9606 +NCBITaxon:9608 +NCBITaxon:9611 +NCBITaxon:9632 NCBITaxon:9669 -NCBITaxon:4751 +NCBITaxon:9673 +NCBITaxon:9681 +NCBITaxon:9705 +NCBITaxon:9709 +NCBITaxon:9721 +NCBITaxon:9753 +NCBITaxon:9761 +NCBITaxon:9765 +NCBITaxon:9775 +NCBITaxon:9779 +NCBITaxon:9780 +NCBITaxon:9787 +NCBITaxon:9788 +NCBITaxon:9816 +NCBITaxon:9822 +NCBITaxon:9823 +NCBITaxon:9835 +NCBITaxon:9836 +NCBITaxon:9845 +NCBITaxon:9850 +NCBITaxon:9892 +NCBITaxon:9895 +NCBITaxon:9935 +NCBITaxon:9963 +NCBITaxon:9972 +NCBITaxon:9975 +NCBITaxon:9989 diff --git a/src/ontology/imports/ncbitaxondisjoints_terms.txt b/src/ontology/imports/ncbitaxondisjoints_terms.txt new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/ontology/imports/ncbitaxondisjoints_terms.txt @@ -0,0 +1 @@ + diff --git a/src/ontology/uberon-edit.obo b/src/ontology/uberon-edit.obo index 2e96a9990a..f64257f5f3 100644 --- a/src/ontology/uberon-edit.obo +++ b/src/ontology/uberon-edit.obo @@ -935,7 +935,6 @@ relationship: never_in_taxon NCBITaxon:314147 {source="bgee"} ! Glires relationship: never_in_taxon NCBITaxon:6231 {source="bgee"} ! Nematoda relationship: never_in_taxon NCBITaxon:7878 {source="bgee"} ! Dipnomorpha relationship: never_in_taxon NCBITaxon:8292 {notes="we do not consider flying frogs to have wings", source="bgee"} ! Amphibia -relationship: never_in_taxon NCBITaxon:8457 {source="bgee"} ! Sauropsida relationship: never_in_taxon NCBITaxon:91561 {source="bgee"} ! Artiodactyla relationship: never_in_taxon NCBITaxon:9254 {source="bgee"} ! Prototheria relationship: never_in_taxon NCBITaxon:9263 {source="bgee"} ! Metatheria @@ -3661,8 +3660,6 @@ intersection_of: UBERON:0004921 ! subdivision of digestive tract intersection_of: proximalmost_part_of UBERON:0001555 ! digestive tract relationship: develops_from UBERON:0035804 ! future mouth relationship: only_in_taxon NCBITaxon:6072 ! Eumetazoa -relationship: overlaps UBERON:0001004 {notes="exceptions in some taxa"} ! respiratory system -relationship: part_of UBERON:0000033 ! head property_value: depiction "http://upload.wikimedia.org/wikipedia/commons/0/06/Mouth_illustration-Otis_Archives.jpg" xsd:anyURI property_value: development_notes "some AOs place this as developing from the stomodeum but we weaken this to developmental contribution, as the mouth includes non-ectodermal derivatives" xsd:string property_value: external_definition "Cavity in which food is initially ingested and generally contains teeth, tongue and glands.[AAO]" xsd:string {date_retrieved="2012-06-20", external_class="AAO:0010355", ontology="AAO", source="AAO:BJB"} @@ -7454,7 +7451,7 @@ union_of: UBERON:0000486 ! multilaminar epithelium union_of: UBERON:0000490 ! unilaminar epithelium relationship: has_part GO:0005911 ! cell-cell junction relationship: has_part UBERON:0005769 ! basement membrane of epithelium -relationship: only_in_taxon NCBITaxon:6072 ! Eumetazoa +relationship: only_in_taxon NCBITaxon:33208 {source="http://palaeos.com/metazoa/porifera/homoscleromorpha.html"} ! Metazoa property_value: depiction "https://upload.wikimedia.org/wikipedia/commons/8/8f/Illu_epithelium.jpg" xsd:anyURI property_value: has_relational_adjective "epithelial" xsd:string property_value: homology_notes "The two basic types of metazoan tissue are epithelial and connective. The simplest metazoans, and developmental stages of many primitive invertebrates, consist solely of these two layers. Thus, epithelial and connective tissues may be the primary (original) tissues of metazoans, and both are important in the functional organization of animals.[well established][VHOG]" xsd:string {date_retrieved="2012-09-17", external_class="VHOG:0000387", ontology="VHOG", source="ISBN:978-0030259821 Ruppert EE, Fox RS, Barnes RD, Invertebrate zoology: a functional evolutionary approach (2003) p.59", source="http://bgee.unil.ch/"} @@ -12322,7 +12319,6 @@ intersection_of: luminal_space_of UBERON:0002406 ! pericardial sac relationship: develops_from UBERON:0003887 {source="Wikipedia"} ! intraembryonic coelom relationship: location_of UBERON:0002409 ! pericardial fluid relationship: part_of UBERON:0002406 {source="FMA"} ! pericardial sac -relationship: present_in_taxon NCBITaxon:7718 {source="PMID:20959416"} ! Ciona relationship: surrounded_by UBERON:0002357 ! serous pericardium property_value: external_definition "Anatomical space in which the heart is located and is surrounded by the pericardium.[TAO]" xsd:string {date_retrieved="2012-08-14", external_class="TAO:0002220", ontology="TAO", source="ZFIN:curator"} property_value: external_ontology_notes "check ZFA, should actually be thoracic cavity. Note that Hyman defines the cavity as the space between the heart and the sac (but defines the sac as parietal)" xsd:string {external_ontology="ZFA"} @@ -36711,7 +36707,7 @@ xref: Wikipedia:Neocortex is_a: UBERON:0002616 ! regional part of brain relationship: contributes_to_morphology_of UBERON:0000956 ! cerebral cortex relationship: mutually_spatially_disjoint_with UBERON:0002264 {source="ABA"} ! olfactory bulb -relationship: only_in_taxon NCBITaxon:40674 {source="Wikipedia"} ! Mammalia +relationship: only_in_taxon NCBITaxon:7742 {source="Wikipedia"} ! Vertebrata relationship: part_of UBERON:0000956 ! cerebral cortex property_value: depiction "http://upload.wikimedia.org/wikipedia/commons/7/77/Neocortex.jpg" xsd:anyURI property_value: homology_notes "The 6-layer neocortex is well conserved in all extant mammals, but not present in birds or reptils" xsd:string {source="PMID:23027930"} @@ -53061,7 +53057,7 @@ is_a: UBERON:0002368 {source="PMID:20959416"} ! endocrine gland relationship: capable_of GO:0042701 ! progesterone secretion relationship: develops_from UBERON:0001305 ! ovarian follicle relationship: has_part CL:0000175 ! luteal cell -relationship: only_in_taxon NCBITaxon:40674 {source="Wikipedia"} ! Mammalia +relationship: only_in_taxon NCBITaxon:7742 ! Vertebrata relationship: part_of UBERON:0000949 {source="MA"} ! endocrine system relationship: part_of UBERON:0000992 {source="MA"} ! ovary relationship: present_in_taxon NCBITaxon:7762 {source="PMID:20959416"} ! Myxinidae @@ -54279,7 +54275,7 @@ relationship: contributes_to_morphology_of UBERON:0001944 ! pretectal region relationship: mutually_spatially_disjoint_with UBERON:0002711 {source="ABA"} ! nucleus of posterior commissure relationship: mutually_spatially_disjoint_with UBERON:0002996 {source="ABA"} ! nucleus of optic tract relationship: mutually_spatially_disjoint_with UBERON:0006848 {source="ABA"} ! posterior pretectal nucleus -relationship: only_in_taxon NCBITaxon:32524 ! Amniota +relationship: only_in_taxon NCBITaxon:32523 ! Tetrapoda relationship: part_of UBERON:0001944 ! pretectal region relationship: present_in_taxon NCBITaxon:8293 {source="ISBN:0471888893"} ! Caudata relationship: present_in_taxon NCBITaxon:9347 {source="ISBN:0471888893"} ! Eutheria @@ -67139,7 +67135,7 @@ xref: XAO:0003169 xref: ZFA:0000863 is_a: UBERON:0011159 ! primary subdivision of cranial skeletal system relationship: never_in_taxon NCBITaxon:7777 {source="ISBN:0073040584"} ! Chondrichthyes -relationship: only_in_taxon NCBITaxon:7776 ! Gnathostomata +relationship: only_in_taxon NCBITaxon:7742 ! Vertebrata relationship: part_of UBERON:0010323 {source="ZFA"} ! cranial skeletal system relationship: part_of UBERON:0010364 ! dermal skeleton property_value: editor_note "wikipedia treats skull roof and dermatocranium as synonymous, but some sources treat the roof as being part of the dermatocranium - see UBERONREF:0000007" xsd:string @@ -67609,7 +67605,7 @@ xref: VHOG:0000334 xref: Wikipedia:Cranium_(anatomy) is_a: UBERON:0000075 {source="FMA-inferred"} ! subdivision of skeletal system relationship: mutually_spatially_disjoint_with UBERON:0003278 ! skeleton of lower jaw -relationship: part_of UBERON:0003129 ! skull +relationship: present_in_taxon NCBITaxon:7762 ! Myxinidae property_value: external_ontology_notes "the inclusion of the FMA class here is probably not quite correct, as this class includes as parts sutures, whereas this is not part of the bones of the cranium" xsd:string {external_ontology="FMA"} property_value: has_relational_adjective "cranial" xsd:string property_value: terminology_notes "The term cranium can be ambiguous, in that it can refer to the neurocranium, or the neurocranium and the Facial skeleton" xsd:string {source="WP"} @@ -67641,7 +67637,6 @@ relationship: has_part UBERON:0003278 ! skeleton of lower jaw relationship: only_in_taxon NCBITaxon:89593 ! Craniata relationship: part_of UBERON:0000033 ! head relationship: part_of UBERON:0010323 ! cranial skeletal system -relationship: present_in_taxon NCBITaxon:7762 ! Myxinidae property_value: external_ontology_notes "in FMA the skull is divided into orbit, neurocranium (8 parts), viscerocranium (26 parts). Here we have a separate overlapping division into cranium and mandible." xsd:string {external_ontology="FMA"} property_value: external_ontology_notes "in many ontologies, the structure called the cranium is inclusive of the mandible/lower jaw skeleton" xsd:string property_value: terminology_notes "A skull that is missing a mandible is only a cranium; this is the source of a very commonly made error in terminology. Those animals having skulls are called craniates" xsd:string {source="WP"} @@ -67666,7 +67661,6 @@ xref: TADS:0000281 xref: Wikipedia:Arthropod_leg is_a: UBERON:0000475 ! organism subdivision relationship: only_in_taxon NCBITaxon:6656 ! Arthropoda -relationship: part_of UBERON:0005895 ! insect leg property_value: editor_note "this term should be ceded to the arthropod anatomy ontology." xsd:string {source="3"} property_value: taxon_notes "homology of leg segments between groups are difficult to prove and are the source of much argument. Some authors posit up to eleven segments per leg for the most recent common ancestor of extant arthropods, but modern arthropods have eight or fewer." xsd:string @@ -76341,7 +76335,7 @@ is_a: UBERON:0009198 {source="GO"} ! craniofacial suture intersection_of: UBERON:0002209 ! fibrous joint intersection_of: part_of UBERON:0003128 ! cranium relationship: contributes_to_morphology_of UBERON:0003128 ! cranium -relationship: developmentally_induced_by UBERON:0002363 {source="PMID:16496288"} ! dura mater +relationship: developmentally_induced_by UBERON:0002363 {gci_relation="part_of", gci_filler="NCBITaxon:40674", source="PMID:16496288"} ! dura mater relationship: fma_set_term FMA:71385 [Term] @@ -101010,7 +101004,6 @@ relationship: develops_from UBERON:0004068 {source="Wikipedia"} ! medial nasal p relationship: has_quality PATO:0000588 {gci_relation="part_of", gci_filler="NCBITaxon:9606"} ! vestigial relationship: only_in_taxon NCBITaxon:40674 ! Mammalia relationship: part_of UBERON:0001834 {source="EMAPA"} ! upper lip -relationship: part_of UBERON:0011256 ! rhinarium property_value: seeAlso "https://github.com/obophenotype/uberon/pull/2691" xsd:string property_value: taxon_notes "vestigial in humans. In humans, the philtrum is formed where the nasomedial and maxillary processes meet during embryonic development (colloquially known as Hulse lines). When these processes fail to fuse fully in humans, a cleft lip (sometimes called a 'hare lip') can result. A flattened or smooth philtrum can be a symptom of fetal alcohol syndrome or Prader-Willi syndrome" xsd:string @@ -111691,7 +111684,6 @@ subset: efo_slim synonym: "pll" EXACT [ZFA:0000944] xref: AAO:0011024 xref: EFO:0003595 -xref: HBA:4413 xref: TAO:0000944 xref: XAO:0000465 xref: ZFA:0000944 @@ -116664,7 +116656,6 @@ intersection_of: UBERON:0010912 ! subdivision of skeleton intersection_of: skeleton_of UBERON:0000004 ! nose relationship: part_of UBERON:0000004 {source="FMA"} ! nose relationship: part_of UBERON:0003113 {notes="facial series", source="Kardong-abduced"} ! dermatocranium -relationship: part_of UBERON:0011156 ! facial skeleton [Term] id: UBERON:0006815 @@ -137546,7 +137537,7 @@ name: choroidal guanine tapetum def: "A choroid tapetum lucidum that is made of a palisade of cells containing stacks of flat hexagonal crystals of guanine." [https://orcid.org/0000-0002-6601-2165, PMID:14738502, Wikipedia:Tapetum_lucidum#Classification] xref: Wikipedia:Tapetum_lucidum#Classification is_a: UBERON:0010244 ! choroid tapetum lucidum -relationship: only_in_taxon NCBITaxon:7778 ! Elasmobranchii +relationship: only_in_taxon NCBITaxon:7777 {source="doi:10.1017/S0025315400024760"} ! Chondrichthyes relationship: present_in_taxon NCBITaxon:7778 ! Elasmobranchii relationship: present_in_taxon NCBITaxon:7864 ! Chimaeriformes property_value: taxon_notes "A choroidal tapetum of reflecting cells lying immediately outside the choriocapillaris is formed in a few primitive teleosts." xsd:string {source="PMID:14738502", taxon="NCBITaxon:32443"} @@ -139028,7 +139019,6 @@ xref: SCTID:415639001 xref: Wikipedia:Pterygoid_bone is_a: UBERON:0011164 {source="MA"} ! neurocranium bone relationship: contributes_to_morphology_of UBERON:0004649 ! sphenoid bone pterygoid process -relationship: part_of UBERON:0003108 {source="AAO"} ! suspensorium relationship: part_of UBERON:0004649 {source="MA"} ! sphenoid bone pterygoid process relationship: part_of UBERON:0012072 {source="ISBN:0073040584", source="Paleos"} ! palatal part of dermatocranium property_value: external_definition "In tetrapods, the pterygoid is a complex, but relatively stable, paired palatal bone with a number of parts. For the following discussion, it may be best to refer to the images of tetrapod palates at, for example Ornithosuchus, Therapsida, or Palatines. In many tetrapods, it is the largest palatal bone and serves as the main structural support. Most typically, the pterygoids meet extensively on the mid-line of the palate and jointly send a process, the palatal ramus, anteriorly, which may cover the parasphenoid more or less completely. Sometimes this term is used to include the main body of the pterygoid as well. More variably, there are one or two anterolateral processes which go by various names, such as ectopterygoid ramus. In many amniotes, the pterygoid develops a strong transverse process or transverse flange which forms a bar running laterally across the palate. The pterygoid also articulates with (where present) the dorsoventral supports for the palate: the epipterygoid (dorsal) and the basipterygoid process of the braincase. Finally, the pterygoid sends a long, robust quadrate ramus with complex curvature down (posteroventrally) to grasp the quadrate and support the jaw articulation. Basally, in fishes, the terminology tends to be a little different. Refer to the image of the Frasnian actinistian Diplocercides. The pterygoid bone of tetrapods is, roughly speaking, derived from the middle, entopterygoid (see also entry at entopterygoid for alternative definitions) portion of the palatoquadrate complex. The entopterygoid is not actually a part of the palatoquadrate. It is a dermal bone which has replaced the middle section of the primitively continuous endochondral bone of the palatoquadrate, the original upper jaw. In tetrapods, the pterygoid advances further, and also replaces the central part of the posterior, pterygoquadrate unit. This becomes the quadrate ramus. The upper part of this unit, the portion involved in the dorsal and basipterygoid articulations between jaw and braincase, is referred to as the metapterygoid. In tetrapods, most of this region is incorporated into the pterygoid as well, with the exception of the ascending process of the palatoquadrate, which becomes the epipterygoid. Since the anterior braincase articulation is lost in tetrapods, the only remaining sections of the palatoquadrate are the epipterygoid and the quadrate (or, in mammals, the incus). Everything else is either lost or is replaced by the pterygoid[Palaeos]" xsd:string {source="http://palaeos.com/vertebrates/glossary/glossaryPte.html"} @@ -142296,7 +142286,6 @@ xref: VHOG:0001143 xref: VSAO:0000184 is_a: UBERON:0004765 {source="VSAO", source="https://github.com/obophenotype/uberon/issues/82"} ! skeletal element relationship: develops_from UBERON:0003089 {source="cjm"} ! sclerotome -relationship: part_of UBERON:0001130 {source="VSAO"} ! vertebral column property_value: curator_notes "we include a distinct subclass for bony vertebra" xsd:string property_value: has_relational_adjective "vertebral" xsd:string property_value: homology_notes "In contrast to lampreys and jawed vertebrates, hagfishes were thought to lack vertebrae. Now, long overlooked vertebral rudiments have been analysed in hagfish, suggesting that vertebrae existed in the last common ancestor of all vertebrates.[well established][VHOG]" xsd:string {date_retrieved="2012-09-17", external_class="VHOG:0001143", ontology="VHOG", source="DOI:10.1016/j.cub.2011.07.014 Janvier P, Comparative anatomy: all vertebrates do have vertebrae. Current Biology (2011)", source="http://bgee.unil.ch/"} @@ -143858,7 +143847,6 @@ def: "Subdivision of the skeletal system which consists of the axial skeleton pl xref: FMA:7483 is_a: UBERON:0000075 {source="FMA"} ! subdivision of skeletal system relationship: has_part UBERON:0000982 ! skeletal joint -relationship: has_part UBERON:0005944 ! axial skeleton plus cranial skeleton relationship: only_in_taxon NCBITaxon:7711 ! Chordata property_value: seeAlso "http://purl.obolibrary.org/obo/uberon/docs/The-axial-skeleton" xsd:anyURI @@ -187793,7 +187781,6 @@ name: anatomical surface region def: "Material anatomical entity that forms the outermost boundary of an anatomical structure." [https://github.com/obophenotype/uberon/issues/1324] subset: common_anatomy xref: AAO:0010270 -xref: AEO:0000154 xref: ZFA:0005594 is_a: UBERON:0000465 ! material anatomical entity relationship: bounding_layer_of UBERON:0000061 ! anatomical structure diff --git a/src/ontology/uberon-odk.yaml b/src/ontology/uberon-odk.yaml index 2b37c24409..335c451189 100644 --- a/src/ontology/uberon-odk.yaml +++ b/src/ontology/uberon-odk.yaml @@ -64,6 +64,8 @@ import_group: - id: bfo - id: ncbitaxon mirror_from: http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim.owl + - id: ncbitaxondisjoints + mirror_from: http://purl.obolibrary.org/obo/ncbitaxon/subsets/taxslim-disjoint-over-in-taxon.owl - id: nbo use_base: TRUE - id: orcidio diff --git a/src/ontology/uberon.Makefile b/src/ontology/uberon.Makefile index e311be5a8f..24cfc7b863 100644 --- a/src/ontology/uberon.Makefile +++ b/src/ontology/uberon.Makefile @@ -109,9 +109,10 @@ quick-qc: $(REPORTDIR)/uberon-edit-obscheck.txt # ---------------------------------------- # BUILDING UBERON ITSELF # ---------------------------------------- + # Step 1: Preprocessing. We Merge the edit file file with imports, -# disjointness axioms, and list of contributors, then expand macros. -# FIXME: Need explanation for not expanding RO:0002175 specifically. +# disjointness axioms, and list of contributors, then expand macros +# (except RO:0002175, which only needs to be expanded for QC purposes). $(OWLSRC): $(SRC) $(COMPONENTSDIR)/disjoint_union_over.ofn $(REPORTDIR)/$(SRC)-gocheck $(REPORTDIR)/$(SRC)-iconv @echo "STRONG WARNING: issues/contributor.owl needs to be manually updated." $(ROBOT) merge -i $< \ @@ -417,7 +418,7 @@ $(TMPDIR)/uberon-taxon-constraints.obo: $(SRC) cat $@.tmp $(COMPONENTSDIR)/taxon_relations.obo > $@ $(TMPDIR)/uberon-taxon-constraints.owl: $(TMPDIR)/uberon-taxon-constraints.obo - $(OWLTOOLS) $< --expand-macros -o $@ + $(ROBOT) expand --input $< -o $@ # %-xf: Product without "non-subclass cross-references"? @@ -636,18 +637,41 @@ $(TMPDIR)/external-disjoints.owl: components/external-disjoints.obo $(ROBOT) convert -i $< -f owl -o $@ .PRECIOUS: $(TMPDIR)/external-disjoints.owl +# All the checks below need the taxslim-disjoint-over-in-taxon.owl, +# which should have been downloaded into mirror/ncbitaxondisjoints.owl +# by the standard ODK import pipeline. So ideally, all the checks below +# should just have to depend on mirror/ncbitaxondisjoints.owl. But the +# QC checks are run under MIR=false IMP=false, so while the rule would +# be invoked by Make it would not result in the mirror being downloaded +# if it is not already available. +# So instead, we make the checks depend on another file, and here we +# 1. force the download of the mirror if it is not already there; +# 2. create a link to that mirror. +$(TMPDIR)/taxslim-disjoint-over-in-taxon.owl: + if [ ! -f $(MIRRORDIR)/ncbitaxondisjoints.owl ]; then \ + $(MAKE) $(MIRRORDIR)/ncbitaxondisjoints.owl MIR=true IMP=true ; \ + fi && \ + ln -f -s ../$(MIRRORDIR)/ncbitaxondisjoints.owl $@ + # We create a merged ontology consisting of # (1) Uberon itself; # (2) the external-disjoints component; -# (3) all the bridges to Uberon (except the EMAP bridge, which should -# probably be removed entirely from the repo anyway). +# (3) the taxslim including inter-taxon disjointness axioms; +# (4) all the bridges to Uberon (except the EMAP bridge, which should +# probably be removed entirely from the repo anyway); +# and we expand RO:0002175 (which was left unexpanded at the +# preprocessing step, as it is only required for this check). # This can be used to reveal both internal inconsistencies within # Uberon, and the improper linking of a species AO class to an Uberon # class with a taxon constraints. ALL_UBERON_BRIDGES=$(shell ls $(BRIDGEDIR)/uberon-bridge-to-*.owl | grep -v emap.owl) -$(TMPDIR)/uberon-edit-plus-tax-equivs.owl: $(OWLSRC) $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges +$(TMPDIR)/uberon-edit-plus-tax-equivs.owl: $(OWLSRC) $(TMPDIR)/external-disjoints.owl \ + $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ + $(TMPDIR)/bridges $(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \ + -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ $(foreach bridge, $(ALL_UBERON_BRIDGES), -i $(bridge)) \ + expand \ convert -f ofn -o $@ .PRECIOUS: $(TMPDIR)/uberon-edit-plus-tax-equivs.owl @@ -671,8 +695,12 @@ extra-full-bridge-checks: $(foreach ao, $(EXTRA_FULL_CHECK_AO_LIST), $(REPORTDIR # A quick bridge check uses only uberon plus taxon constraints plus # bridging axioms, *not* the axioms in the source ontology itself. -$(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges +$(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl \ + $(TMPDIR)/external-disjoints.owl \ + $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ + $(TMPDIR)/bridges $(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \ + -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ -i $(BRIDGEDIR)/uberon-bridge-to-$*.owl \ reason -r ELK > $@ @@ -682,8 +710,13 @@ $(REPORTDIR)/quick-bridge-check-%.txt: uberon.owl $(TMPDIR)/external-disjoints.o # For this check, we separate the production of the merged ontology # from the production of the report. # 1. The merge -$(REPORTDIR)/bridge-check-%.owl: uberon.owl $(TMPDIR)/external-disjoints.owl $(TMPDIR)/bridges $(IMPORTDIR)/local-%.owl +$(REPORTDIR)/bridge-check-%.owl: uberon.owl \ + $(TMPDIR)/external-disjoints.owl \ + $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ + $(TMPDIR)/bridges \ + $(IMPORTDIR)/local-%.owl $(ROBOT) merge -i $< -i $(TMPDIR)/external-disjoints.owl \ + -i $(TMPDIR)/taxslim-disjoint-over-in-taxon.owl \ -i $(BRIDGEDIR)/uberon-bridge-to-$*.owl \ -i $(IMPORTDIR)/local-$*.owl \ convert -f ofn -o $@ @@ -1295,8 +1328,10 @@ HRA_SUBSET_URL="https://raw.githubusercontent.com/hubmapconsortium/ccf-validatio $(TMPDIR)/hra_subset.owl: wget $(HRA_SUBSET_URL) -O $@ +ifeq ($(strip $(MIR)),true) $(COMPONENTSDIR)/hra_subset.owl: $(TMPDIR)/hra_subset.owl $(ROBOT) merge -i $< annotate --ontology-iri $(ONTBASE)/$@ --output $@ +endif 3D_IMAGES_COMP_URL="https://raw.githubusercontent.com/hubmapconsortium/ccf-validation-tools/master/owl/hra_uberon_3d_images.owl" $(TMPDIR)/hra_depiction_3d_images.owl: