├── .github └── workflows │ ├── build.yml │ └── qc.yml ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── README.md ├── data └── test_zfin.n3 ├── docs ├── Brush_et_al_2013ICBO.pdf ├── Flybase Examples │ ├── 4-14-17_Flybase_Genotype_A.jpg │ ├── 4-14-17_Flybase_Genotype_B.jpg │ └── 4-14-17_Flybase_Genotype_C.jpg ├── GENO_Overview(2017-02-24).pptx ├── GenotypePartonomy.pdf ├── Old │ ├── GENO_Overview(2016-06-12).pptx │ ├── genotype_partonomy_figure(1-20-15).jpg │ ├── genotype_partonomy_figure(1-20-15)V2.png │ └── genotype_partonomy_figure(1-20-15)V3.png ├── VMC-GENO ApoE example genotype.pptx ├── geno-monochrom.owl └── ~$GENO_Overview(2017-02-24).pptx ├── geno-base.json ├── geno-base.obo ├── geno-base.owl ├── geno-full.json ├── geno-full.obo ├── geno-full.owl ├── geno.json ├── geno.obo ├── geno.owl ├── imports ├── iao_import.json ├── iao_import.obo ├── iao_import.owl ├── obi_import.owl ├── ro_import.json ├── ro_import.obo └── ro_import.owl ├── reports └── geno-edit.owl-obo-report.tsv └── src ├── metadata ├── README.md ├── geno.md └── geno.yml ├── ontology ├── Dockerfile ├── Makefile ├── README-editors.md ├── archive │ ├── catalog-v001.xml │ ├── geno-developer-defs.owl │ ├── geno-developer.owl │ ├── geno-obsolete.owl │ ├── geno-se.owl │ ├── geno.ttl │ ├── geno_d2rq_test_merged.owl │ ├── geno_examples.owl │ ├── geno_examples1.owl │ └── geno_imports.owl ├── build.sh ├── catalog-v001.xml ├── geno-edit.owl ├── geno-idranges.owl ├── geno-odk.yaml ├── geno.Makefile ├── imports │ ├── catalog-v001.xml │ ├── faldo_import.owl │ ├── faldo_terms.txt │ ├── go_import.owl │ ├── go_terms.txt │ ├── hp_import.owl │ ├── hp_terms.txt │ ├── hsapdv_import.owl │ ├── hsapdv_terms.txt │ ├── iao_import.json │ ├── iao_import.obo │ ├── iao_import.owl │ ├── iao_terms.txt │ ├── mp_import.owl │ ├── mp_terms.txt │ ├── ncbitaxon_import.owl │ ├── ncbitaxon_terms.txt │ ├── oban_import.owl │ ├── oban_terms.txt │ ├── obi_import.owl │ ├── obi_terms.txt │ ├── oboInOwl.owl │ ├── omo_import.owl │ ├── omo_terms.txt │ ├── ontology-metadata.owl │ ├── pato_import.owl │ ├── pato_terms.txt │ ├── pco_import.owl │ ├── pco_terms.txt │ ├── ro_import.json │ ├── ro_import.obo │ ├── ro_import.owl │ ├── ro_terms.txt │ ├── so_import.json │ ├── so_import.obo │ ├── so_import.owl │ ├── so_terms.txt │ ├── uberon_import.owl │ └── uberon_terms.txt ├── json.json ├── keeprelations.txt ├── oboInOwl.owl ├── ontologyterms.txt ├── patterns.sh ├── pre_odk │ ├── catalog-v001.xml │ ├── geno.owl │ ├── geno_imports.owl │ ├── oboInOwl.owl │ └── ontology-metadata.owl ├── prepare_release.sh ├── reports │ ├── README.md │ ├── geno-base.owl-obo-report.tsv │ └── geno-edit.owl-obo-report.tsv ├── run.bat ├── run.sh ├── test.sh └── tmp │ └── README.md ├── patterns ├── README.md ├── definitions.owl ├── dosdp-patterns │ └── external.txt └── pattern.owl ├── scripts ├── update_repo.sh └── validate_id_ranges.sc └── sparql ├── README.md ├── basic-report.sparql ├── class-count-by-prefix.sparql ├── def-lacks-xref-violation.sparql ├── edges.sparql ├── equivalent-classes-violation.sparql ├── geno_terms.sparql ├── illegal-date-violation.sparql ├── inject-subset-declaration.ru ├── inject-synonymtype-declaration.ru ├── iri-range-advanced-violation.sparql ├── iri-range-violation.sparql ├── label-with-iri-violation.sparql ├── labels.sparql ├── multiple-replaced_by-violation.sparql ├── nolabels-violation.sparql ├── obsolete-violation.sparql ├── obsoletes.sparql ├── owldef-self-reference-violation.sparql ├── owldef-violation.sparql ├── postprocess-module.ru ├── preprocess-module.ru ├── redundant-subClassOf-violation.sparql ├── simple-seed.sparql ├── subsets-labeled.sparql ├── synonyms.sparql ├── taxon-range-violation.sparql ├── term-tracker-uri-violation.sparql ├── terms.sparql ├── trailing-whitespace-violation.sparql ├── xref-syntax-violation.sparql └── xrefs.sparql /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build release files 2 | on: 3 | workflow_dispatch: 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | container: obolibrary/odkfull:v1.4.3 9 | strategy: 10 | max-parallel: 1 11 | steps: 12 | - name: Checkout main branch 13 | uses: actions/checkout@v2 14 | 15 | - name: work around permission issue 16 | run: git config --global --add safe.directory "$GITHUB_WORKSPACE" 17 | 18 | - name: Update release files 19 | run: cd src/ontology/ && make ROBOT_ENV='ROBOT_JAVA_ARGS=-Xmx6G' prepare_release_fast 20 | 21 | - name: Create Pull Request 22 | uses: peter-evans/create-pull-request@v3 23 | with: 24 | commit-message: Update release files 25 | title: 'Update release files' 26 | body: | 27 | Updates all release files. 28 | assignees: matentzn -------------------------------------------------------------------------------- /.github/workflows/qc.yml: -------------------------------------------------------------------------------- 1 | # Basic ODK workflow 2 | 3 | name: CI 4 | 5 | # Controls when the action will run. 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the main branch 8 | push: 9 | branches: [ develop ] 10 | pull_request: 11 | branches: [ develop ] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 17 | jobs: 18 | # This workflow contains a single job called "ontology_qc" 19 | ontology_qc: 20 | # The type of runner that the job will run on 21 | runs-on: ubuntu-latest 22 | container: obolibrary/odkfull:v1.3.0 23 | 24 | # Steps represent a sequence of tasks that will be executed as part of the job 25 | steps: 26 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 27 | - uses: actions/checkout@v2 28 | 29 | - name: Run ontology QC checks 30 | env: 31 | DEFAULT_BRANCH: develop 32 | run: cd src/ontology && make ROBOT_ENV='ROBOT_JAVA_ARGS=-Xmx6G' test IMP=false PAT=false 33 | 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.tmp 3 | *.tmp.json 4 | *.tmp.obo 5 | *.tmp.owl 6 | bin/ 7 | semantic.cache 8 | src/ontology/dosdp-tools.log 9 | src/ontology/ed_definitions_merged.owl 10 | src/ontology/geno-base.* 11 | src/ontology/geno-basic.* 12 | src/ontology/geno-full.* 13 | src/ontology/geno-simple-non-classified.* 14 | src/ontology/geno-simple.* 15 | src/ontology/geno.json 16 | src/ontology/geno.obo 17 | src/ontology/geno.owl 18 | src/ontology/imports/*_terms_combined.txt 19 | src/ontology/merged-geno-edit.owl 20 | src/ontology/mirror 21 | src/ontology/mirror/* 22 | src/ontology/ontologyterms.txt 23 | src/ontology/patterns 24 | src/ontology/patterns 25 | src/ontology/seed.txt 26 | src/ontology/simple_seed.txt 27 | src/ontology/target/ 28 | src/ontology/tmp/* 29 | !src/ontology/tmp/README.md 30 | src/patterns/all_pattern_terms.txt 31 | src/patterns/data/**/*.ofn 32 | src/patterns/data/**/*.txt 33 | src/patterns/imports/seed_sorted.txt 34 | src/patterns/pattern_owl_seed.txt 35 | src/ontology/reports/validate_profile_owl2dl_geno.owl.txt 36 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | ## REMEMBER TO SET UP YOUR GIT REPO FOR TRAVIS 2 | ## Go to: https://travis-ci.org/monarch-initiative for details 3 | sudo: required 4 | 5 | services: 6 | - docker 7 | 8 | before_install: 9 | - docker pull obolibrary/odkfull 10 | 11 | # command to run tests 12 | script: cd src/ontology && sh run.sh make test 13 | 14 | #after_success: 15 | # coveralls 16 | 17 | # whitelist 18 | branches: 19 | only: 20 | - master 21 | - test-travis 22 | 23 | ### Add your own lists here 24 | ### See https://github.com/INCATools/ontology-development-kit/issues/35 25 | notifications: 26 | email: 27 | - obo-ci-reports-all@groups.io -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution guide for GENO ontology 2 | 3 | ## Run a release: 4 | 5 | 1. Go to the [Build workflow action](https://github.com/monarch-initiative/GENO-ontology/actions/workflows/build.yml) 6 | 2. Click "Run workflow" on the right 7 | 3. Make sure the selected branch is "develop", and click again on "Run workflow". This will trigger an action that will rebuild GENO and open a PR 8 | 4. When the PR is opened, review and merge it the usual way 9 | 5. Go the the [GitHub release](https://github.com/monarch-initiative/GENO-ontology/releases) page and click on "Draft new release" 10 | 6. As the tag, select the `v202*-MM-DD`, make sure you pre-pend the `v`. This date should correspond to the date the release files were generated (see in the PR, all release files have a version IRI with the correct date) 11 | 7. Fill in all the remaining information as you see fit and click on "Publish release" 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | GENO-ontology 2 | ============= 3 | 4 | 5 | This repository holds the GENO ontology, which can be found in the **OWL file [here](src/ontology/geno.owl)**. 6 | 7 | A review of the modeling and use cases supported by GENO is can be found in the **slide deck [here](https://github.com/monarch-initiative/GENO-ontology/blob/develop/docs/GENO_Overview(2017-02-24).pptx)**. 8 | 9 | A detailed example of how GENO can be used to represent a complex Drosophila genotype is described in the **document [here](https://docs.google.com/document/d/15U4sDU8Hd_lSZJZJl8NywleNxHcX7wfnoT8j316STQo/edit#)**. 10 | 11 | [Contribution and release guide](CONTRIBUTING.md) 12 | 13 | ----------------- 14 | 15 | ## Overview 16 | 17 | GENO is an OWL2 ontology that represents the levels of genetic variation specified in genotypes, to support genotype-to-phenotype (G2P) data aggregation and analysis across diverse research communities and sources. The core of the ontology is a graph decomposing a genotype into smaller components of variation, from a complete genotype specifying sequence variation across an entire genome, down to specific allelic variants and sequence alterations (**Figure 1**). Structuring genotype instance data according to this model supports a primary use case of GENO to enable integrated analysis of G2P data where phenotype annotations are made at different levels of granularity in this genotype partonomy. GENO also enables description of various attributes of genotypes and genetic variants. These attributes include zygosity, genomic position, expression, dominance, and functional dependencies or consequences of a given variant. 18 | 19 | 20 | 21 | _**Figure 1**: Decomposition of a Genotype. **(A)** Top level breakdown into reference and variant components. **(B)** Further decomposition of the genomic variation complement into its more fundamental parts. Class labels are in blue, and exemplar instances of each class are shown in green, for a zebrafish genotype which contains a homozygous ti282 variant of the fgf8 gene, and a heterozygous hu745 variant of the apc gene. Schematics graphically illustrate extent of genomic DNA represented at each level in the partonomy._ 22 | 23 | In addition to heritable variation in genomic sequence specified by traditional genotypes, GENO also represents transient variation in gene expression, as seen in experiments where genes are targeted by knockdown reagents or overexpressed by DNA constructs at the time a phenotype is assessed. This variation in gene expression is represented in terms of the targeted genes themselves, to parallel representation of sequence variation and facilitate integrated description and analysis of data about any genetic contribution to a measured phenotype. 24 | 25 | Finally, GENO also supports modelling of G2P associations, focusing on the interplay between genotype, phenotype, and environment. GENO describes provenance and experimental evidence for these associations using the [Scientific Evidence and Provenance Information Ontology (SEPIO)](https://github.com/monarch-initiative/SEPIO-ontology) model. 26 | 27 | 28 | GENO is orthogonal to but has contact points with a number of existing community ontologies, including the [Sequence Ontology (SO)](http://www.sequenceontology.org/), the [Human Phenotype Ontology (HPO)](http://www.human-phenotype-ontology.org/), the [Feature Annotation Location Description Ontology(FALDO)](https://github.com/JervenBolleman/FALDO), and the [Variation Ontology (VariO)](http://variationontology.org/). We will work with developers of these models to align representations and re-use common terms where possible. Further documentation for GENO is under development, but a high level overview of its core model can be found in the slide deck [here](https://github.com/monarch-initiative/GENO-ontology/blob/develop/docs/GENO_Overview(2017-02-24).pptx), and a summary of the use cases for which it is being developed can be found [here](https://github.com/monarch-initiative/GENO-ontology/wiki/GENO-Use-Cases). 29 | 30 | GENO is an open source ontology, implemented in OWL2 under a [Creative Commons 4.0 BY license](https://creativecommons.org/licenses/by/4.0/). 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /data/test_zfin.n3: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix xml: . 5 | @prefix xsd: . 6 | @prefix rdfs: . 7 | @base . 8 | 9 | rdf:type owl:Ontology . 10 | 11 | 12 | ################################################################# 13 | # 14 | # Annotation properties 15 | # 16 | ################################################################# 17 | 18 | 19 | ### http://purl.obolibrary.org/obo/IAO_0000118 20 | 21 | rdf:type owl:AnnotationProperty . 22 | 23 | 24 | 25 | 26 | 27 | ################################################################# 28 | # 29 | # Object Properties 30 | # 31 | ################################################################# 32 | 33 | 34 | ### http://purl.obolibrary.org/obo/GENO_0000382 35 | 36 | rdf:type owl:ObjectProperty . 37 | 38 | 39 | 40 | ### http://purl.obolibrary.org/obo/GENO_0000385 41 | 42 | rdf:type owl:ObjectProperty . 43 | 44 | 45 | 46 | ### http://purl.obolibrary.org/obo/GENO_0000410 47 | 48 | rdf:type owl:ObjectProperty . 49 | 50 | 51 | 52 | 53 | 54 | ################################################################# 55 | # 56 | # Data properties 57 | # 58 | ################################################################# 59 | 60 | 61 | ### http://purl.obolibrary.org/obo/GENO_0000400 62 | 63 | rdf:type owl:DatatypeProperty . 64 | 65 | 66 | 67 | 68 | 69 | ################################################################# 70 | # 71 | # Classes 72 | # 73 | ################################################################# 74 | 75 | 76 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-980526-166 77 | 78 | rdf:type owl:Class ; 79 | 80 | rdfs:label "shha"^^xsd:string ; 81 | 82 | rdfs:subClassOf . 83 | 84 | 85 | 86 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-990415-72 87 | 88 | rdf:type owl:Class ; 89 | 90 | rdfs:label "fgf8a"^^xsd:string ; 91 | 92 | rdfs:subClassOf . 93 | 94 | 95 | 96 | ### http://purl.obolibrary.org/obo/GENO_0000000 97 | 98 | rdf:type owl:Class . 99 | 100 | 101 | 102 | ### http://purl.obolibrary.org/obo/GENO_0000002 103 | 104 | rdf:type owl:Class . 105 | 106 | 107 | 108 | ### http://purl.obolibrary.org/obo/GENO_0000009 109 | 110 | rdf:type owl:Class . 111 | 112 | 113 | 114 | ### http://purl.obolibrary.org/obo/GENO_0000010 115 | 116 | rdf:type owl:Class . 117 | 118 | 119 | 120 | ### http://purl.obolibrary.org/obo/GENO_0000030 121 | 122 | rdf:type owl:Class . 123 | 124 | 125 | 126 | ### http://purl.obolibrary.org/obo/GENO_0000047 127 | 128 | rdf:type owl:Class . 129 | 130 | 131 | 132 | ### http://purl.obolibrary.org/obo/SO_0000159 133 | 134 | rdf:type owl:Class . 135 | 136 | 137 | 138 | ### http://purl.obolibrary.org/obo/SO_0001218 139 | 140 | rdf:type owl:Class . 141 | 142 | 143 | 144 | ### http://purl.obolibrary.org/obo/SO_1000008 145 | 146 | rdf:type owl:Class . 147 | 148 | 149 | 150 | ### http://www.w3.org/2002/07/owl#Class 151 | 152 | owl:Class rdf:type owl:Class . 153 | 154 | 155 | 156 | ### http://www.w3.org/2002/07/owl#DatatypeProperty 157 | 158 | owl:DatatypeProperty rdf:type owl:Class . 159 | 160 | 161 | 162 | ### http://www.w3.org/2002/07/owl#NamedIndividual 163 | 164 | owl:NamedIndividual rdf:type owl:Class . 165 | 166 | 167 | 168 | ### http://www.w3.org/2002/07/owl#ObjectProperty 169 | 170 | owl:ObjectProperty rdf:type owl:Class . 171 | 172 | 173 | 174 | 175 | 176 | ################################################################# 177 | # 178 | # Individuals 179 | # 180 | ################################################################# 181 | 182 | 183 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-010426-4 184 | 185 | rdf:type , 186 | owl:NamedIndividual ; 187 | 188 | rdfs:label "Df(Chr07)t4"^^xsd:string ; 189 | 190 | "t4"^^xsd:string . 191 | 192 | 193 | 194 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-010427-8 195 | 196 | rdf:type , 197 | owl:NamedIndividual ; 198 | 199 | rdfs:label "tbx392"^^xsd:string ; 200 | 201 | "tbx392"^^xsd:string . 202 | 203 | 204 | 205 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-011017-8 206 | 207 | rdf:type , 208 | , 209 | owl:NamedIndividual ; 210 | 211 | rdfs:label ""^^xsd:string , 212 | "Tg(fli1a:EGFP)y1"^^xsd:string ; 213 | 214 | "y1"^^xsd:string ; 215 | 216 | . 217 | 218 | 219 | 220 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-080528-1 221 | 222 | rdf:type , 223 | , 224 | owl:NamedIndividual ; 225 | 226 | rdfs:label ""^^xsd:string , 227 | "Tg(5xUAS:EGFP)nkuasgfp1a"^^xsd:string ; 228 | 229 | "nkuasgfp1a"^^xsd:string ; 230 | 231 | . 232 | 233 | 234 | 235 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-080528-6 236 | 237 | rdf:type , 238 | , 239 | owl:NamedIndividual ; 240 | 241 | rdfs:label ""^^xsd:string , 242 | "Gt(Gal4FF)nk31b"^^xsd:string ; 243 | 244 | "nk31b"^^xsd:string ; 245 | 246 | . 247 | 248 | 249 | 250 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-100519-1 251 | 252 | rdf:type , 253 | , 254 | owl:NamedIndividual ; 255 | 256 | rdfs:label ""^^xsd:string , 257 | "Tg(TETRE:Mmu.Axin1-YFP)tud1"^^xsd:string ; 258 | 259 | "tud1"^^xsd:string ; 260 | 261 | . 262 | 263 | 264 | 265 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-980203-1091 266 | 267 | rdf:type , 268 | owl:NamedIndividual ; 269 | 270 | rdfs:label "ti282a"^^xsd:string ; 271 | 272 | "ti282a"^^xsd:string . 273 | 274 | 275 | 276 | ### http://monarchinitiaive.org/data/zfin/ZDB-ALT-980413-636 277 | 278 | rdf:type , 279 | owl:NamedIndividual ; 280 | 281 | rdfs:label "tq252"^^xsd:string ; 282 | 283 | "tq252"^^xsd:string . 284 | 285 | 286 | 287 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-980526-166 288 | 289 | rdf:type owl:NamedIndividual . 290 | 291 | 292 | 293 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-980526-166_ZDB-ALT-010426-4 294 | 295 | rdf:type , 296 | , 297 | owl:NamedIndividual ; 298 | 299 | rdfs:label "shha"^^xsd:string ; 300 | 301 | ; 302 | 303 | . 304 | 305 | 306 | 307 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-980526-166_ZDB-ALT-010427-8 308 | 309 | rdf:type , 310 | , 311 | owl:NamedIndividual ; 312 | 313 | rdfs:label "shha"^^xsd:string ; 314 | 315 | ; 316 | 317 | . 318 | 319 | 320 | 321 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-980526-166_ZDB-ALT-980413-636 322 | 323 | rdf:type , 324 | , 325 | owl:NamedIndividual ; 326 | 327 | rdfs:label "shha"^^xsd:string ; 328 | 329 | ; 330 | 331 | . 332 | 333 | 334 | 335 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-990415-72 336 | 337 | rdf:type owl:NamedIndividual . 338 | 339 | 340 | 341 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENE-990415-72_ZDB-ALT-980203-1091 342 | 343 | rdf:type , 344 | , 345 | owl:NamedIndividual ; 346 | 347 | rdfs:label "fgf8a"^^xsd:string ; 348 | 349 | ; 350 | 351 | . 352 | 353 | 354 | 355 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-070209-1 356 | 357 | rdf:type , 358 | owl:NamedIndividual ; 359 | 360 | ; 361 | 362 | . 363 | 364 | 365 | 366 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-080529-2 367 | 368 | rdf:type , 369 | owl:NamedIndividual ; 370 | 371 | . 372 | 373 | 374 | 375 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-080804-4 376 | 377 | rdf:type , 378 | owl:NamedIndividual ; 379 | 380 | . 381 | 382 | 383 | 384 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-100520-3 385 | 386 | rdf:type , 387 | owl:NamedIndividual ; 388 | 389 | . 390 | 391 | 392 | 393 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-111025-3 394 | 395 | rdf:type , 396 | owl:NamedIndividual ; 397 | 398 | . 399 | 400 | 401 | 402 | ### http://monarchinitiaive.org/data/zfin/ZDB-GENO-960809-7 403 | 404 | rdf:type , 405 | owl:NamedIndividual ; 406 | 407 | rdfs:label "AB"^^xsd:string . 408 | 409 | 410 | 411 | ### http://monarchinitiaive.org/data/zfin/nk31b_U_U_U_ 412 | 413 | rdf:type , 414 | owl:NamedIndividual ; 415 | 416 | rdfs:label "/"^^xsd:string ; 417 | 418 | "unspecified zygosity" ; 419 | 420 | . 421 | 422 | 423 | 424 | ### http://monarchinitiaive.org/data/zfin/nk31b_U_U_U_-nkuasgfp1a_U_U_U_ 425 | 426 | rdf:type , 427 | owl:NamedIndividual ; 428 | 429 | rdfs:label "/; /"^^xsd:string ; 430 | 431 | , 432 | . 433 | 434 | 435 | 436 | ### http://monarchinitiaive.org/data/zfin/nkuasgfp1a_U_U_U_ 437 | 438 | rdf:type , 439 | owl:NamedIndividual ; 440 | 441 | rdfs:label "/"^^xsd:string ; 442 | 443 | "unspecified zygosity" ; 444 | 445 | . 446 | 447 | 448 | 449 | ### http://monarchinitiaive.org/data/zfin/t4_1_U_U_-tbx392_1_U_U_ 450 | 451 | rdf:type , 452 | , 453 | owl:NamedIndividual ; 454 | 455 | rdfs:label "shha/shha"^^xsd:string ; 456 | 457 | "complex heterozygous" ; 458 | 459 | , 460 | , 461 | . 462 | 463 | 464 | 465 | ### http://monarchinitiaive.org/data/zfin/ti282a_1_U_U_AB 466 | 467 | rdf:type , 468 | , 469 | owl:NamedIndividual ; 470 | 471 | rdfs:label "fgf8a/fgf8a<+>"^^xsd:string ; 472 | 473 | "simple heterozygous" ; 474 | 475 | , 476 | . 477 | 478 | 479 | 480 | ### http://monarchinitiaive.org/data/zfin/tq252_1_U_U_ 481 | 482 | rdf:type , 483 | owl:NamedIndividual ; 484 | 485 | rdfs:label "shha/shha<+>"^^xsd:string ; 486 | 487 | "simple heterozygous" ; 488 | 489 | . 490 | 491 | 492 | 493 | ### http://monarchinitiaive.org/data/zfin/tq252_1_U_U_-y1_U_U_U_ 494 | 495 | rdf:type , 496 | owl:NamedIndividual ; 497 | 498 | rdfs:label "shha/shha<+>; /"^^xsd:string ; 499 | 500 | , 501 | . 502 | 503 | 504 | 505 | ### http://monarchinitiaive.org/data/zfin/tud1_U_U_U_ 506 | 507 | rdf:type , 508 | , 509 | owl:NamedIndividual ; 510 | 511 | rdfs:label "/"^^xsd:string ; 512 | 513 | "unspecified zygosity" ; 514 | 515 | , 516 | . 517 | 518 | 519 | 520 | ### http://monarchinitiaive.org/data/zfin/y1_U_U_U_ 521 | 522 | rdf:type , 523 | owl:NamedIndividual ; 524 | 525 | rdfs:label "/"^^xsd:string ; 526 | 527 | "unspecified zygosity" ; 528 | 529 | . 530 | 531 | 532 | 533 | 534 | ### Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net 535 | 536 | -------------------------------------------------------------------------------- /docs/Brush_et_al_2013ICBO.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Brush_et_al_2013ICBO.pdf -------------------------------------------------------------------------------- /docs/Flybase Examples/4-14-17_Flybase_Genotype_A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Flybase Examples/4-14-17_Flybase_Genotype_A.jpg -------------------------------------------------------------------------------- /docs/Flybase Examples/4-14-17_Flybase_Genotype_B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Flybase Examples/4-14-17_Flybase_Genotype_B.jpg -------------------------------------------------------------------------------- /docs/Flybase Examples/4-14-17_Flybase_Genotype_C.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Flybase Examples/4-14-17_Flybase_Genotype_C.jpg -------------------------------------------------------------------------------- /docs/GENO_Overview(2017-02-24).pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/GENO_Overview(2017-02-24).pptx -------------------------------------------------------------------------------- /docs/GenotypePartonomy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/GenotypePartonomy.pdf -------------------------------------------------------------------------------- /docs/Old/GENO_Overview(2016-06-12).pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Old/GENO_Overview(2016-06-12).pptx -------------------------------------------------------------------------------- /docs/Old/genotype_partonomy_figure(1-20-15).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Old/genotype_partonomy_figure(1-20-15).jpg -------------------------------------------------------------------------------- /docs/Old/genotype_partonomy_figure(1-20-15)V2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Old/genotype_partonomy_figure(1-20-15)V2.png -------------------------------------------------------------------------------- /docs/Old/genotype_partonomy_figure(1-20-15)V3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/Old/genotype_partonomy_figure(1-20-15)V3.png -------------------------------------------------------------------------------- /docs/VMC-GENO ApoE example genotype.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/docs/VMC-GENO ApoE example genotype.pptx -------------------------------------------------------------------------------- /docs/~$GENO_Overview(2017-02-24).pptx: -------------------------------------------------------------------------------- 1 | Matthew Brush Matthew Brush -------------------------------------------------------------------------------- /reports/geno-edit.owl-obo-report.tsv: -------------------------------------------------------------------------------- 1 | Level Rule Name Subject Property Value 2 | ERROR duplicate_definition GENO:0000847 IAO:0000115 A relation used to describe an environment contextualizing the identity of an entity. 3 | ERROR duplicate_definition GENO:0000873 IAO:0000115 A relation used to describe an environment contextualizing the identity of an entity. 4 | ERROR duplicate_definition GENO:0000846 IAO:0000115 A relation used to describe a process contextualizing the identity of an entity. 5 | ERROR duplicate_definition GENO:0000874 IAO:0000115 A relation used to describe a process contextualizing the identity of an entity. 6 | ERROR duplicate_definition GENO:0000719 IAO:0000115 A genotype that describes the total variation in heritable genomic sequence of a cell or organism, typically in terms of alterations from some reference or background genotype. 7 | ERROR duplicate_definition GENO:0000899 IAO:0000115 A genotype that describes the total variation in heritable genomic sequence of a cell or organism, typically in terms of alterations from some reference or background genotype. 8 | ERROR misused_obsolete_label GENO:0000242 rdfs:label obsolete_specifies 9 | ERROR misused_obsolete_label GENO:0000243 rdfs:label obsolete_approximates_sequence 10 | ERROR misused_obsolete_label GENO:0000244 rdfs:label obsolete_resolves_to_sequence 11 | ERROR misused_obsolete_label GENO:0000253 rdfs:label obsolete_is_specified_by 12 | ERROR misused_obsolete_label GENO:0000359 rdfs:label obsolete_is_phenotype_of_genotype 13 | ERROR misused_obsolete_label GENO:0000368 rdfs:label obsolete_participates_in_inheritance_process 14 | ERROR misused_obsolete_label GENO:0000410 rdfs:label obsolete_is_genetic_variant_of 15 | ERROR misused_obsolete_label GENO:0000411 rdfs:label obsolete_has_genetic_variant 16 | ERROR misused_obsolete_label GENO:0000486 rdfs:label obsolete_is_variant_with@en 17 | ERROR misused_obsolete_label GENO:0000488 rdfs:label obsolete_is_expression_variant_with@en 18 | ERROR misused_obsolete_label GENO:0000712 rdfs:label ObsoleteDataProperty@en 19 | ERROR misused_obsolete_label GENO:0000741 rdfs:label obsolete_has_regulatory_part@en 20 | ERROR misused_obsolete_label GENO:0000742 rdfs:label obsolete_is_alteration_within@en 21 | ERROR misused_obsolete_label GENO:0000767 rdfs:label obsolete_has_position_component@en 22 | ERROR misused_obsolete_label GENO:0000910 rdfs:label obsolete reporter role@en 23 | ERROR misused_obsolete_label GENO:0000911 rdfs:label obsolete selectable marker role@en 24 | ERROR misused_obsolete_label RO:0002354 rdfs:label obsolete_formed as result of@en 25 | ERROR duplicate_label http://biohackathon.org/resource/faldo#reference rdfs:label reference 26 | ERROR duplicate_label GENO:0000152 rdfs:label reference 27 | ERROR multiple_definitions BFO:0000020 IAO:0000115 b is a relational specifically dependent continuant = Def. b is a specifically dependent continuant and there are n > 1 independent continuants c1, … cn which are not spatial regions are such that for all 1 i < j n, ci and cj share no common parts, are such that for each 1 i n, b s-depends_on ci at every time t during the course of b’s existence (axiom label in BFO2 Reference: [131-004])@en 28 | ERROR multiple_definitions BFO:0000020 IAO:0000115 b is a specifically dependent continuant = Def. b is a continuant & there is some independent continuant c which is not a spatial region and which is such that b s-depends_on c at every time t during the course of b’s existence. (axiom label in BFO2 Reference: [050-003])@en 29 | ERROR multiple_labels BFO:0000002 rdfs:label continuant 30 | ERROR multiple_labels BFO:0000002 rdfs:label continuant@en 31 | ERROR multiple_labels BFO:0000003 rdfs:label occurrent 32 | ERROR multiple_labels BFO:0000003 rdfs:label occurrent@en 33 | ERROR multiple_labels BFO:0000004 rdfs:label independent continuant 34 | ERROR multiple_labels BFO:0000004 rdfs:label independent continuant@en 35 | ERROR multiple_labels BFO:0000015 rdfs:label process 36 | ERROR multiple_labels BFO:0000015 rdfs:label process@en 37 | ERROR multiple_labels BFO:0000016 rdfs:label disposition 38 | ERROR multiple_labels BFO:0000016 rdfs:label disposition@en 39 | ERROR multiple_labels BFO:0000017 rdfs:label realizable entity 40 | ERROR multiple_labels BFO:0000017 rdfs:label realizable entity@en 41 | ERROR multiple_labels BFO:0000019 rdfs:label quality 42 | ERROR multiple_labels BFO:0000019 rdfs:label quality@en 43 | ERROR multiple_labels BFO:0000020 rdfs:label specifically dependent continuant 44 | ERROR multiple_labels BFO:0000020 rdfs:label specifically dependent continuant@en 45 | ERROR multiple_labels BFO:0000023 rdfs:label role 46 | ERROR multiple_labels BFO:0000023 rdfs:label role@en 47 | ERROR multiple_labels BFO:0000031 rdfs:label generically dependent continuant 48 | ERROR multiple_labels BFO:0000031 rdfs:label generically dependent continuant@en 49 | ERROR multiple_labels BFO:0000040 rdfs:label material entity 50 | ERROR multiple_labels BFO:0000040 rdfs:label material entity@en 51 | ERROR multiple_labels GENO:0000910 rdfs:label obsolete reporter role@en 52 | ERROR multiple_labels GENO:0000910 rdfs:label reporter@en 53 | ERROR multiple_labels GENO:0000911 rdfs:label obsolete selectable marker role@en 54 | ERROR multiple_labels GENO:0000911 rdfs:label selectable marker@en 55 | ERROR multiple_labels IAO:0000030 rdfs:label information content entity 56 | ERROR multiple_labels IAO:0000030 rdfs:label information content entity@en 57 | WARN missing_definition http://biohackathon.org/resource/faldo#BothStrandsPosition IAO:0000115 58 | WARN missing_definition http://biohackathon.org/resource/faldo#ForwardStrandPosition IAO:0000115 59 | WARN missing_definition http://biohackathon.org/resource/faldo#ReverseStrandPosition IAO:0000115 60 | WARN missing_definition http://biohackathon.org/resource/faldo#StrandedPosition IAO:0000115 61 | WARN missing_definition http://biohackathon.org/resource/faldo#begin IAO:0000115 62 | WARN missing_definition http://biohackathon.org/resource/faldo#end IAO:0000115 63 | WARN missing_definition http://biohackathon.org/resource/faldo#location IAO:0000115 64 | WARN missing_definition http://biohackathon.org/resource/faldo#position IAO:0000115 65 | WARN missing_definition BFO:0000050 IAO:0000115 66 | WARN missing_definition BFO:0000051 IAO:0000115 67 | WARN missing_definition CHEBI:23367 IAO:0000115 68 | WARN missing_definition CHEBI:33696 IAO:0000115 69 | WARN missing_definition CL:0000000 IAO:0000115 70 | WARN missing_definition ENVO:01000254 IAO:0000115 71 | WARN missing_definition GENO:0000092 IAO:0000115 72 | WARN missing_definition GENO:0000113 IAO:0000115 73 | WARN missing_definition GENO:0000118 IAO:0000115 74 | WARN missing_definition GENO:0000119 IAO:0000115 75 | WARN missing_definition GENO:0000134 IAO:0000115 76 | WARN missing_definition GENO:0000135 IAO:0000115 77 | WARN missing_definition GENO:0000136 IAO:0000115 78 | WARN missing_definition GENO:0000137 IAO:0000115 79 | WARN missing_definition GENO:0000139 IAO:0000115 80 | WARN missing_definition GENO:0000140 IAO:0000115 81 | WARN missing_definition GENO:0000160 IAO:0000115 82 | WARN missing_definition GENO:0000220 IAO:0000115 83 | WARN missing_definition GENO:0000243 IAO:0000115 84 | WARN missing_definition GENO:0000244 IAO:0000115 85 | WARN missing_definition GENO:0000251 IAO:0000115 86 | WARN missing_definition GENO:0000252 IAO:0000115 87 | WARN missing_definition GENO:0000253 IAO:0000115 88 | WARN missing_definition GENO:0000351 IAO:0000115 89 | WARN missing_definition GENO:0000383 IAO:0000115 90 | WARN missing_definition GENO:0000387 IAO:0000115 91 | WARN missing_definition GENO:0000391 IAO:0000115 92 | WARN missing_definition GENO:0000392 IAO:0000115 93 | WARN missing_definition GENO:0000393 IAO:0000115 94 | WARN missing_definition GENO:0000394 IAO:0000115 95 | WARN missing_definition GENO:0000458 IAO:0000115 96 | WARN missing_definition GENO:0000495 IAO:0000115 97 | WARN missing_definition GENO:0000502 IAO:0000115 98 | WARN missing_definition GENO:0000533 IAO:0000115 99 | WARN missing_definition GENO:0000575 IAO:0000115 100 | WARN missing_definition GENO:0000604 IAO:0000115 101 | WARN missing_definition GENO:0000605 IAO:0000115 102 | WARN missing_definition GENO:0000606 IAO:0000115 103 | WARN missing_definition GENO:0000616 IAO:0000115 104 | WARN missing_definition GENO:0000618 IAO:0000115 105 | WARN missing_definition GENO:0000619 IAO:0000115 106 | WARN missing_definition GENO:0000620 IAO:0000115 107 | WARN missing_definition GENO:0000621 IAO:0000115 108 | WARN missing_definition GENO:0000622 IAO:0000115 109 | WARN missing_definition GENO:0000623 IAO:0000115 110 | WARN missing_definition GENO:0000624 IAO:0000115 111 | WARN missing_definition GENO:0000625 IAO:0000115 112 | WARN missing_definition GENO:0000626 IAO:0000115 113 | WARN missing_definition GENO:0000632 IAO:0000115 114 | WARN missing_definition GENO:0000633 IAO:0000115 115 | WARN missing_definition GENO:0000640 IAO:0000115 116 | WARN missing_definition GENO:0000650 IAO:0000115 117 | WARN missing_definition GENO:0000651 IAO:0000115 118 | WARN missing_definition GENO:0000655 IAO:0000115 119 | WARN missing_definition GENO:0000708 IAO:0000115 120 | WARN missing_definition GENO:0000712 IAO:0000115 121 | WARN missing_definition GENO:0000720 IAO:0000115 122 | WARN missing_definition GENO:0000721 IAO:0000115 123 | WARN missing_definition GENO:0000722 IAO:0000115 124 | WARN missing_definition GENO:0000740 IAO:0000115 125 | WARN missing_definition GENO:0000741 IAO:0000115 126 | WARN missing_definition GENO:0000743 IAO:0000115 127 | WARN missing_definition GENO:0000761 IAO:0000115 128 | WARN missing_definition GENO:0000770 IAO:0000115 129 | WARN missing_definition GENO:0000779 IAO:0000115 130 | WARN missing_definition GENO:0000780 IAO:0000115 131 | WARN missing_definition GENO:0000781 IAO:0000115 132 | WARN missing_definition GENO:0000782 IAO:0000115 133 | WARN missing_definition GENO:0000790 IAO:0000115 134 | WARN missing_definition GENO:0000791 IAO:0000115 135 | WARN missing_definition GENO:0000793 IAO:0000115 136 | WARN missing_definition GENO:0000794 IAO:0000115 137 | WARN missing_definition GENO:0000833 IAO:0000115 138 | WARN missing_definition GENO:0000839 IAO:0000115 139 | WARN missing_definition GENO:0000840 IAO:0000115 140 | WARN missing_definition GENO:0000841 IAO:0000115 141 | WARN missing_definition GENO:0000843 IAO:0000115 142 | WARN missing_definition GENO:0000844 IAO:0000115 143 | WARN missing_definition GENO:0000845 IAO:0000115 144 | WARN missing_definition GENO:0000849 IAO:0000115 145 | WARN missing_definition GENO:0000867 IAO:0000115 146 | WARN missing_definition GENO:0000887 IAO:0000115 147 | WARN missing_definition GENO:0000905 IAO:0000115 148 | WARN missing_definition GENO:0000906 IAO:0000115 149 | WARN missing_definition GENO:0000909 IAO:0000115 150 | WARN missing_definition GENO:0000910 IAO:0000115 151 | WARN missing_definition GENO:0000911 IAO:0000115 152 | WARN missing_definition GENO:0000912 IAO:0000115 153 | WARN missing_definition GENO:0000964 IAO:0000115 154 | WARN missing_definition HP:0000118 IAO:0000115 155 | WARN missing_definition HsapDv:0000000 IAO:0000115 156 | WARN missing_definition IAO:0000102 IAO:0000115 157 | WARN missing_definition MP:0000001 IAO:0000115 158 | WARN missing_definition NCBITaxon:10090 IAO:0000115 159 | WARN missing_definition NCBITaxon:10239 IAO:0000115 160 | WARN missing_definition NCBITaxon:7955 IAO:0000115 161 | WARN missing_definition NCBITaxon:8090 IAO:0000115 162 | WARN missing_definition NCBITaxon:9606 IAO:0000115 163 | WARN missing_definition OBI:0000086 IAO:0000115 164 | WARN missing_definition OBI:0100026 IAO:0000115 165 | WARN missing_definition PATO:0000383 IAO:0000115 166 | WARN missing_definition PATO:0000384 IAO:0000115 167 | WARN missing_definition PATO:0001894 IAO:0000115 168 | WARN missing_definition RO:0000087 IAO:0000115 169 | WARN missing_definition RO:0001000 IAO:0000115 170 | WARN missing_definition RO:0002091 IAO:0000115 171 | WARN missing_definition RO:0002093 IAO:0000115 172 | WARN missing_definition RO:0002201 IAO:0000115 173 | WARN missing_definition RO:0002222 IAO:0000115 174 | WARN missing_definition RO:0002350 IAO:0000115 175 | WARN missing_definition RO:0002352 IAO:0000115 176 | WARN missing_definition RO:0002353 IAO:0000115 177 | WARN missing_definition RO:0002354 IAO:0000115 178 | WARN missing_definition RO:0002525 IAO:0000115 179 | WARN missing_definition SO:0000165 IAO:0000115 180 | WARN missing_definition SO:0000207 IAO:0000115 181 | WARN missing_definition SO:0000248 IAO:0000115 182 | WARN missing_definition SO:0000281 IAO:0000115 183 | WARN missing_definition SO:0000337 IAO:0000115 184 | WARN missing_definition SO:0000577 IAO:0000115 185 | WARN missing_definition SO:0000699 IAO:0000115 186 | WARN missing_definition SO:0000804 IAO:0000115 187 | WARN missing_definition SO:0001785 IAO:0000115 188 | WARN missing_definition SO:0005836 IAO:0000115 189 | WARN missing_definition SO:1000013 IAO:0000115 190 | WARN missing_definition SO:1000020 IAO:0000115 191 | WARN missing_definition UBERON:0000105 IAO:0000115 192 | WARN missing_definition UBERON:0001062 IAO:0000115 193 | WARN missing_definition UPHENO:0001001 IAO:0000115 194 | WARN missing_definition ZP:0000199 IAO:0000115 195 | WARN missing_definition ZP:0000386 IAO:0000115 196 | WARN missing_definition ZP:0000755 IAO:0000115 197 | WARN missing_definition ZP:0005531 IAO:0000115 198 | WARN missing_definition ZP:0005692 IAO:0000115 199 | WARN missing_definition http://purl.org/oban/association IAO:0000115 200 | WARN missing_definition http://purl.org/oban/association_has_object IAO:0000115 201 | WARN missing_definition http://purl.org/oban/association_has_predicate IAO:0000115 202 | WARN missing_definition http://purl.org/oban/association_has_subject IAO:0000115 203 | WARN missing_definition http://www.ncbi.nlm.nih.gov/gene/20423 IAO:0000115 204 | WARN missing_definition http://www.ncbi.nlm.nih.gov/gene/30269 IAO:0000115 205 | WARN missing_definition http://www.ncbi.nlm.nih.gov/gene/399483 IAO:0000115 206 | WARN missing_definition http://www.ncbi.nlm.nih.gov/gene/6469 IAO:0000115 207 | WARN invalid_xref GENO:0000010 oboInOwl:hasDbXref OBI:genetic population background information 208 | WARN invalid_xref GENO:0000014 oboInOwl:hasDbXref http://purl.obolibrary.org/obo/SO_0001023 ! allele 209 | WARN invalid_xref GENO:0000019 oboInOwl:hasDbXref perhaps not same as SO:sequence collection, as here we explicitly include features that can have an extent of zero (and SO:sequence collection is a collection of regions that have an extent of at least one) 210 | WARN invalid_xref GENO:0000033 oboInOwl:hasDbXref http://purl.obolibrary.org/obo/SO_0001506 ! variant_genome (definition of SO term here is too vague to know if has same meaning as GENO class here) 211 | WARN invalid_xref GENO:0000666 oboInOwl:hasDbXref SO:0000831 (gene member region) 212 | WARN invalid_xref GENO:0000870 oboInOwl:hasDbXref http://purl.obolibrary.org/obo/SO_0001260 ! sequence_collection 213 | INFO lowercase_definition BFO:0000004 IAO:0000115 b is an independent continuant = Def. b is a continuant which is such that there is no c and no t such that b s-depends_on c at t. (axiom label in BFO2 Reference: [017-002])@en 214 | INFO lowercase_definition BFO:0000015 IAO:0000115 p is a process = Def. p is an occurrent that has temporal proper parts and for some time t, p s-depends_on some material entity at t. (axiom label in BFO2 Reference: [083-003])@en 215 | INFO lowercase_definition BFO:0000016 IAO:0000600 b is a disposition means: b is a realizable entity & b’s bearer is some material entity & b is such that if it ceases to exist, then its bearer is physically changed, & b’s realization occurs when and because this bearer is in some special physical circumstances, & this realization occurs in virtue of the bearer’s physical make-up. (axiom label in BFO2 Reference: [062-002])@en 216 | INFO lowercase_definition BFO:0000019 IAO:0000600 a quality is a specifically dependent continuant that, in contrast to roles and dispositions, does not require any further process in order to be realized. (axiom label in BFO2 Reference: [055-001])@en 217 | INFO lowercase_definition BFO:0000020 IAO:0000115 b is a relational specifically dependent continuant = Def. b is a specifically dependent continuant and there are n > 1 independent continuants c1, … cn which are not spatial regions are such that for all 1 i < j n, ci and cj share no common parts, are such that for each 1 i n, b s-depends_on ci at every time t during the course of b’s existence (axiom label in BFO2 Reference: [131-004])@en 218 | INFO lowercase_definition BFO:0000020 IAO:0000115 b is a specifically dependent continuant = Def. b is a continuant & there is some independent continuant c which is not a spatial region and which is such that b s-depends_on c at every time t during the course of b’s existence. (axiom label in BFO2 Reference: [050-003])@en 219 | INFO lowercase_definition BFO:0000023 IAO:0000600 b is a role means: b is a realizable entity and b exists because there is some single bearer that is in some special physical, social, or institutional set of circumstances in which this bearer does not have to be and b is not such that, if it ceases to exist, then the physical make-up of the bearer is thereby changed. (axiom label in BFO2 Reference: [061-001])@en 220 | INFO lowercase_definition BFO:0000031 IAO:0000115 b is a generically dependent continuant = Def. b is a continuant that g-depends_on one or more other entities. (axiom label in BFO2 Reference: [074-001])@en 221 | INFO lowercase_definition GENO:0000019 IAO:0000115 a collection more than one sequence features (ie a collection of discontinuous sequence features) 222 | INFO lowercase_definition GENO:0000111 IAO:0000115 a population of homo sapiens grouped together in virtue of their sharing some commonality (either an inherent attribute or an externally assigned role) 223 | INFO lowercase_definition GENO:0000125 IAO:0000115 sequence attribute that can inhere only in a collection of more than one sequence features 224 | INFO lowercase_definition GENO:0000142 IAO:0000115 disposition inhering in a genetic locus variant that is realized in its inheritance by some offspring such that at least a partial variant-associated phenotype is apparent in heterozygotes 225 | INFO lowercase_definition GENO:0000359 IAO:0000115 shortcut relation used to link a phenotype directly to a genotype of an organism 226 | INFO lowercase_definition GENO:0000513 IAO:0000115 a sequence attribute of a chromosome or chromosomal region that has been abnormally duplicated or lost, as the result of a non-disjunction event or unbalanced translocation. 227 | INFO lowercase_definition GENO:0000602 IAO:0000115 an allelic state where a single allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 228 | INFO lowercase_definition GENO:0000603 IAO:0000115 an allelic state where more than one type of allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 229 | INFO lowercase_definition GENO:0000608 IAO:0000115 a relation to link a single locus complement to its zygosity. 230 | INFO lowercase_definition GENO:0000634 IAO:0000115 relation between an molecular agent and its molecular target 231 | INFO lowercase_definition GENO:0000883 IAO:0000115 a quality inhering in a feature in virtue of its presence only in the genome of gametes (germ cells). 232 | INFO lowercase_definition IAO:0000030 IAO:0000115 an information content entity is an entity that is generically dependent on some artifact and stands in relation of aboutness to some entity@en 233 | INFO lowercase_definition IAO:0000136 IAO:0000115 is_about is a (currently) primitive relation that relates an information artifact to an entity. 234 | INFO lowercase_definition OBI:0000181 IAO:0000115 a population is a collection of individuals from the same taxonomic class living, counted or sampled at a particular site or in a particular area 235 | INFO lowercase_definition RO:0000052 IAO:0000115 a relation between a specifically dependent continuant (the dependent) and an independent continuant (the bearer), in which the dependent specifically depends on the bearer for its existence 236 | INFO lowercase_definition RO:0000053 IAO:0000115 a relation between an independent continuant (the bearer) and a specifically dependent continuant (the dependent), in which the dependent specifically depends on the bearer for its existence 237 | INFO lowercase_definition RO:0000056 IAO:0000115 a relation between a continuant and a process, in which the continuant is somehow involved in the process 238 | INFO lowercase_definition RO:0000057 IAO:0000115 a relation between a process and a continuant, in which the continuant is somehow involved in the process 239 | INFO lowercase_definition RO:0000086 IAO:0000115 a relation between an independent continuant (the bearer) and a quality, in which the quality specifically depends on the bearer for its existence 240 | INFO lowercase_definition RO:0000091 IAO:0000115 a relation between an independent continuant (the bearer) and a disposition, in which the disposition specifically depends on the bearer for its existence 241 | INFO lowercase_definition RO:0002131 IAO:0000115 x overlaps y if and only if there exists some z such that x has part z and z part of y 242 | INFO lowercase_definition RO:0002162 IAO:0000115 x is in taxon y if an only if y is an organism, and the relationship between x and y is one of: part of (reflexive), developmentally preceded by, derives from, secreted by, expressed. 243 | INFO lowercase_definition RO:0002233 IAO:0000115 p has direct input c iff c is a participant in p, c is present at the start of p, and the state of c is modified during p. 244 | INFO lowercase_definition RO:0002234 IAO:0000115 p has output c iff c is a participant in p, c is present at the end of p, and c is not present at the beginning of p. 245 | INFO lowercase_definition RO:0002351 IAO:0000115 has member is a mereological relation between a collection and an item. 246 | INFO lowercase_definition RO:0002522 IAO:0000115 x bounds the sequence of y iff the upstream-most part of x is upstream of or coincident with the upstream-most part of y, and the downstream-most part of x is downstream of or coincident with the downstream-most part of y 247 | INFO lowercase_definition RO:0002524 IAO:0000115 x has subsequence y iff all of the sequence parts of x are sequence parts of y 248 | INFO lowercase_definition RO:0002526 IAO:0000115 x overlaps the sequence of x if and only if x has a subsequence z and z is a subsequence of y. 249 | INFO lowercase_definition RO:0002528 IAO:0000115 inverse of downstream of sequence of 250 | INFO lowercase_definition RO:0002529 IAO:0000115 x is downstream of the sequence of y iff either (1) x and y have sequence units, and all units of x are downstream of all units of y, or (2) x and y are sequence units, and x is either immediately downstream of y, or transitively downstream of y. 251 | INFO missing_superclass BFO:0000001 rdfs:subClassOf 252 | INFO missing_superclass GENO:0000009 rdfs:subClassOf 253 | INFO missing_superclass GENO:0000017 rdfs:subClassOf 254 | INFO missing_superclass GENO:0000030 rdfs:subClassOf 255 | INFO missing_superclass GENO:0000036 rdfs:subClassOf 256 | INFO missing_superclass GENO:0000047 rdfs:subClassOf 257 | INFO missing_superclass GENO:0000054 rdfs:subClassOf 258 | INFO missing_superclass GENO:0000057 rdfs:subClassOf 259 | INFO missing_superclass GENO:0000460 rdfs:subClassOf 260 | INFO missing_superclass GENO:0000494 rdfs:subClassOf 261 | INFO missing_superclass GENO:0000512 rdfs:subClassOf 262 | INFO missing_superclass GENO:0000666 rdfs:subClassOf 263 | INFO missing_superclass GENO:0000720 rdfs:subClassOf 264 | INFO missing_superclass GENO:0000721 rdfs:subClassOf 265 | INFO missing_superclass GENO:0000722 rdfs:subClassOf 266 | INFO missing_superclass GENO:0000777 rdfs:subClassOf 267 | INFO missing_superclass GENO:0000779 rdfs:subClassOf 268 | INFO missing_superclass GENO:0000823 rdfs:subClassOf 269 | INFO missing_superclass GENO:0000885 rdfs:subClassOf 270 | INFO missing_superclass SO:0000804 rdfs:subClassOf 271 | INFO missing_superclass SO:0000830 rdfs:subClassOf 272 | INFO missing_superclass SO:0001059 rdfs:subClassOf 273 | -------------------------------------------------------------------------------- /src/metadata/README.md: -------------------------------------------------------------------------------- 1 | Metadata files for the OBO Library 2 | 3 | * [geno.yml](geno.yml) 4 | * Determines how your purl.obolibrary.org/obo/geno/ redirects will be handled 5 | * Go here: https://github.com/OBOFoundry/purl.obolibrary.org/tree/master/config 6 | * Click [New File](https://github.com/OBOFoundry/purl.obolibrary.org/new/master/config) 7 | * Paste in the contents of [geno.yml](geno.yml) 8 | * Click "Commit new file" 9 | * IMPORTANT: remember to make a pull request 10 | * An OBO admin will merge your Pull Request *providing it meets the requirements of the OBO library* 11 | * [geno.md](geno.md) 12 | * Determines how your metadata is shown on OBO Library, OLS and AberOWL 13 | * Go here: https://github.com/OBOFoundry/OBOFoundry.github.io/tree/master/ontology 14 | * Click [New File](https://github.com/OBOFoundry/OBOFoundry.github.io/new/master/ontology) 15 | * Paste in the contents of [geno.md](geno.md) 16 | * Click "Commit new file" 17 | * IMPORTANT: remember to make a pull request 18 | * An OBO admin will merge your Pull Request *providing it meets the requirements of the OBO library* 19 | 20 | For more background see: 21 | 22 | * http://obofoundry.org/ 23 | * http://obofoundry.org/faq/how-do-i-edit-metadata.html -------------------------------------------------------------------------------- /src/metadata/geno.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ontology_detail 3 | id: geno 4 | title: GENO ontology 5 | jobs: 6 | - id: https://travis-ci.org/monarch-initiative/GENO-ontology 7 | type: travis-ci 8 | build: 9 | checkout: git clone https://github.com/monarch-initiative/GENO-ontology.git 10 | system: git 11 | path: "." 12 | contact: 13 | email: 14 | label: 15 | github: 16 | description: GENO ontology is an ontology... 17 | domain: stuff 18 | homepage: https://github.com/monarch-initiative/GENO-ontology 19 | products: 20 | - id: geno.owl 21 | name: "GENO ontology main release in OWL format" 22 | - id: geno.obo 23 | name: "GENO ontology additional release in OBO format" 24 | - id: geno.json 25 | name: "GENO ontology additional release in OBOJSon format" 26 | - id: geno/geno-base.owl 27 | name: "GENO ontology main release in OWL format" 28 | - id: geno/geno-base.obo 29 | name: "GENO ontology additional release in OBO format" 30 | - id: geno/geno-base.json 31 | name: "GENO ontology additional release in OBOJSon format" 32 | dependencies: 33 | - id: ro 34 | - id: iao 35 | - id: so 36 | 37 | tracker: https://github.com/monarch-initiative/GENO-ontology/issues 38 | license: 39 | url: http://creativecommons.org/licenses/by/3.0/ 40 | label: CC-BY 41 | activity_status: active 42 | --- 43 | 44 | Enter a detailed description of your ontology here. You can use arbitrary markdown and HTML. 45 | You can also embed images too. 46 | 47 | -------------------------------------------------------------------------------- /src/metadata/geno.yml: -------------------------------------------------------------------------------- 1 | # PURL configuration for http://purl.obolibrary.org/obo/geno 2 | 3 | idspace: GENO 4 | base_url: /obo/geno 5 | 6 | products: 7 | - geno.owl: https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/master/geno.owl 8 | - geno.obo: https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/master/geno.obo 9 | 10 | term_browser: ontobee 11 | example_terms: 12 | - geno_0000000 13 | 14 | entries: 15 | 16 | - prefix: /releases/ 17 | replacement: https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/v 18 | 19 | - prefix: /tracker/ 20 | replacement: https://github.com/monarch-initiative/GENO-ontology/issues 21 | 22 | - prefix: /about/ 23 | replacement: http://www.ontobee.org/ontology/GENO?iri=http://purl.obolibrary.org/obo/ 24 | 25 | ## generic fall-through, serve direct from github by default 26 | - prefix: / 27 | replacement: https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/master/ 28 | -------------------------------------------------------------------------------- /src/ontology/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM cmungall/osk 2 | 3 | CMD make test 4 | -------------------------------------------------------------------------------- /src/ontology/Makefile: -------------------------------------------------------------------------------- 1 | # ---------------------------------------- 2 | # Makefile for geno 3 | # Generated using ontology-development-kit 4 | # ODK Version: v1.4 5 | # ---------------------------------------- 6 | # IMPORTANT: DO NOT EDIT THIS FILE. To override default make goals, use geno.Makefile instead 7 | 8 | 9 | # ---------------------------------------- 10 | # More information: https://github.com/INCATools/ontology-development-kit/ 11 | 12 | 13 | # ---------------------------------------- 14 | # Standard Constants 15 | # ---------------------------------------- 16 | # these can be overwritten on the command line 17 | 18 | OBOBASE= http://purl.obolibrary.org/obo 19 | URIBASE= http://purl.obolibrary.org/obo 20 | ONT= geno 21 | ONTBASE= http://purl.obolibrary.org/obo/geno 22 | EDIT_FORMAT= owl 23 | SRC = $(ONT)-edit.$(EDIT_FORMAT) 24 | MAKE_FAST= $(MAKE) IMP=false PAT=false COMP=false MIR=false 25 | CATALOG= catalog-v001.xml 26 | ROBOT= robot --catalog $(CATALOG) 27 | 28 | OWLTOOLS= owltools --use-catalog 29 | RELEASEDIR= ../.. 30 | REPORTDIR= reports 31 | TEMPLATEDIR= ../templates 32 | TMPDIR= tmp 33 | MIRRORDIR= mirror 34 | IMPORTDIR= imports 35 | SUBSETDIR= subsets 36 | SCRIPTSDIR= ../scripts 37 | UPDATEREPODIR= target 38 | SPARQLDIR = ../sparql 39 | COMPONENTSDIR = components 40 | REPORT_FAIL_ON = ERROR 41 | REPORT_LABEL = -l true 42 | REPORT_PROFILE_OPTS = 43 | OBO_FORMAT_OPTIONS = 44 | SPARQL_VALIDATION_CHECKS = owldef-self-reference iri-range label-with-iri multiple-replaced_by 45 | SPARQL_EXPORTS = basic-report class-count-by-prefix edges xrefs obsoletes synonyms 46 | ODK_VERSION_MAKEFILE = v1.4 47 | 48 | TODAY ?= $(shell date +%Y-%m-%d) 49 | OBODATE ?= $(shell date +'%d:%m:%Y %H:%M') 50 | VERSION= $(TODAY) 51 | ANNOTATE_ONTOLOGY_VERSION = annotate -V $(ONTBASE)/releases/$(VERSION)/$@ --annotation owl:versionInfo $(VERSION) 52 | ANNOTATE_CONVERT_FILE = annotate --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) convert -f ofn --output $@.tmp.owl && mv $@.tmp.owl $@ 53 | OTHER_SRC = 54 | ONTOLOGYTERMS = $(TMPDIR)/ontologyterms.txt 55 | EDIT_PREPROCESSED = $(TMPDIR)/$(ONT)-preprocess.owl 56 | 57 | FORMATS = $(sort owl obo json owl) 58 | FORMATS_INCL_TSV = $(sort $(FORMATS) tsv) 59 | RELEASE_ARTEFACTS = $(sort $(ONT)-base $(ONT)-full ) 60 | 61 | # ---------------------------------------- 62 | # Top-level targets 63 | # ---------------------------------------- 64 | 65 | .PHONY: .FORCE 66 | 67 | .PHONY: all 68 | all: all_odk 69 | 70 | .PHONY: all_odk 71 | all_odk: odkversion test all_assets 72 | 73 | .PHONY: test 74 | test: odkversion reason_test sparql_test robot_reports $(REPORTDIR)/validate_profile_owl2dl_$(ONT).owl.txt 75 | echo "Finished running all tests successfully." 76 | 77 | .PHONY: release_diff 78 | release_diff: $(REPORTDIR)/release-diff.md 79 | 80 | .PHONY: reason_test 81 | reason_test: $(EDIT_PREPROCESSED) 82 | $(ROBOT) reason --input $< --reasoner ELK --equivalent-classes-allowed asserted-only \ 83 | --exclude-tautologies structural --output test.owl && rm test.owl 84 | 85 | .PHONY: odkversion 86 | odkversion: 87 | echo "ODK Makefile version: $(ODK_VERSION_MAKEFILE) (this is the version of the ODK with which this Makefile was generated, \ 88 | not the version of the ODK you are running)" &&\ 89 | echo "ROBOT version (ODK): " && $(ROBOT) --version 90 | 91 | $(TMPDIR) $(REPORTDIR) $(MIRRORDIR) $(IMPORTDIR) $(COMPONENTSDIR) $(SUBSETDIR): 92 | mkdir -p $@ 93 | 94 | # ---------------------------------------- 95 | # Release assets 96 | # ---------------------------------------- 97 | 98 | MAIN_PRODUCTS = $(sort $(foreach r,$(RELEASE_ARTEFACTS), $(r)) $(ONT)) 99 | MAIN_GZIPPED = 100 | MAIN_FILES = $(foreach n,$(MAIN_PRODUCTS), $(foreach f,$(FORMATS), $(n).$(f))) $(MAIN_GZIPPED) 101 | SRCMERGED = $(TMPDIR)/merged-$(SRC) 102 | 103 | .PHONY: all_main 104 | all_main: $(MAIN_FILES) 105 | 106 | # ---------------------------------------- 107 | # Import assets 108 | # ---------------------------------------- 109 | 110 | 111 | IMPORTS = ro omo obi 112 | 113 | IMPORT_ROOTS = $(patsubst %, $(IMPORTDIR)/%_import, $(IMPORTS)) 114 | IMPORT_OWL_FILES = $(foreach n,$(IMPORT_ROOTS), $(n).owl) 115 | IMPORT_FILES = $(IMPORT_OWL_FILES) 116 | 117 | 118 | .PHONY: all_imports 119 | all_imports: $(IMPORT_FILES) 120 | 121 | # ---------------------------------------- 122 | # Subset assets 123 | # ---------------------------------------- 124 | 125 | 126 | SUBSETS = 127 | 128 | SUBSET_ROOTS = $(patsubst %, $(SUBSETDIR)/%, $(SUBSETS)) 129 | SUBSET_FILES = $(foreach n,$(SUBSET_ROOTS), $(foreach f,$(FORMATS_INCL_TSV), $(n).$(f))) 130 | 131 | .PHONY: all_subsets 132 | all_subsets: $(SUBSET_FILES) 133 | 134 | # ---------------------------------------- 135 | # Mapping assets 136 | # ---------------------------------------- 137 | 138 | 139 | MAPPINGS = 140 | 141 | MAPPING_FILES = $(patsubst %, $(MAPPINGDIR)/%.sssom.tsv, $(MAPPINGS)) 142 | 143 | .PHONY: all_mappings 144 | all_mappings: $(MAPPING_FILES) 145 | 146 | 147 | # ---------------------------------------- 148 | # QC Reports & Utilities 149 | # ---------------------------------------- 150 | 151 | OBO_REPORT = geno-base.owl-obo-report $(SRC)-obo-report 152 | REPORTS = $(OBO_REPORT) 153 | REPORT_FILES = $(patsubst %, $(REPORTDIR)/%.tsv, $(REPORTS)) 154 | 155 | .PHONY: robot_reports 156 | robot_reports: $(REPORT_FILES) 157 | 158 | .PHONY: all_reports 159 | all_reports: custom_reports robot_reports 160 | 161 | # ---------------------------------------- 162 | # ROBOT OWL Profile checking 163 | # ---------------------------------------- 164 | 165 | # The merge step is necessary to avoid undeclared entity violations. 166 | $(REPORTDIR)/validate_profile_owl2dl_%.txt: % | $(REPORTDIR) $(TMPDIR) 167 | $(ROBOT) merge -i $< convert -f ofn -o $(TMPDIR)/validate.ofn 168 | $(ROBOT) validate-profile --profile DL -i $(TMPDIR)/validate.ofn -o $@ || { cat $@ && exit 1; } 169 | .PRECIOUS: $(REPORTDIR)/validate_profile_owl2dl_%.txt 170 | 171 | validate_profile_%: $(REPORTDIR)/validate_profile_owl2dl_%.txt 172 | echo "$* profile validation completed." 173 | 174 | # ---------------------------------------- 175 | # Sparql queries: Q/C 176 | # ---------------------------------------- 177 | 178 | # these live in the ../sparql directory, and have suffix -violation.sparql 179 | # adding the name here will make the violation check live. 180 | 181 | SPARQL_VALIDATION_QUERIES = $(foreach V,$(SPARQL_VALIDATION_CHECKS),$(SPARQLDIR)/$(V)-violation.sparql) 182 | 183 | sparql_test: $(EDIT_PREPROCESSED) catalog-v001.xml | $(REPORTDIR) 184 | ifneq ($(SPARQL_VALIDATION_QUERIES),) 185 | 186 | $(ROBOT) verify --catalog catalog-v001.xml -i $(EDIT_PREPROCESSED) --queries $(SPARQL_VALIDATION_QUERIES) -O $(REPORTDIR) 187 | endif 188 | 189 | # ---------------------------------------- 190 | # ROBOT report 191 | # ---------------------------------------- 192 | 193 | $(REPORTDIR)/$(SRC)-obo-report.tsv: $(SRCMERGED) | $(REPORTDIR) 194 | $(ROBOT) report -i $< $(REPORT_LABEL) $(REPORT_PROFILE_OPTS) --fail-on $(REPORT_FAIL_ON) --base-iri $(URIBASE)/GENO_ --base-iri $(URIBASE)/geno --print 5 -o $@ 195 | 196 | $(REPORTDIR)/%-obo-report.tsv: % | $(REPORTDIR) 197 | $(ROBOT) report -i $< $(REPORT_LABEL) $(REPORT_PROFILE_OPTS) --fail-on $(REPORT_FAIL_ON) --base-iri $(URIBASE)/GENO_ --base-iri $(URIBASE)/geno --print 5 -o $@ 198 | 199 | # ---------------------------------------- 200 | # Release assets 201 | # ---------------------------------------- 202 | 203 | ASSETS = \ 204 | $(IMPORT_FILES) \ 205 | $(MAIN_FILES) \ 206 | $(REPORT_FILES) \ 207 | $(SUBSET_FILES) \ 208 | $(MAPPING_FILES) 209 | 210 | RELEASE_ASSETS = \ 211 | $(MAIN_FILES) \ 212 | $(SUBSET_FILES) 213 | 214 | .PHONY: all_assets 215 | all_assets: $(ASSETS) 216 | 217 | .PHONY: show_assets 218 | show_assets: 219 | echo $(ASSETS) 220 | du -sh $(ASSETS) 221 | 222 | check_rdfxml_%: % 223 | @check-rdfxml $< 224 | 225 | .PHONY: check_rdfxml_assets 226 | check_rdfxml_assets: $(foreach product,$(MAIN_PRODUCTS),check_rdfxml_$(product).owl) 227 | 228 | # ---------------------------------------- 229 | # Release Management 230 | # ---------------------------------------- 231 | 232 | CLEANFILES=$(MAIN_FILES) $(SRCMERGED) $(EDIT_PREPROCESSED) 233 | # This should be executed by the release manager whenever time comes to make a release. 234 | # It will ensure that all assets/files are fresh, and will copy to release folder 235 | 236 | .PHONY: prepare_release 237 | prepare_release: all_odk 238 | rsync -R $(RELEASE_ASSETS) $(RELEASEDIR) &&\ 239 | rm -f $(CLEANFILES) &&\ 240 | echo "Release files are now in $(RELEASEDIR) - now you should commit, push and make a release \ 241 | on your git hosting site such as GitHub or GitLab" 242 | 243 | .PHONY: prepare_initial_release 244 | prepare_initial_release: all_assets 245 | rsync -R $(RELEASE_ASSETS) $(RELEASEDIR) &&\ 246 | rm -f $(patsubst %, ./%, $(CLEANFILES)) &&\ 247 | cd $(RELEASEDIR) && git add $(RELEASE_ASSETS) 248 | 249 | .PHONY: prepare_release_fast 250 | prepare_release_fast: 251 | $(MAKE) prepare_release IMP=false PAT=false MIR=false COMP=false 252 | 253 | CURRENT_RELEASE=$(ONTBASE).owl 254 | 255 | $(TMPDIR)/current-release.owl: 256 | wget $(CURRENT_RELEASE) -O $@ 257 | 258 | $(REPORTDIR)/release-diff.md: $(ONT).owl $(TMPDIR)/current-release.owl 259 | $(ROBOT) diff --labels true --left $(TMPDIR)/current-release.owl --right $(ONT).owl -f markdown -o $@ 260 | 261 | # ------------------------ 262 | # Imports: Seeding system 263 | # ------------------------ 264 | 265 | # seed.txt contains all referenced entities 266 | IMPORTSEED=$(TMPDIR)/seed.txt 267 | PRESEED=$(TMPDIR)/pre_seed.txt 268 | 269 | $(SRCMERGED): $(EDIT_PREPROCESSED) $(OTHER_SRC) 270 | $(ROBOT) remove --input $< --select imports --trim false \ 271 | merge $(patsubst %, -i %, $(OTHER_SRC)) -o $@ 272 | 273 | $(EDIT_PREPROCESSED): $(SRC) 274 | $(ROBOT) convert --input $< --format ofn --output $@ 275 | 276 | $(PRESEED): $(SRCMERGED) 277 | $(ROBOT) query -f csv -i $< --query ../sparql/terms.sparql $@.tmp &&\ 278 | cat $@.tmp | sort | uniq > $@ 279 | 280 | 281 | 282 | ALLSEED = $(PRESEED) \ 283 | 284 | 285 | $(IMPORTSEED): $(ALLSEED) | $(TMPDIR) 286 | if [ $(IMP) = true ]; then cat $(ALLSEED) | sort | uniq > $@; fi 287 | 288 | ANNOTATION_PROPERTIES=rdfs:label IAO:0000115 289 | 290 | # ---------------------------------------- 291 | # Import modules 292 | # ---------------------------------------- 293 | # Most ontologies are modularly constructed using portions of other ontologies 294 | # These live in the imports/ folder 295 | # This pattern uses ROBOT to generate an import module 296 | 297 | # Should be able to drop this if robot can just take a big messy list of terms as input. 298 | $(IMPORTDIR)/%_terms_combined.txt: $(IMPORTSEED) $(IMPORTDIR)/%_terms.txt 299 | if [ $(IMP) = true ]; then cat $^ | grep -v ^# | sort | uniq > $@; fi 300 | 301 | 302 | 303 | 304 | $(IMPORTDIR)/%_import.owl: $(MIRRORDIR)/%.owl $(IMPORTDIR)/%_terms_combined.txt 305 | if [ $(IMP) = true ]; then $(ROBOT) query -i $< --update ../sparql/preprocess-module.ru \ 306 | extract -T $(IMPORTDIR)/$*_terms_combined.txt --force true --copy-ontology-annotations true --individuals include --method BOT \ 307 | query --update ../sparql/inject-subset-declaration.ru --update ../sparql/inject-synonymtype-declaration.ru --update ../sparql/postprocess-module.ru \ 308 | $(ANNOTATE_CONVERT_FILE); fi 309 | 310 | .PRECIOUS: $(IMPORTDIR)/%_import.owl 311 | 312 | ## Module for ontology: omo 313 | 314 | $(IMPORTDIR)/omo_import.owl: $(MIRRORDIR)/omo.owl $(IMPORTDIR)/omo_terms_combined.txt 315 | if [ $(IMP) = true ]; then $(ROBOT) merge -i $< query --update ../sparql/preprocess-module.ru --update ../sparql/inject-subset-declaration.ru --update ../sparql/inject-synonymtype-declaration.ru --update ../sparql/postprocess-module.ru \ 316 | $(ANNOTATE_CONVERT_FILE); fi 317 | 318 | 319 | .PHONY: refresh-imports 320 | refresh-imports: 321 | $(MAKE) IMP=true MIR=true PAT=false IMP_LARGE=true all_imports -B 322 | 323 | .PHONY: no-mirror-refresh-imports 324 | no-mirror-refresh-imports: 325 | $(MAKE) IMP=true MIR=false PAT=false IMP_LARGE=true all_imports -B 326 | 327 | .PHONY: refresh-imports-excluding-large 328 | refresh-imports-excluding-large: 329 | $(MAKE) IMP=true MIR=true PAT=false IMP_LARGE=false all_imports -B 330 | 331 | .PHONY: refresh-% 332 | refresh-%: 333 | $(MAKE) IMP=true IMP_LARGE=true MIR=true PAT=false $(IMPORTDIR)/$*_import.owl -B 334 | 335 | .PHONY: no-mirror-refresh-% 336 | no-mirror-refresh-%: 337 | $(MAKE) IMP=true IMP_LARGE=true MIR=false PAT=false $(IMPORTDIR)/$*_import.owl -B 338 | 339 | # ---------------------------------------- 340 | # Mirroring upstream ontologies 341 | # ---------------------------------------- 342 | 343 | IMP=true # Global parameter to bypass import generation 344 | MIR=true # Global parameter to bypass mirror generation 345 | IMP_LARGE=true # Global parameter to bypass handling of large imports 346 | 347 | 348 | 349 | ## ONTOLOGY: ro 350 | .PHONY: mirror-ro 351 | .PRECIOUS: $(MIRRORDIR)/ro.owl 352 | mirror-ro: | $(TMPDIR) 353 | if [ $(MIR) = true ] && [ $(IMP) = true ]; then curl -L $(OBOBASE)/ro.owl --create-dirs -o $(MIRRORDIR)/ro.owl --retry 4 --max-time 200 &&\ 354 | $(ROBOT) convert -i $(MIRRORDIR)/ro.owl -o $@.tmp.owl &&\ 355 | mv $@.tmp.owl $(TMPDIR)/$@.owl; fi 356 | 357 | 358 | ## ONTOLOGY: omo 359 | .PHONY: mirror-omo 360 | .PRECIOUS: $(MIRRORDIR)/omo.owl 361 | mirror-omo: | $(TMPDIR) 362 | if [ $(MIR) = true ] && [ $(IMP) = true ]; then curl -L $(OBOBASE)/omo.owl --create-dirs -o $(MIRRORDIR)/omo.owl --retry 4 --max-time 200 &&\ 363 | $(ROBOT) convert -i $(MIRRORDIR)/omo.owl -o $@.tmp.owl &&\ 364 | mv $@.tmp.owl $(TMPDIR)/$@.owl; fi 365 | 366 | 367 | ## ONTOLOGY: obi 368 | .PHONY: mirror-obi 369 | .PRECIOUS: $(MIRRORDIR)/obi.owl 370 | mirror-obi: | $(TMPDIR) 371 | if [ $(MIR) = true ] && [ $(IMP) = true ]; then curl -L $(OBOBASE)/obi.owl --create-dirs -o $(MIRRORDIR)/obi.owl --retry 4 --max-time 200 &&\ 372 | $(ROBOT) convert -i $(MIRRORDIR)/obi.owl -o $@.tmp.owl &&\ 373 | mv $@.tmp.owl $(TMPDIR)/$@.owl; fi 374 | 375 | 376 | $(MIRRORDIR)/%.owl: mirror-% | $(MIRRORDIR) 377 | if [ $(IMP) = true ] && [ $(MIR) = true ] && [ -f $(TMPDIR)/mirror-$*.owl ]; then if cmp -s $(TMPDIR)/mirror-$*.owl $@ ; then echo "Mirror identical, ignoring."; else echo "Mirrors different, updating." &&\ 378 | cp $(TMPDIR)/mirror-$*.owl $@; fi; fi 379 | 380 | 381 | 382 | 383 | # ---------------------------------------- 384 | # Subsets 385 | # ---------------------------------------- 386 | $(SUBSETDIR)/%.tsv: $(SUBSETDIR)/%.owl 387 | $(ROBOT) query -f tsv -i $< -s ../sparql/labels.sparql $@ 388 | .PRECIOUS: $(SUBSETDIR)/%.tsv 389 | 390 | $(SUBSETDIR)/%.owl: $(ONT).owl | $(SUBSETDIR) 391 | $(OWLTOOLS) $< --extract-ontology-subset --fill-gaps --subset $* -o $@.tmp.owl && mv $@.tmp.owl $@ &&\ 392 | $(ROBOT) annotate --input $@ --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) -o $@.tmp.owl && mv $@.tmp.owl $@ 393 | .PRECIOUS: $(SUBSETDIR)/%.owl 394 | 395 | 396 | $(SUBSETDIR)/%.obo: $(SUBSETDIR)/%.owl 397 | $(ROBOT) convert --input $< --check false -f obo $(OBO_FORMAT_OPTIONS) -o $@.tmp.obo && grep -v ^owl-axioms $@.tmp.obo > $@ && rm $@.tmp.obo 398 | 399 | $(SUBSETDIR)/%.json: $(SUBSETDIR)/%.owl 400 | $(ROBOT) convert --input $< --check false -f json -o $@.tmp.json &&\ 401 | mv $@.tmp.json $@ 402 | 403 | 404 | # --------------------------------------------- 405 | # Sparql queries: Table exports / Query Reports 406 | # --------------------------------------------- 407 | 408 | SPARQL_EXPORTS_ARGS = $(foreach V,$(SPARQL_EXPORTS),-s $(SPARQLDIR)/$(V).sparql $(REPORTDIR)/$(V).tsv) 409 | # This combines all into one single command 410 | 411 | .PHONY: custom_reports 412 | custom_reports: $(EDIT_PREPROCESSED) | $(REPORTDIR) 413 | ifneq ($(SPARQL_EXPORTS_ARGS),) 414 | $(ROBOT) query -f tsv --use-graphs true -i $< $(SPARQL_EXPORTS_ARGS) 415 | endif 416 | 417 | # ---------------------------------------- 418 | # Release artefacts: export formats 419 | # ---------------------------------------- 420 | 421 | 422 | $(ONT)-base.obo: $(ONT)-base.owl 423 | $(ROBOT) convert --input $< --check false -f obo $(OBO_FORMAT_OPTIONS) -o $@.tmp.obo && grep -v ^owl-axioms $@.tmp.obo > $@ && rm $@.tmp.obo 424 | $(ONT)-base.json: $(ONT)-base.owl 425 | $(ROBOT) annotate --input $< --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) \ 426 | convert --check false -f json -o $@.tmp.json &&\ 427 | mv $@.tmp.json $@ 428 | $(ONT)-full.obo: $(ONT)-full.owl 429 | $(ROBOT) convert --input $< --check false -f obo $(OBO_FORMAT_OPTIONS) -o $@.tmp.obo && grep -v ^owl-axioms $@.tmp.obo > $@ && rm $@.tmp.obo 430 | $(ONT)-full.json: $(ONT)-full.owl 431 | $(ROBOT) annotate --input $< --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) \ 432 | convert --check false -f json -o $@.tmp.json &&\ 433 | mv $@.tmp.json $@ 434 | # ---------------------------------------- 435 | # Release artefacts: main release artefacts 436 | # ---------------------------------------- 437 | 438 | $(ONT).owl: $(ONT)-full.owl 439 | $(ROBOT) annotate --input $< --ontology-iri $(URIBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) \ 440 | convert -o $@.tmp.owl && mv $@.tmp.owl $@ 441 | 442 | $(ONT).obo: $(ONT).owl 443 | $(ROBOT) convert --input $< --check false -f obo $(OBO_FORMAT_OPTIONS) -o $@.tmp.obo && grep -v ^owl-axioms $@.tmp.obo > $@ && rm $@.tmp.obo 444 | $(ONT).json: $(ONT).owl 445 | $(ROBOT) annotate --input $< --ontology-iri $(URIBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) \ 446 | convert --check false -f json -o $@.tmp.json &&\ 447 | mv $@.tmp.json $@ 448 | # ----------------------------------------------------- 449 | # Release artefacts: variants (base, full, simple, etc) 450 | # ----------------------------------------------------- 451 | SHARED_ROBOT_COMMANDS = 452 | 453 | $(ONTOLOGYTERMS): $(SRCMERGED) 454 | $(ROBOT) query -f csv -i $< --query ../sparql/geno_terms.sparql $@ 455 | 456 | # ROBOT pipeline that merges imports, including components. 457 | ROBOT_RELEASE_IMPORT_MODE=$(ROBOT) merge --input $< 458 | 459 | # ROBOT pipeline that removes imports, then merges components. This is for release artefacts that start from "base" 460 | ROBOT_RELEASE_IMPORT_MODE_BASE=$(ROBOT) remove --input $< --select imports --trim false merge $(patsubst %, -i %, $(OTHER_SRC)) 461 | 462 | # base: All the axioms as they are editted by the editors, excluding reasoning 463 | $(ONT)-base.owl: $(EDIT_PREPROCESSED) $(OTHER_SRC) 464 | $(ROBOT_RELEASE_IMPORT_MODE_BASE) \ 465 | $(SHARED_ROBOT_COMMANDS) \ 466 | annotate --link-annotation http://purl.org/dc/elements/1.1/type http://purl.obolibrary.org/obo/IAO_8000001 \ 467 | --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) \ 468 | --output $@.tmp.owl && mv $@.tmp.owl $@ 469 | # Full: The full artefacts with imports merged, reasoned. 470 | $(ONT)-full.owl: $(EDIT_PREPROCESSED) $(OTHER_SRC) $(IMPORT_FILES) 471 | $(ROBOT_RELEASE_IMPORT_MODE) \ 472 | reason --reasoner ELK --equivalent-classes-allowed asserted-only --exclude-tautologies structural \ 473 | relax \ 474 | reduce -r ELK \ 475 | $(SHARED_ROBOT_COMMANDS) annotate --ontology-iri $(ONTBASE)/$@ $(ANNOTATE_ONTOLOGY_VERSION) --output $@.tmp.owl && mv $@.tmp.owl $@ 476 | # ---------------------------------------- 477 | # Debugging Tools 478 | # ---------------------------------------- 479 | 480 | explain_unsat: $(EDIT_PREPROCESSED) 481 | $(ROBOT) explain -i $< -M unsatisfiability --unsatisfiable random:10 --explanation $(TMPDIR)/$@.md 482 | 483 | 484 | 485 | RELEASE_ASSETS_AFTER_RELEASE=$(foreach n,$(RELEASE_ASSETS), ../../$(n)) 486 | GHVERSION=v$(VERSION) 487 | 488 | .PHONY: public_release 489 | public_release: 490 | @test $(GHVERSION) 491 | ls -alt $(RELEASE_ASSETS_AFTER_RELEASE) 492 | gh release create $(GHVERSION) --title "$(VERSION) Release" --draft $(RELEASE_ASSETS_AFTER_RELEASE) --generate-notes 493 | 494 | # ---------------------------------------- 495 | # General Validation 496 | # ---------------------------------------- 497 | TSV= 498 | ALL_TSV_FILES= 499 | 500 | validate-tsv: $(TSV) | $(TMPDIR) 501 | for FILE in $< ; do \ 502 | tsvalid $$FILE > $(TMPDIR)/validate.txt; \ 503 | if [ -s $(TMPDIR)/validate.txt ]; then cat $(TMPDIR)/validate.txt && exit 1; fi ; \ 504 | done 505 | 506 | validate-all-tsv: $(ALL_TSV_FILES) 507 | $(MAKE) validate-tsv TSV="$^" 508 | 509 | # ---------------------------------------- 510 | # Editors Utilities 511 | # ---------------------------------------- 512 | 513 | 514 | 515 | .PHONY: normalize_src 516 | normalize_src: $(SRC) 517 | $(ROBOT) convert -i $< -f ofn -o $(TMPDIR)/normalise && mv $(TMPDIR)/normalise $< 518 | 519 | .PHONY: validate_idranges 520 | validate_idranges: 521 | amm $(SCRIPTSDIR)/validate_id_ranges.sc geno-idranges.owl 522 | 523 | .PHONY: update_repo 524 | update_repo: 525 | sh $(SCRIPTSDIR)/update_repo.sh 526 | 527 | 528 | 529 | # Note to future generations: prepending ./ is a safety measure to ensure that 530 | # the environment does not malicously set `CLEANFILES` to `\`. 531 | .PHONY: clean 532 | clean: 533 | [ -n "$(MIRRORDIR)" ] && [ $(MIRRORDIR) != "." ] && [ $(MIRRORDIR) != "/" ] && [ $(MIRRORDIR) != ".." ] && [ -d ./$(MIRRORDIR) ] && rm -rf ./$(MIRRORDIR)/* 534 | [ -n "$(TMPDIR)" ] && [ $(TMPDIR) != "." ] && [ $(TMPDIR) != "/" ] && [ $(TMPDIR) != ".." ] && [ -d ./$(TMPDIR) ] && rm -rf ./$(TMPDIR)/* 535 | [ -n "$(UPDATEREPODIR)" ] && [ $(UPDATEREPODIR) != "." ] && [ $(UPDATEREPODIR) != "/" ] && [ $(UPDATEREPODIR) != ".." ] && [ -d ./$(UPDATEREPODIR) ] && rm -rf ./$(UPDATEREPODIR)/* 536 | rm -f $(CLEANFILES) 537 | 538 | .PHONY: help 539 | help: 540 | @echo "$$data" 541 | 542 | define data 543 | Usage: [IMAGE=(odklite|odkfull)] [ODK_DEBUG=yes] sh run.sh make [(IMP|MIR|IMP_LARGE|PAT)=(false|true)] command 544 | 545 | ---------------------------------------- 546 | Command reference 547 | ---------------------------------------- 548 | 549 | Core commands: 550 | * prepare_release: Run the entire release pipeline. Use make IMP=false prepare_release to avoid rerunning the imports 551 | * prepare_release_fast: Run the entire release pipeline without refreshing imports, recreating components or recompiling patterns. 552 | * update_repo: Update the ODK repository setup using the config file geno-odk.yaml 553 | * test: Running all validation tests 554 | * odkversion: Show the current version of the ODK Makefile and ROBOT. 555 | * clean: Delete all temporary files 556 | * help: Print ODK Usage information 557 | * public_release: Uploads the release file to a release management system, such as GitHub releases. Must be configured. 558 | 559 | 560 | Imports management: 561 | * refresh-imports: Refresh all imports and mirrors. 562 | * recreate-components: Recreate all components. 563 | * no-mirror-refresh-imports: Refresh all imports without downloading mirrors. 564 | * refresh-imports-excluding-large: Refresh all imports and mirrors, but skipping the ones labelled as 'is_large'. 565 | * refresh-%: Refresh a single import, i.e. refresh-go will refresh 'imports/go_import.owl'. 566 | * no-mirror-refresh-%: Refresh a single import without updating the mirror, i.e. refresh-go will refresh 'imports/go_import.owl'. 567 | * mirror-%: Refresh a single mirror. 568 | 569 | Editor utilities: 570 | * validate_idranges: Make sure your ID ranges file is formatted correctly 571 | * normalize_src: Load and safe your geno-edit file after you to make sure its serialised correctly 572 | * explain_unsat: If you have unsatisfiable classes, this command will create a markdown file (tmp/explain_unsat.md) which will explain all your unsatisfiable classes 573 | * validate-all-tsv: Check all your tsv files for possible problems in syntax. Use ALL_TSV_FILES variable to list files 574 | * validate-tsv: Check a tsv file for syntactic problems with tsvalid. Use TSV variable to pass filepath, e.g. make TSV=../my.tsv validate-tsv. 575 | * release_diff: Create a diff between the current release and the new release 576 | 577 | Additional build commands (advanced users) 578 | * all: Run the entire pipeline (like prepare_release), but without copying the release files to the release directory. 579 | * all_subsets: Build all subsets 580 | * custom_reports: Generate all custom sparql reports you have configured in your geno-odk.yaml file. 581 | * all_assets: Build all assets 582 | * show_assets: Print a list of all assets that would be build by the release pipeline 583 | * all_mappings: Update all SSSOM mapping sets 584 | 585 | Additional QC commands (advanced users) 586 | * robot_reports: Run all configured ROBOT reports 587 | * validate_profile_%: Run an OWL2 DL profile validation check, for example validate_profile_geno-edit.owl. 588 | * reason_test: Run a basic reasoning test 589 | 590 | Examples: 591 | * sh run.sh make IMP=false prepare_release 592 | * sh run.sh make update_repo 593 | * sh run.sh make test 594 | 595 | Tricks: 596 | * Add -B to the end of your command to force re-running it even if nothing has changed 597 | * Use the IMAGE parameter to the run.sh script to use a different image like odklite 598 | * Use ODK_DEBUG=yes sh run.sh make ... to print information about timing and debugging 599 | 600 | endef 601 | export data 602 | 603 | include geno.Makefile -------------------------------------------------------------------------------- /src/ontology/README-editors.md: -------------------------------------------------------------------------------- 1 | These notes are for the EDITORS of geno 2 | 3 | This project was created using the [ontology development kit](https://github.com/INCATools/ontology-development-kit). See the site for details. 4 | 5 | For more details on ontology management, please see the [OBO tutorial](https://github.com/jamesaoverton/obo-tutorial) or the [Gene Ontology Editors Tutorial](https://go-protege-tutorial.readthedocs.io/en/latest/) 6 | 7 | You may also want to read the [GO ontology editors guide](http://go-ontology.readthedocs.org/) 8 | 9 | ## Requirements 10 | 11 | 1. Protege (for editing) 12 | 2. A git client (we assume command line git) 13 | 3. [docker](https://www.docker.com/get-docker) (for managing releases) 14 | 15 | ## Editors Version 16 | 17 | Make sure you have an ID range in the [idranges file](geno-idranges.owl) 18 | 19 | If you do not have one, get one from the maintainer of this repo. 20 | 21 | The editors version is [geno-edit.owl](geno-edit.owl) 22 | 23 | ** DO NOT EDIT geno.obo OR geno.owl in the top level directory ** 24 | 25 | [../../geno.owl](../../geno.owl) is the release version 26 | 27 | To edit, open the file in Protege. First make sure you have the repository cloned, see [the GitHub project](https://github.com/monarch-initiative/GENO-ontology) for details. 28 | 29 | You should discuss the git workflow you should use with the maintainer 30 | of this repo, who should document it here. If you are the maintainer, 31 | you can contact the odk developers for assistance. You may want to 32 | copy the flow an existing project, for example GO: [Gene Ontology 33 | Editors Tutorial](https://go-protege-tutorial.readthedocs.io/en/latest/). 34 | 35 | In general, it is bad practice to commit changes to master. It is 36 | better to make changes on a branch, and make Pull Requests. 37 | 38 | ## ID Ranges 39 | 40 | These are stored in the file 41 | 42 | * [geno-idranges.owl](geno-idranges.owl) 43 | 44 | ** ONLY USE IDs WITHIN YOUR RANGE!! ** 45 | 46 | If you have only just set up this repository, modify the idranges file 47 | and add yourself or other editors. Note Protege does not read the file 48 | - it is up to you to ensure correct Protege configuration. 49 | 50 | 51 | ### Setting ID ranges in Protege 52 | 53 | We aim to put this up on the technical docs for OBO on http://obofoundry.org/ 54 | 55 | For now, consult the [GO Tutorial on configuring Protege](http://go-protege-tutorial.readthedocs.io/en/latest/Entities.html#new-entities) 56 | 57 | ## Imports 58 | 59 | All import modules are in the [imports/](imports/) folder. 60 | 61 | There are two ways to include new classes in an import module 62 | 63 | 1. Reference an external ontology class in the edit ontology. In Protege: "add new entity", then paste in the PURL 64 | 2. Add to the imports/geno_terms.txt file 65 | 66 | After doing this, you can run 67 | 68 | `./run.sh make all_imports` 69 | 70 | to regenerate imports. 71 | 72 | Note: the geno_terms.txt file may include 'starter' classes seeded from 73 | the ontology starter kit. It is safe to remove these. 74 | 75 | ## Design patterns 76 | 77 | You can automate (class) term generation from design patterns by placing DOSDP 78 | yaml file and tsv files under src/patterns. Any pair of files in this 79 | folder that share a name (apart from the extension) are assumed to be 80 | a DOSDP design pattern and a corresponding tsv specifying terms to 81 | add. 82 | 83 | Design patterns can be used to maintain and generate complete terms 84 | (names, definitions, synonyms etc) or to generate logical axioms 85 | only, with other axioms being maintained in editors file. This can be 86 | specified on a per-term basis in the TSV file. 87 | 88 | Design pattern docs are checked for validity via Travis, but can be 89 | tested locally using 90 | 91 | `./run.sh make patterns` 92 | 93 | In addition to running standard tests, this command generates an owl 94 | file (`src/patterns/pattern.owl`), which demonstrates the relationships 95 | between design patterns. 96 | 97 | (At the time of writing, the following import statements need to be 98 | added to `src/patterns/pattern.owl` for all imports generated in 99 | `src/imports/*_import.owl`. This will be automated in a future release.') 100 | 101 | To compile design patterns to terms run: 102 | 103 | `./run.sh make ../patterns/definitions.owl` 104 | 105 | This generates a file (`src/patterns/definitions.owl`). You then need 106 | to add an import statement to the editor's file to import the 107 | definitions file. 108 | 109 | 110 | ## Release Manager notes 111 | 112 | You should only attempt to make a release AFTER the edit version is 113 | committed and pushed, AND the travis build passes. 114 | 115 | These instructions assume you have 116 | [docker](https://www.docker.com/get-docker). This folder has a script 117 | [run.sh](run.sh) that wraps docker commands. 118 | 119 | to release: 120 | 121 | first type 122 | 123 | git branch 124 | 125 | to make sure you are on master 126 | 127 | cd src/ontology 128 | ./build.sh 129 | 130 | If this looks good type: 131 | 132 | ./prepare_release.sh 133 | 134 | This generates derived files such as geno.owl and geno.obo and places 135 | them in the top level (../..). 136 | 137 | Note that the versionIRI value automatically will be added, and will 138 | end with YYYY-MM-DD, as per OBO guidelines. 139 | 140 | Commit and push these files. 141 | 142 | git commit -a 143 | 144 | And type a brief description of the release in the editor window 145 | 146 | Finally type: 147 | 148 | git push origin master 149 | 150 | IMMEDIATELY AFTERWARDS (do *not* make further modifications) go here: 151 | 152 | * https://github.com/monarch-initiative/GENO-ontology/releases 153 | * https://github.com/monarch-initiative/GENO-ontology/releases/new 154 | 155 | __IMPORTANT__: The value of the "Tag version" field MUST be 156 | 157 | vYYYY-MM-DD 158 | 159 | The initial lowercase "v" is REQUIRED. The YYYY-MM-DD *must* match 160 | what is in the `owl:versionIRI` of the derived geno.owl (`data-version` in 161 | geno.obo). This will be today's date. 162 | 163 | This cannot be changed after the fact, be sure to get this right! 164 | 165 | Release title should be YYYY-MM-DD, optionally followed by a title (e.g. "january release") 166 | 167 | You can also add release notes (this can also be done after the fact). These are in markdown format. 168 | In future we will have better tools for auto-generating release notes. 169 | 170 | Then click "publish release" 171 | 172 | __IMPORTANT__: NO MORE THAN ONE RELEASE PER DAY. 173 | 174 | The PURLs are already configured to pull from github. This means that 175 | BOTH ontology purls and versioned ontology purls will resolve to the 176 | correct ontologies. Try it! 177 | 178 | * http://purl.obolibrary.org/obo/geno.owl <-- current ontology PURL 179 | * http://purl.obolibrary.org/obo/geno/releases/YYYY-MM-DD.owl <-- change to the release you just made 180 | 181 | For questions on this contact Chris Mungall or email obo-admin AT obofoundry.org 182 | 183 | # Travis Continuous Integration System 184 | 185 | Check the build status here: [![Build Status](https://travis-ci.org/monarch-initiative/GENO-ontology.svg?branch=master)](https://travis-ci.org/monarch-initiative/GENO-ontology) 186 | 187 | Note: if you have only just created this project you will need to authorize travis for this repo. 188 | 189 | 1. Go to [https://travis-ci.org/profile/monarch-initiative](https://travis-ci.org/profile/monarch-initiative) 190 | 2. click the "Sync account" button 191 | 3. Click the tick symbol next to GENO-ontology 192 | 193 | Travis builds should now be activated -------------------------------------------------------------------------------- /src/ontology/archive/catalog-v001.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/ontology/archive/geno-developer-defs.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | developer annotations 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Used to persist a record of annotations that are no longer relevant for a given term. 38 | obsolete annotation 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | Used to capture specific issues for ontology developers to address or resolve. 48 | open developer issue 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | Used to organize developer notes related to a specifc effort to refactor the ontology. 58 | ontology refactor note 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | Used to explain ratoinale for including a given term in an ontology - why /when it is needed, how it is used, how it might be differnted from similar terms, etc. 68 | ontology use case note 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | Used to organize feedback for a specific related ontology (here, the Sequence Ontology). 78 | SO feedback 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | Used to record alternate labels for a given term in the GENO ontology. 88 | GENO_alternate_label 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /src/ontology/archive/geno-se.owl: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | GENO ontology layer containing annotation properties / axioms related to Shahim's urigen plugin and refactor tools. 12 | http://urigen.vivo-isf.org 13 | http://purl.obolibrary.org/obo/geno.owl 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ontology-iri 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | server-url 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /src/ontology/archive/geno_examples.owl: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 1-29-16: Created an exemplar effective genotype containing an intrinsic sex-qualified genotype component, and an extrinsic genotype component: 12 | 13 | shha<tbx392>/shha<tbx392> [AB](male); cdkn1ca<MO3-cdkn1ca (n.s.)> 14 | 15 | Five phenotype annotations are asserted at different levels of this genotype: 16 | 1. abnormal(ly) absent adaxial cell -> shha<tbx392>/shha<tbx392>[AB](male);cdkn1ca<MO3-cdkn1ca (n.s.)> 17 | 2. abnormal(ly) disrupted diencephalon development -> shha<tbx392>/shha<tbx392>[AB]male 18 | 3. abnormal(ly) increased occurrence neutrophil migration -> shha<tbx392>/shha<tbx392>[AB] 19 | 4. abnormal(ly) malformed endocardium cell -> tbx392 20 | 5. abnormal(ly) absent dorso-rostral cluster -> cdkn1ca<MO3-cdkn1ca (n.s.)> 21 | 22 | A second effective genotype was also created, whose intrinsic component is sex-agnostic and unlike the sex-qualified effective genotype, will inherit all phenotypes asserted on its component sex-agnostic genotype and its parts): 23 | 24 | shha<tbx392>/shha<tbx392>[AB]; cdkn1ca<MO3-cdkn1ca (n.s.)> 25 | 26 | ---------- 27 | 28 | Recall that we don't want to propagate phenotypes up from sex-agnostic genotypes (or their parts) up to sex-qualified ones (or their parent effective genotype) For example, from shha<tbx392>/shha<tbx392>[AB] to shha<tbx392>/shha<tbx392>[AB]male. This is because it may not be the case that a phenotype assessed without consideration to sex will apply on a sex-specific background (i.e. it may be a sex-specific phenotype). 29 | 30 | So, the sex-qualified effective genotype shha<tbx392>/shha<tbx392>[AB](male);cdkn1ca<MO3-cdkn1ca (n.s.)> will NOT inherit phenotypes asserted on its component sex-agnostic genotype and its parts). It therefore inherits only two phenotypes: 1 from its component sex-qualified intrinsic genotype, and 1 from its component extrinsic genotype. It does not inherit phenotypes asserted on its component sex-agnostic intrinsic genotype, or the parts of this genotype. 31 | 32 | By contrast, the sex-agnostic effective genotype shha<tbx392>/shha<tbx392>[AB];cdkn1ca<MO3-cdkn1ca (n.s.)> will inherit phenotypes asserted on its component sex-agnostic genotype and its parts. 33 | 34 | 35 | 36 | 37 | 38 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | GENO_alternative_label 53 | 54 | 55 | 56 | 57 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | association3 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | association4 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | association5 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | association2 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | shha<tbx392>/shha<tbx392>[AB];cdkn1ca<MO3-cdkn1ca(n.s.)> 117 | Second effective genotype created to test propagation to sex-agnostic effective genotypes. 118 | 119 | 11-25-15 (4 total phenotype assertions). 120 | This individual should have: 121 | Asserted Phenos: 0 122 | Inferred Phenos: 4 (1 from the assertion on its component sex-agnostic intrinsic genotype, 1 from the assertion on the point mutation part of this genotype, 1 from the assertion on its component extrinsic genotype, and one from the assertion on a sex-qualified intrinsic genotype parent of its own sex-agnostic intrinsic genotype component (this is inter-genotype propagation) ) 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | phenotype4 asserted on point mutation 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | phenotype5 asserted on extrinsic genotype 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | phenotype2 asserted on sex-qualified intrinsic genotype 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | phenotype3 asserted on sex-agnostic intrinsic genotype 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | phenotype1 asserted on sex-qualified effective genotype 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | association1 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | cdkn1ca<MO3-cdkn1ca(n.s.)> 186 | 11-25-15 (2 total phenotype assertions). 187 | This individual should have: 188 | Asserted Phenos: 1 189 | Inferred Phenos: 1 (from asserton on its parent effective genotype) 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | shha<tbx392> 201 | 11-25-15 (4 total phenotype assertions). 202 | This individual should have: 203 | Asserted Phenos: 0 204 | Inferred Phenos: 4 (1 from the assertion on its parent effective genotype, 1 from the assertion on its parent sex-qualified intrinsic genotype, 1 from the assertion on its parent sex-agnostic intrinsic genotype, and 1 from the assertion on its component point mutation) 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | shha<tbx392>/shha<tbx392> 217 | 11-25-15 (4 total phenotype assertions). 218 | This individual should have: 219 | Asserted Phenos: 0 220 | Inferred Phenos: 4 (1 from the assertion on its parent effective genotype, 1 from the assertion on its parent sex-qualified intrinsic genotype, 1 from the assertion on its parent sex-agnostic intrinsic genotype, and 1 from the assertion on its component point mutation) 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 11-25-15 (4 phenotype assertions). 230 | This individual should have: 231 | Asserted Phenos: 0 232 | Inferred Phenos: 4 (all phenotypes asserted on genotypes that include a sequence- or expression-variant of shha get propagated to the shha gene) 233 | 234 | Note that the phenotype asserted on the cdkn1ca-containing extrinsic genotype is (correctly) not propagated to shha, even though it is propagated to the shha<tbx392>/shha<tbx392> [AB](male); cdkn1ca<MO3-cdkn1ca (n.s.)> effective genotype. This is an excellent example of how having a separate property for inferred phenotypes is useful (in avoiding such undue inheritance). If our propagation property chains were for the same property used to assert phenotype causation, then the phenotype asserted on the cdkn1ca variant would (incorrectly) propagate to shha. 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 11-25-15 (2 total phenotype assertions). 243 | This individual should have: 244 | Asserted Phenos: 0 245 | Inferred Phenos: 2 (1 from the assertion on the cdkn1ca-containing extrinsic genotype/reagent-targeted gene, and one from the assertion on the effective genotype that containns this extrinsic genotype/reagent-targeted gene) 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | tbx392 255 | 11-25-15 (4 total phenotype assertions). 256 | This individual should have: 257 | Asserted Phenos: 1 258 | Inferred Phenos: 3 (1 from the assertion on its parent effective genotype, 1 from the assertion on its parent sex-qualified intrinsic genotype, and 1 from the assertion on its parent sex-agnostic intrinsic genotype) 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | shha<tbx392>/shha<tbx392>[AB](male);cdkn1ca<MO3-cdkn1ca(n.s.)> 269 | 11-25-15 (3 total phenotype assertions). 270 | This individual should have: 271 | Asserted Phenos: 1 272 | Inferred Phenos: 2 (1 from the assertion on its component sex-qualified intrinsic genotype, and 1 from the assesrtion on its component extrinsic genotype) 273 | 274 | Recall that we don't want to propagate phenotypes up from sex-agnostic genotypes (or their parts) up to sex-qualified ones (or their parent effective genotype) For example, from shha<tbx392>/shha<tbx392>[AB] to shha<tbx392>/shha<tbx392>[AB]male. This is because it may not be the case that a phenotype assessed without consideration to sex will apply on a sex-specific background (i.e. it may be a sex-specific phenotype). This is why phenotypes asserted on the sex-agnostic genotype and its parts are not inherited by the sex-qualified genotype, or sex-qualified effective genotype. 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | shha<tbx392>/shha<tbx392> [AB] 287 | 11-25-15 (4 total phenotype assertions). 288 | This individual should have: 289 | Asserted Phenos: 1 290 | Inferred Phenos: 3 (1 from the assertion on its parent effective genotype, 1 from the assertion on its parent sex-qualified intrinsic genotype, and 1 from the assertion on its component point mutation) 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | shha<tbx392>/shha<tbx392> [AB](male) 302 | 11-25-15 (2 total phenotype assertions). 303 | This individual should have: 304 | Asserted Phenos: 1 305 | Inferred Phenos: 1 (from assertion on its parent effective genotype) 306 | 307 | Recall that we don't want to propagate phenotypes up from sex-agnostic genotypes (or their parts) up to sex-qualified ones (or their parent effective genotype) For example, from shha<tbx392>/shha<tbx392>[AB] to shha<tbx392>/shha<tbx392>[AB]male. This is because it may not be the case that a phenotype assessed without consideration to sex will apply on a sex-specific background (i.e. it may be a sex-specific phenotype). This is why phenotypes asserted on the sex-agnostic genotype and its parts are not inherited by the sex-qualified genotype, or sex-qualified effective genotype. 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | AB 319 | 320 | 321 | 322 | 323 | 330 | 331 | 332 | Strictlyand organizational to group subrelations - should not be used directly. 333 | 334 | 335 | has_specified_output some 336 | ('genomic material' 337 | and (bears_concretization_of some 'variant locus')) 338 | 339 | 340 | Range: organism or ('is part of' some organism) or ('derives from' some organism) 341 | 342 | 343 | Strictly an organizational to group subrelations - should not be used directly. 344 | 345 | 346 | Strictlyand organizational to group subrelations - should not be used directly. 347 | 348 | 349 | Strictlyand organizational to group subrelations - should not be used directly. 350 | 351 | 352 | Strictlyand organizational to group subrelations - should not be used directly. 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | -------------------------------------------------------------------------------- /src/ontology/archive/geno_examples1.owl: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | association2 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | association1 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | cdkn1ca<MO3-cdkn1ca> 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | shha<tbx392> 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | shha<tbx392>/shha<tbx392> 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | tbx392 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | shha<tbx392>/shha<tbx392> [AB]; cdkn1ca<MO3-cdkn1ca (n.s.)> 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | shha<tbx392>/shha<tbx392> [AB] 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | shha<tbx392>/shha<tbx392> [AB](male) 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | AB 153 | 154 | 155 | 156 | 157 | 164 | 165 | 166 | Strictlyand organizational to group subrelations - should not be used directly. 167 | 168 | 169 | Strictlyand organizational to group subrelations - should not be used directly. 170 | 171 | 172 | Strictlyand organizational to group subrelations - should not be used directly. 173 | 174 | 175 | Strictlyand organizational to group subrelations - should not be used directly. 176 | 177 | 178 | has_specified_output some 179 | ('genomic material' 180 | and (bears_concretization_of some 'variant locus')) 181 | 182 | 183 | Strictlyand organizational to group subrelations - should not be used directly. 184 | 185 | 186 | Range: organism or ('is part of' some organism) or ('derives from' some organism) 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /src/ontology/archive/geno_imports.owl: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/ontology/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./run.sh make all 3 | -------------------------------------------------------------------------------- /src/ontology/catalog-v001.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/ontology/geno-idranges.owl: -------------------------------------------------------------------------------- 1 | ## ID Ranges File 2 | Prefix: rdf: 3 | Prefix: idsfor: 4 | Prefix: dc: 5 | Prefix: xsd: 6 | Prefix: allocatedto: 7 | Prefix: xml: 8 | Prefix: idprefix: 9 | Prefix: iddigits: 10 | Prefix: rdfs: 11 | Prefix: idrange: 12 | Prefix: owl: 13 | 14 | Ontology: 15 | 16 | 17 | Annotations: 18 | idsfor: "GENO", 19 | idprefix: "http://purl.obolibrary.org/obo/GENO_", 20 | iddigits: 7 21 | 22 | AnnotationProperty: idprefix: 23 | 24 | 25 | AnnotationProperty: iddigits: 26 | 27 | 28 | AnnotationProperty: idsfor: 29 | 30 | 31 | AnnotationProperty: allocatedto: 32 | 33 | Datatype: idrange:1 34 | 35 | Annotations: 36 | allocatedto: "ONTOLOGY-CREATOR" 37 | 38 | EquivalentTo: 39 | xsd:integer[>= 0 , <= 999999] 40 | 41 | 42 | Datatype: idrange:2 43 | 44 | Annotations: 45 | allocatedto: "ADDITIONAL EDITOR" 46 | 47 | EquivalentTo: 48 | xsd:integer[>= 1000000 , <= 1999999] 49 | 50 | 51 | Datatype: xsd:integer 52 | Datatype: rdf:PlainLiteral 53 | 54 | -------------------------------------------------------------------------------- /src/ontology/geno-odk.yaml: -------------------------------------------------------------------------------- 1 | id: geno 2 | title: "GENO ontology" 3 | github_org: monarch-initiative 4 | git_main_branch: develop 5 | repo: GENO-ontology 6 | report_fail_on: None 7 | export_formats: 8 | - owl 9 | - obo 10 | - json 11 | release_artefacts: 12 | - base 13 | - full 14 | primary_release: full 15 | import_group: 16 | products: 17 | - id: ro 18 | - id: omo 19 | module_type: mirror 20 | # - id: iao 21 | # - id: faldo 22 | # - id: go 23 | # - id: hp 24 | # - id: hsapdv 25 | # - id: mp 26 | # - id: ncbitaxon 27 | # - id: oban 28 | - id: obi 29 | # - id: pato 30 | # - id: pco 31 | # - id: so 32 | # - id: uberon 33 | robot_java_args: '-Xmx8G' 34 | robot_report: 35 | fail_on: ERROR 36 | use_base_iris: TRUE 37 | report_on: 38 | - geno-base.owl 39 | - edit -------------------------------------------------------------------------------- /src/ontology/geno.Makefile: -------------------------------------------------------------------------------- 1 | ## Customize Makefile settings for geno 2 | ## 3 | ## If you need to customize your Makefile, make 4 | ## changes here rather than in the main Makefile 5 | 6 | json: 7 | robot -vvv convert -I http://www.geneontology.org/formats/oboInOwl -f json -o out.json -------------------------------------------------------------------------------- /src/ontology/imports/catalog-v001.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/ontology/imports/faldo_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/ontology/imports/faldo_terms.txt: -------------------------------------------------------------------------------- 1 | FALDO:0000000 2 | FALDO:0000001 3 | FALDO:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/go_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | definition 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | database_cross_reference 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | BFO:0000050 222 | external 223 | part_of 224 | part_of 225 | part of 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | BFO:0000051 235 | external 236 | has_part 237 | has_part 238 | has part 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | RO:0002091 247 | external 248 | starts_during 249 | starts_during 250 | starts_during 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | RO:0002093 259 | external 260 | ends_during 261 | ends_during 262 | ends_during 263 | 264 | 265 | 266 | 267 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | A biological process represents a specific objective that the organism is genetically programmed to achieve. Biological processes are often described by their outcome or ending state, e.g., the biological process of cell division results in the creation of two daughter cells (a divided cell) from a single parent cell. A biological process is accomplished by a particular set of molecular functions carried out by specific gene products (or macromolecular complexes), often in a highly regulated manner and in a particular temporal sequence. 282 | janelomax 283 | 2012-09-19T15:05:24Z 284 | GO:0000004 285 | GO:0007582 286 | GO:0044699 287 | Wikipedia:Biological_process 288 | biological process 289 | physiological process 290 | biological_process 291 | single organism process 292 | single-organism process 293 | GO:0008150 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | Note that, in addition to forming the root of the biological process ontology, this term is recommended for use for the annotation of gene products whose biological process is unknown. When this term is used for annotation, it indicates that no information was available about the biological process of the gene product annotated as of the date the annotation was made; the evidence code "no data" (ND), is used to indicate this. 304 | biological_process 305 | 306 | 307 | 308 | 309 | A biological process represents a specific objective that the organism is genetically programmed to achieve. Biological processes are often described by their outcome or ending state, e.g., the biological process of cell division results in the creation of two daughter cells (a divided cell) from a single parent cell. A biological process is accomplished by a particular set of molecular functions carried out by specific gene products (or macromolecular complexes), often in a highly regulated manner and in a particular temporal sequence. 310 | GOC:pdt 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | A biological process whose specific outcome is the progression of an integrated living unit: an anatomical structure (which may be a subcellular structure, cell, tissue, or organ), or organism over time from an initial condition to a later condition. 320 | janelomax 321 | 2012-12-19T12:21:31Z 322 | GO:0044767 323 | development 324 | biological_process 325 | single-organism developmental process 326 | GO:0032502 327 | 328 | 329 | 330 | 331 | developmental process 332 | 333 | 334 | 335 | 336 | A biological process whose specific outcome is the progression of an integrated living unit: an anatomical structure (which may be a subcellular structure, cell, tissue, or organ), or organism over time from an initial condition to a later condition. 337 | GOC:isa_complete 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /src/ontology/imports/go_terms.txt: -------------------------------------------------------------------------------- 1 | GO:0008150 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/hp_terms.txt: -------------------------------------------------------------------------------- 1 | HP:0000000 2 | HP:0000001 3 | HP:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/hsapdv_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | definition 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | database_cross_reference 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | BFO:0000050 90 | human_stages_ontology 91 | part_of 92 | part_of 93 | part of 94 | 95 | 96 | 97 | 98 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | A spatiotemporal region encompassing some part of the life cycle of an organism. 113 | UBERON:0000105 114 | developmental stage 115 | stage 116 | human_stages_ontology 117 | HsapDv:0000000 118 | human life cycle stage 119 | 120 | 121 | 122 | 123 | A spatiotemporal region encompassing some part of the life cycle of an organism. 124 | UBERON:0000105 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /src/ontology/imports/hsapdv_terms.txt: -------------------------------------------------------------------------------- 1 | http://purl.obolibrary.org/obo/HsapDv_0000000 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/iao_terms.txt: -------------------------------------------------------------------------------- 1 | IAO:0000577 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/mp_terms.txt: -------------------------------------------------------------------------------- 1 | MP:0000000 2 | MP:0000001 3 | MP:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/ncbitaxon_terms.txt: -------------------------------------------------------------------------------- 1 | NCBITaxon:1 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/oban_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/ontology/imports/oban_terms.txt: -------------------------------------------------------------------------------- 1 | OBAN:0000000 2 | OBAN:0000001 3 | OBAN:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/obi_terms.txt: -------------------------------------------------------------------------------- 1 | OBI:0000011 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/omo_terms.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/ontology/imports/pato_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/ontology/imports/pato_terms.txt: -------------------------------------------------------------------------------- 1 | PATO:0000001 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/imports/pco_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/ontology/imports/pco_terms.txt: -------------------------------------------------------------------------------- 1 | PCO:0000000 2 | PCO:0000001 3 | PCO:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/ro_terms.txt: -------------------------------------------------------------------------------- 1 | BFO:0000050 2 | RO:0002202 3 | 4 | -------------------------------------------------------------------------------- /src/ontology/imports/so_terms.txt: -------------------------------------------------------------------------------- 1 | SO:0000000 2 | SO:0000001 3 | SO:0000002 4 | 5 | -------------------------------------------------------------------------------- /src/ontology/imports/uberon_import.owl: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/ontology/imports/uberon_terms.txt: -------------------------------------------------------------------------------- 1 | UBERON:0001062 2 | 3 | -------------------------------------------------------------------------------- /src/ontology/json.json: -------------------------------------------------------------------------------- 1 | { 2 | "graphs" : [ { 3 | "nodes" : [ ], 4 | "edges" : [ ], 5 | "id" : "http://purl.obolibrary.org/obo/json", 6 | "meta" : { 7 | "subsets" : [ ], 8 | "xrefs" : [ ], 9 | "basicPropertyValues" : [ { 10 | "pred" : "http://www.w3.org/2000/01/rdf-schema#comment", 11 | "val" : "\n This is an OWL translation of an ontology whose native representational form is .obo. The translation was performed using the oboInOwl xslt library. For details, see http://www.berkeleybop.org/obo-conv.cgi\n " 12 | }, { 13 | "pred" : "http://www.w3.org/2000/01/rdf-schema#comment", 14 | "val" : "OBO Format metamodel. This meta-ontology is self-describing. OBO metamodel properties are described using OBO metamodel properties" 15 | }, { 16 | "pred" : "http://www.w3.org/2000/01/rdf-schema#label", 17 | "val" : "" 18 | } ], 19 | "version" : "http://purl.obolibrary.org/obo/geno/releases/2019-09-09" 20 | }, 21 | "equivalentNodesSets" : [ ], 22 | "logicalDefinitionAxioms" : [ ], 23 | "domainRangeAxioms" : [ ], 24 | "propertyChainAxioms" : [ ] 25 | } ] 26 | } -------------------------------------------------------------------------------- /src/ontology/keeprelations.txt: -------------------------------------------------------------------------------- 1 | BFO:0000050 -------------------------------------------------------------------------------- /src/ontology/ontologyterms.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/src/ontology/ontologyterms.txt -------------------------------------------------------------------------------- /src/ontology/patterns.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./run.sh make patterns 3 | -------------------------------------------------------------------------------- /src/ontology/pre_odk/catalog-v001.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/ontology/pre_odk/geno_imports.owl: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/ontology/prepare_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./run.sh make prepare_release 3 | -------------------------------------------------------------------------------- /src/ontology/reports/README.md: -------------------------------------------------------------------------------- 1 | # Reports folder 2 | 3 | Files are added to this during the release process 4 | -------------------------------------------------------------------------------- /src/ontology/reports/geno-base.owl-obo-report.tsv: -------------------------------------------------------------------------------- 1 | Level Rule Name Subject Property Value 2 | WARN annotation_whitespace obsolete_approximates_sequence IAO:0000116 Created subproperties 'approximates_sequence' and 'resolves to sequence'. Genotypes and other sequence variant artifacts are not always expected to completely specify a sequence, but rather provide some approximation based on available knowledge. The 'resolves_to_sequence' property can be used when the sequence variant artifact is able to completely resolve a sequence, and the 'approximates_sequence' property can be used when it does not. 3 | WARN annotation_whitespace obsolete_resolves_to_sequence IAO:0000116 Created subproperties 'approximates_sequence' and 'resolves to sequence'. Genotypes and other sequence variant artifacts are not always expected to completely specify a sequence, but rather provide some approximation based on available knowledge. The 'resolves_to_sequence' property can be used when the sequence variant artifact is able to completely resolve a sequence, and the 'approximates_sequence' property can be used when it does not. 4 | WARN duplicate_label_synonym reference sequence IAO:0000118 reference sequence 5 | WARN duplicate_label_synonym wild-type allele IAO:0000118 wild-type allele 6 | WARN equivalent_class_axiom_no_genus genomic sequence is_sequence_of genomic feature 7 | WARN invalid_xref background genome oboInOwl:hasDbXref OBI:genetic population background information 8 | WARN invalid_xref gene allele oboInOwl:hasDbXref SO:0001023 ! allele 9 | WARN invalid_xref obsolete sequence feature collection oboInOwl:hasDbXref perhaps not same as SO:sequence collection, as here we explicitly include features that can have an extent of zero (and SO:sequence collection is a collection of regions that have an extent of at least one) 10 | WARN invalid_xref variant genome oboInOwl:hasDbXref SO:0001506 ! variant_genome (definition of SO term here is too vague to know if has same meaning as GENO class here) 11 | WARN invalid_xref gene part oboInOwl:hasDbXref SO:0000831 (gene member region) 12 | WARN invalid_xref obsolete sequence feature collection oboInOwl:hasDbXref SO:0001260 ! sequence_collection 13 | WARN missing_definition gene trap insertion IAO:0000115 14 | WARN missing_definition taxonomic group IAO:0000115 15 | WARN missing_definition mus musculus strain IAO:0000115 16 | WARN missing_definition danio rerio strain IAO:0000115 17 | WARN missing_definition unspecified zygosity IAO:0000115 18 | WARN missing_definition heritable IAO:0000115 19 | WARN missing_definition non-heritable IAO:0000115 20 | WARN missing_definition unspecified life cycle stage IAO:0000115 21 | WARN missing_definition is_genotype_of IAO:0000115 22 | WARN missing_definition is_sequence_of IAO:0000115 23 | WARN missing_definition is_subject_of IAO:0000115 24 | WARN missing_definition biological process IAO:0000115 25 | WARN missing_definition is_variant_part_of IAO:0000115 26 | WARN missing_definition is_reference_part_of IAO:0000115 27 | WARN missing_definition trisomic homozygous IAO:0000115 28 | WARN missing_definition trisomic heterozygous IAO:0000115 29 | WARN missing_definition simple heterozygous IAO:0000115 30 | WARN missing_definition expression construct IAO:0000115 31 | WARN missing_definition wild-type gene IAO:0000115 32 | WARN missing_definition gene knockdown reagent IAO:0000115 33 | WARN missing_definition zebrafish phenotype IAO:0000115 34 | WARN missing_definition hemizygous X-linked IAO:0000115 35 | WARN missing_definition hemizygous Y-linked IAO:0000115 36 | WARN missing_definition hemizygous insertion-linked IAO:0000115 37 | WARN missing_definition chromosome sub-band IAO:0000115 38 | WARN missing_definition chromosomal band intensity IAO:0000115 39 | WARN missing_definition gpos IAO:0000115 40 | WARN missing_definition gneg IAO:0000115 41 | WARN missing_definition gvar IAO:0000115 42 | WARN missing_definition gpos100 IAO:0000115 43 | WARN missing_definition gpos75 IAO:0000115 44 | WARN missing_definition gpos50 IAO:0000115 45 | WARN missing_definition gpos25 IAO:0000115 46 | WARN missing_definition has_staining_intensity IAO:0000115 47 | WARN missing_definition gpos66 IAO:0000115 48 | WARN missing_definition gpos33 IAO:0000115 49 | WARN missing_definition reporter region IAO:0000115 50 | WARN missing_definition has_sex_agnostic_part IAO:0000115 51 | WARN missing_definition is_mutant_allele_of IAO:0000115 52 | WARN missing_definition is_sequence_part_of IAO:0000115 53 | WARN missing_definition faldo properties IAO:0000115 54 | WARN missing_definition intrinsic genotype IAO:0000115 55 | WARN missing_definition DNA sequence IAO:0000115 56 | WARN missing_definition RNA sequence IAO:0000115 57 | WARN missing_definition amino acid sequence IAO:0000115 58 | WARN missing_definition has_inferred_phenotype IAO:0000115 59 | WARN missing_definition has_asserted_phenotype IAO:0000115 60 | WARN missing_definition is_regulatory_part_of IAO:0000115 61 | WARN missing_definition phenotypic inheritance process IAO:0000115 62 | WARN missing_definition biological sequence unit IAO:0000115 63 | WARN missing_definition DNA residue IAO:0000115 64 | WARN missing_definition RNA residue IAO:0000115 65 | WARN missing_definition amino acid residue IAO:0000115 66 | WARN missing_definition related_condition IAO:0000115 67 | WARN missing_definition inferred_to_cause_condition IAO:0000115 68 | WARN missing_definition inferred_to_contribute_to_condition IAO:0000115 69 | WARN missing_definition inferred_to_correlate_with_condition IAO:0000115 70 | WARN missing_definition genotype-phenotype association IAO:0000115 71 | WARN missing_definition knockdown reagent targeted gene complement IAO:0000115 72 | WARN missing_definition pathogenic_for_condition IAO:0000115 73 | WARN missing_definition likely_pathogenic_for_condition IAO:0000115 74 | WARN missing_definition benign_for_condition IAO:0000115 75 | WARN missing_definition likely_benign_for_condition IAO:0000115 76 | WARN missing_definition has_uncertain_significance_for_condition IAO:0000115 77 | WARN missing_definition is_candidate_variant_for IAO:0000115 78 | WARN missing_definition proabalistic_quantifier IAO:0000115 79 | WARN missing_definition microsatellite alteration IAO:0000115 80 | WARN missing_definition repeat region alteration IAO:0000115 81 | WARN missing_definition oryzias latipes strain IAO:0000115 82 | WARN missing_definition mixin IAO:0000115 83 | WARN missing_definition on strand IAO:0000115 84 | WARN missing_definition gene symbol IAO:0000115 85 | WARN missing_definition reporter IAO:0000115 86 | WARN missing_definition selectable marker IAO:0000115 87 | WARN missing_definition selectable marker region IAO:0000115 88 | WARN missing_definition mosaic IAO:0000115 89 | INFO lowercase_definition obsolete sequence feature collection IAO:0000115 a collection more than one sequence features (ie a collection of discontinuous sequence features) 90 | INFO lowercase_definition human population IAO:0000115 a population of homo sapiens grouped together in virtue of their sharing some commonality (either an inherent attribute or an externally assigned role) 91 | INFO lowercase_definition obsolete sequence feature collection attribute IAO:0000115 sequence attribute that can inhere only in a collection of more than one sequence features 92 | INFO lowercase_definition obsolete dominant inheritance IAO:0000115 disposition inhering in a genetic locus variant that is realized in its inheritance by some offspring such that at least a partial variant-associated phenotype is apparent in heterozygotes 93 | INFO lowercase_definition obsolete_is_phenotype_of_genotype IAO:0000115 shortcut relation used to link a phenotype directly to a genotype of an organism 94 | INFO lowercase_definition aneusomic IAO:0000115 a sequence attribute of a chromosome or chromosomal region that has been abnormally duplicated or lost, as the result of a non-disjunction event or unbalanced translocation. 95 | INFO lowercase_definition homoplasmic IAO:0000115 an allelic state where a single allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 96 | INFO lowercase_definition heteroplasmic IAO:0000115 an allelic state where more than one type of allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 97 | INFO lowercase_definition has_zygosity IAO:0000115 a relation to link a single locus complement to its zygosity. 98 | INFO lowercase_definition is_targeted_by IAO:0000115 relation between an molecular agent and its molecular target 99 | INFO lowercase_definition obsolete gametic IAO:0000115 a quality inhering in a feature in virtue of its presence only in the genome of gametes (germ cells). 100 | INFO missing_superclass genomic variation complement rdfs:subClassOf 101 | INFO missing_superclass reference sequence rdfs:subClassOf 102 | INFO missing_superclass variant single locus complement rdfs:subClassOf 103 | INFO missing_superclass reference allele rdfs:subClassOf 104 | INFO missing_superclass danio rerio gene rdfs:subClassOf 105 | INFO missing_superclass homo sapiens gene rdfs:subClassOf 106 | INFO missing_superclass mus musculus gene rdfs:subClassOf 107 | INFO missing_superclass transgene part rdfs:subClassOf 108 | INFO missing_superclass extrachromosomal replicon rdfs:subClassOf 109 | INFO missing_superclass allele rdfs:subClassOf 110 | INFO missing_superclass gene part rdfs:subClassOf 111 | INFO missing_superclass DNA sequence rdfs:subClassOf 112 | INFO missing_superclass RNA sequence rdfs:subClassOf 113 | INFO missing_superclass amino acid sequence rdfs:subClassOf 114 | INFO missing_superclass variant genomic genotype rdfs:subClassOf 115 | INFO missing_superclass biological sequence unit rdfs:subClassOf 116 | INFO missing_superclass allelic genotype rdfs:subClassOf 117 | INFO missing_superclass diplotype rdfs:subClassOf 118 | -------------------------------------------------------------------------------- /src/ontology/reports/geno-edit.owl-obo-report.tsv: -------------------------------------------------------------------------------- 1 | Level Rule Name Subject Property Value 2 | WARN annotation_whitespace obsolete_approximates_sequence IAO:0000116 Created subproperties 'approximates_sequence' and 'resolves to sequence'. Genotypes and other sequence variant artifacts are not always expected to completely specify a sequence, but rather provide some approximation based on available knowledge. The 'resolves_to_sequence' property can be used when the sequence variant artifact is able to completely resolve a sequence, and the 'approximates_sequence' property can be used when it does not. 3 | WARN annotation_whitespace obsolete_resolves_to_sequence IAO:0000116 Created subproperties 'approximates_sequence' and 'resolves to sequence'. Genotypes and other sequence variant artifacts are not always expected to completely specify a sequence, but rather provide some approximation based on available knowledge. The 'resolves_to_sequence' property can be used when the sequence variant artifact is able to completely resolve a sequence, and the 'approximates_sequence' property can be used when it does not. 4 | WARN duplicate_label_synonym reference sequence IAO:0000118 reference sequence 5 | WARN duplicate_label_synonym wild-type allele IAO:0000118 wild-type allele 6 | WARN equivalent_class_axiom_no_genus genomic sequence is_sequence_of genomic feature 7 | WARN invalid_xref background genome oboInOwl:hasDbXref OBI:genetic population background information 8 | WARN invalid_xref gene allele oboInOwl:hasDbXref SO:0001023 ! allele 9 | WARN invalid_xref obsolete sequence feature collection oboInOwl:hasDbXref perhaps not same as SO:sequence collection, as here we explicitly include features that can have an extent of zero (and SO:sequence collection is a collection of regions that have an extent of at least one) 10 | WARN invalid_xref variant genome oboInOwl:hasDbXref SO:0001506 ! variant_genome (definition of SO term here is too vague to know if has same meaning as GENO class here) 11 | WARN invalid_xref gene part oboInOwl:hasDbXref SO:0000831 (gene member region) 12 | WARN invalid_xref obsolete sequence feature collection oboInOwl:hasDbXref SO:0001260 ! sequence_collection 13 | WARN missing_definition gene trap insertion IAO:0000115 14 | WARN missing_definition taxonomic group IAO:0000115 15 | WARN missing_definition mus musculus strain IAO:0000115 16 | WARN missing_definition danio rerio strain IAO:0000115 17 | WARN missing_definition unspecified zygosity IAO:0000115 18 | WARN missing_definition heritable IAO:0000115 19 | WARN missing_definition non-heritable IAO:0000115 20 | WARN missing_definition unspecified life cycle stage IAO:0000115 21 | WARN missing_definition is_genotype_of IAO:0000115 22 | WARN missing_definition is_sequence_of IAO:0000115 23 | WARN missing_definition is_subject_of IAO:0000115 24 | WARN missing_definition biological process IAO:0000115 25 | WARN missing_definition is_variant_part_of IAO:0000115 26 | WARN missing_definition is_reference_part_of IAO:0000115 27 | WARN missing_definition trisomic homozygous IAO:0000115 28 | WARN missing_definition trisomic heterozygous IAO:0000115 29 | WARN missing_definition simple heterozygous IAO:0000115 30 | WARN missing_definition expression construct IAO:0000115 31 | WARN missing_definition wild-type gene IAO:0000115 32 | WARN missing_definition gene knockdown reagent IAO:0000115 33 | WARN missing_definition zebrafish phenotype IAO:0000115 34 | WARN missing_definition hemizygous X-linked IAO:0000115 35 | WARN missing_definition hemizygous Y-linked IAO:0000115 36 | WARN missing_definition hemizygous insertion-linked IAO:0000115 37 | WARN missing_definition chromosome sub-band IAO:0000115 38 | WARN missing_definition chromosomal band intensity IAO:0000115 39 | WARN missing_definition gpos IAO:0000115 40 | WARN missing_definition gneg IAO:0000115 41 | WARN missing_definition gvar IAO:0000115 42 | WARN missing_definition gpos100 IAO:0000115 43 | WARN missing_definition gpos75 IAO:0000115 44 | WARN missing_definition gpos50 IAO:0000115 45 | WARN missing_definition gpos25 IAO:0000115 46 | WARN missing_definition has_staining_intensity IAO:0000115 47 | WARN missing_definition gpos66 IAO:0000115 48 | WARN missing_definition gpos33 IAO:0000115 49 | WARN missing_definition reporter region IAO:0000115 50 | WARN missing_definition has_sex_agnostic_part IAO:0000115 51 | WARN missing_definition is_mutant_allele_of IAO:0000115 52 | WARN missing_definition is_sequence_part_of IAO:0000115 53 | WARN missing_definition faldo properties IAO:0000115 54 | WARN missing_definition intrinsic genotype IAO:0000115 55 | WARN missing_definition DNA sequence IAO:0000115 56 | WARN missing_definition RNA sequence IAO:0000115 57 | WARN missing_definition amino acid sequence IAO:0000115 58 | WARN missing_definition has_inferred_phenotype IAO:0000115 59 | WARN missing_definition has_asserted_phenotype IAO:0000115 60 | WARN missing_definition is_regulatory_part_of IAO:0000115 61 | WARN missing_definition phenotypic inheritance process IAO:0000115 62 | WARN missing_definition biological sequence unit IAO:0000115 63 | WARN missing_definition DNA residue IAO:0000115 64 | WARN missing_definition RNA residue IAO:0000115 65 | WARN missing_definition amino acid residue IAO:0000115 66 | WARN missing_definition related_condition IAO:0000115 67 | WARN missing_definition inferred_to_cause_condition IAO:0000115 68 | WARN missing_definition inferred_to_contribute_to_condition IAO:0000115 69 | WARN missing_definition inferred_to_correlate_with_condition IAO:0000115 70 | WARN missing_definition genotype-phenotype association IAO:0000115 71 | WARN missing_definition knockdown reagent targeted gene complement IAO:0000115 72 | WARN missing_definition pathogenic_for_condition IAO:0000115 73 | WARN missing_definition likely_pathogenic_for_condition IAO:0000115 74 | WARN missing_definition benign_for_condition IAO:0000115 75 | WARN missing_definition likely_benign_for_condition IAO:0000115 76 | WARN missing_definition has_uncertain_significance_for_condition IAO:0000115 77 | WARN missing_definition is_candidate_variant_for IAO:0000115 78 | WARN missing_definition proabalistic_quantifier IAO:0000115 79 | WARN missing_definition microsatellite alteration IAO:0000115 80 | WARN missing_definition repeat region alteration IAO:0000115 81 | WARN missing_definition oryzias latipes strain IAO:0000115 82 | WARN missing_definition mixin IAO:0000115 83 | WARN missing_definition on strand IAO:0000115 84 | WARN missing_definition gene symbol IAO:0000115 85 | WARN missing_definition reporter IAO:0000115 86 | WARN missing_definition selectable marker IAO:0000115 87 | WARN missing_definition selectable marker region IAO:0000115 88 | WARN missing_definition mosaic IAO:0000115 89 | INFO lowercase_definition obsolete sequence feature collection IAO:0000115 a collection more than one sequence features (ie a collection of discontinuous sequence features) 90 | INFO lowercase_definition human population IAO:0000115 a population of homo sapiens grouped together in virtue of their sharing some commonality (either an inherent attribute or an externally assigned role) 91 | INFO lowercase_definition obsolete sequence feature collection attribute IAO:0000115 sequence attribute that can inhere only in a collection of more than one sequence features 92 | INFO lowercase_definition obsolete dominant inheritance IAO:0000115 disposition inhering in a genetic locus variant that is realized in its inheritance by some offspring such that at least a partial variant-associated phenotype is apparent in heterozygotes 93 | INFO lowercase_definition obsolete_is_phenotype_of_genotype IAO:0000115 shortcut relation used to link a phenotype directly to a genotype of an organism 94 | INFO lowercase_definition aneusomic IAO:0000115 a sequence attribute of a chromosome or chromosomal region that has been abnormally duplicated or lost, as the result of a non-disjunction event or unbalanced translocation. 95 | INFO lowercase_definition homoplasmic IAO:0000115 an allelic state where a single allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 96 | INFO lowercase_definition heteroplasmic IAO:0000115 an allelic state where more than one type of allele exists at a particular location in the organellar genome (mitochondrial or plastid) of a cell/organism. 97 | INFO lowercase_definition has_zygosity IAO:0000115 a relation to link a single locus complement to its zygosity. 98 | INFO lowercase_definition is_targeted_by IAO:0000115 relation between an molecular agent and its molecular target 99 | INFO lowercase_definition obsolete gametic IAO:0000115 a quality inhering in a feature in virtue of its presence only in the genome of gametes (germ cells). 100 | INFO missing_superclass genomic variation complement rdfs:subClassOf 101 | INFO missing_superclass reference sequence rdfs:subClassOf 102 | INFO missing_superclass variant single locus complement rdfs:subClassOf 103 | INFO missing_superclass reference allele rdfs:subClassOf 104 | INFO missing_superclass danio rerio gene rdfs:subClassOf 105 | INFO missing_superclass homo sapiens gene rdfs:subClassOf 106 | INFO missing_superclass mus musculus gene rdfs:subClassOf 107 | INFO missing_superclass transgene part rdfs:subClassOf 108 | INFO missing_superclass extrachromosomal replicon rdfs:subClassOf 109 | INFO missing_superclass allele rdfs:subClassOf 110 | INFO missing_superclass gene part rdfs:subClassOf 111 | INFO missing_superclass DNA sequence rdfs:subClassOf 112 | INFO missing_superclass RNA sequence rdfs:subClassOf 113 | INFO missing_superclass amino acid sequence rdfs:subClassOf 114 | INFO missing_superclass variant genomic genotype rdfs:subClassOf 115 | INFO missing_superclass biological sequence unit rdfs:subClassOf 116 | INFO missing_superclass allelic genotype rdfs:subClassOf 117 | INFO missing_superclass diplotype rdfs:subClassOf 118 | -------------------------------------------------------------------------------- /src/ontology/run.bat: -------------------------------------------------------------------------------- 1 | docker run -v %cd%\..\..\:/work -w /work/src/ontology --rm -ti obolibrary/odkfull %* 2 | -------------------------------------------------------------------------------- /src/ontology/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Wrapper script for docker. 3 | # 4 | # This is used primarily for wrapping the GNU Make workflow. 5 | # Instead of typing "make TARGET", type "./run.sh make TARGET". 6 | # This will run the make workflow within a docker container. 7 | # 8 | # The assumption is that you are working in the src/ontology folder; 9 | # we therefore map the whole repo (../..) to a docker volume. 10 | # 11 | # To use singularity instead of docker, please issue 12 | # export USE_SINGULARITY= 13 | # before running this script. 14 | # 15 | # See README-editors.md for more details. 16 | 17 | if [ -f run.sh.conf ]; then 18 | . ./run.sh.conf 19 | fi 20 | 21 | # Look for a GitHub token 22 | if [ -n "$GH_TOKEN" ]; then 23 | : 24 | elif [ -f ../../.github/token.txt ]; then 25 | GH_TOKEN=$(cat ../../.github/token.txt) 26 | elif [ -f $XDG_CONFIG_HOME/ontology-development-kit/github/token ]; then 27 | GH_TOKEN=$(cat $XDG_CONFIG_HOME/ontology-development-kit/github/token) 28 | elif [ -f "$HOME/Library/Application Support/ontology-development-kit/github/token" ]; then 29 | GH_TOKEN=$(cat "$HOME/Library/Application Support/ontology-development-kit/github/token") 30 | fi 31 | 32 | ODK_IMAGE=${ODK_IMAGE:-odkfull} 33 | TAG_IN_IMAGE=$(echo $ODK_IMAGE | awk -F':' '{ print $2 }') 34 | if [ -n "$TAG_IN_IMAGE" ]; then 35 | # Override ODK_TAG env var if IMAGE already includes a tag 36 | ODK_TAG=$TAG_IN_IMAGE 37 | ODK_IMAGE=$(echo $ODK_IMAGE | awk -F':' '{ print $1 }') 38 | fi 39 | ODK_TAG=${ODK_TAG:-latest} 40 | ODK_JAVA_OPTS=${ODK_JAVA_OPTS:--Xmx8G} 41 | ODK_DEBUG=${ODK_DEBUG:-no} 42 | 43 | TIMECMD= 44 | if [ x$ODK_DEBUG = xyes ]; then 45 | # If you wish to change the format string, take care of using 46 | # non-breaking spaces (U+00A0) instead of normal spaces, to 47 | # prevent the shell from tokenizing the format string. 48 | echo "Running ${IMAGE} with ${ODK_JAVA_OPTS} of memory for ROBOT and Java-based pipeline steps." 49 | TIMECMD="/usr/bin/time -f ### DEBUG STATS ###\nElapsed time: %E\nPeak memory: %M kb" 50 | fi 51 | 52 | VOLUME_BIND=$PWD/../../:/work 53 | WORK_DIR=/work/src/ontology 54 | 55 | if [ -n "$ODK_BINDS" ]; then 56 | VOLUME_BIND="$VOLUME_BIND,$ODK_BINDS" 57 | fi 58 | 59 | if [ -n "$USE_SINGULARITY" ]; then 60 | 61 | singularity exec --cleanenv $ODK_SINGULARITY_OPTIONS \ 62 | --env "ROBOT_JAVA_ARGS=$ODK_JAVA_OPTS,JAVA_OPTS=$ODK_JAVA_OPTS" \ 63 | --bind $VOLUME_BIND \ 64 | -W $WORK_DIR \ 65 | docker://obolibrary/$ODK_IMAGE:$ODK_TAG $TIMECMD "$@" 66 | else 67 | BIND_OPTIONS="-v $(echo $VOLUME_BIND | sed 's/,/ -v /')" 68 | docker run $ODK_DOCKER_OPTIONS $BIND_OPTIONS -w $WORK_DIR \ 69 | -e ROBOT_JAVA_ARGS="$ODK_JAVA_OPTS" -e JAVA_OPTS="$ODK_JAVA_OPTS" \ 70 | --rm -ti obolibrary/$ODK_IMAGE:$ODK_TAG $TIMECMD "$@" 71 | fi 72 | 73 | case "$@" in 74 | *update_repo*|*release*) 75 | echo "Please remember to update your ODK image from time to time: https://oboacademy.github.io/obook/howto/odk-update/." 76 | ;; 77 | esac -------------------------------------------------------------------------------- /src/ontology/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ./run.sh make test 3 | -------------------------------------------------------------------------------- /src/ontology/tmp/README.md: -------------------------------------------------------------------------------- 1 | # This folder contains files that are regenerated with every release to keep the src/ontology folder clean -------------------------------------------------------------------------------- /src/patterns/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/4542a19703dae4c5ac22960854de680a1b7b427e/src/patterns/README.md -------------------------------------------------------------------------------- /src/patterns/definitions.owl: -------------------------------------------------------------------------------- 1 | Prefix(:=) 2 | Prefix(owl:=) 3 | Prefix(rdf:=) 4 | Prefix(xml:=) 5 | Prefix(xsd:=) 6 | Prefix(rdfs:=) 7 | 8 | 9 | Ontology( 10 | 11 | ) -------------------------------------------------------------------------------- /src/patterns/dosdp-patterns/external.txt: -------------------------------------------------------------------------------- 1 | http://purl.obolibrary.org/obo/upheno/patterns/abnormalAnatomicalEntity.yaml -------------------------------------------------------------------------------- /src/patterns/pattern.owl: -------------------------------------------------------------------------------- 1 | Prefix(:=) 2 | Prefix(owl:=) 3 | Prefix(rdf:=) 4 | Prefix(xml:=) 5 | Prefix(xsd:=) 6 | Prefix(rdfs:=) 7 | 8 | 9 | Ontology( 10 | 11 | ) -------------------------------------------------------------------------------- /src/scripts/update_repo.sh: -------------------------------------------------------------------------------- 1 | echo "This (experimental) update script will create a new repo according to your config file. It will:" 2 | echo "(1) overwrite your repositories Makefile, ODK sparql queries (your custom queries wont be touched) and docker wrapper (run.sh)." 3 | echo "(2) and add missing files, if any." 4 | 5 | set -e 6 | 7 | OID=geno 8 | ROOTDIR=../.. 9 | SRCDIR=.. 10 | CONFIG=$OID"-odk.yaml" 11 | 12 | rm -rf target 13 | mkdir target 14 | /tools/odk.py seed -c -g -C $CONFIG 15 | ls -l target/$OID/src 16 | ls -l $SRCDIR/ 17 | cp target/$OID/src/scripts/update_repo.sh $SRCDIR/scripts/ 18 | rsync -r -u --ignore-existing --exclude 'patterns/data/default/example.tsv' --exclude 'patterns/dosdp-patterns/example.yaml' target/$OID/src/ $SRCDIR/ 19 | cp target/$OID/src/ontology/Makefile $SRCDIR/ontology/ 20 | cp target/$OID/src/ontology/run.sh $SRCDIR/ontology/ 21 | cp -r target/$OID/src/sparql/* $SRCDIR/sparql/ 22 | mkdir -p $ROOTDIR/.github 23 | mkdir -p $ROOTDIR/.github/workflows 24 | cp -n target/$OID/.github/workflows/qc.yml $ROOTDIR/.github/workflows/qc.yml 25 | 26 | 27 | 28 | echo "WARNING: These files should be manually migrated: mkdocs.yaml, .gitignore, src/ontology/catalog.xml (if you added a new import or component)" 29 | echo "WARNING: Your QC workflows have not been updated automatically. Please update the ODK version number(s) in .github/workflows/qc.yml." 30 | echo "Ontology repository update successfully completed." -------------------------------------------------------------------------------- /src/scripts/validate_id_ranges.sc: -------------------------------------------------------------------------------- 1 | import $ivy.`net.sourceforge.owlapi:owlapi-distribution:4.5.16` 2 | import $ivy.`com.outr::scribe-slf4j:2.7.12` 3 | import org.semanticweb.owlapi.apibinding.OWLManager 4 | import org.semanticweb.owlapi.model._ 5 | import org.semanticweb.owlapi.vocab.OWLFacet 6 | import java.io.File 7 | import scala.collection 8 | import scala.collection.mutable 9 | import scala.jdk.CollectionConverters._ 10 | @main 11 | def main(id_range_file: os.Path) = { 12 | val o = OWLManager.createOWLOntologyManager().loadOntology(IRI.create(id_range_file.toIO)) 13 | val allMyFacets = mutable.ListBuffer.empty[MyFacet] 14 | for (dt <- o.getDatatypesInSignature().asScala) { 15 | val defs = o.getAxioms(dt) 16 | for (ax <- defs.asScala) { 17 | val range = ax.getDataRange() 18 | val f = new MyFacet() 19 | f.id = dt.toString() 20 | range.accept(new OWLDataRangeVisitor() { 21 | override 22 | def visit(owlDatatype: OWLDatatype) = () 23 | override 24 | def visit(owlDataOneOf: OWLDataOneOf) = () 25 | override 26 | def visit(owlDataComplementOf: OWLDataComplementOf) = () 27 | override 28 | def visit(owlDataIntersectionOf: OWLDataIntersectionOf) = () 29 | override 30 | def visit(owlDataUnionOf: OWLDataUnionOf) = () 31 | override 32 | def visit(owlDatatypeRestriction: OWLDatatypeRestriction) = { 33 | for (fr <- owlDatatypeRestriction.getFacetRestrictions().asScala) { 34 | var i = fr.getFacetValue().parseInteger() 35 | if(fr.getFacet().equals(OWLFacet.MIN_INCLUSIVE)) { 36 | f.min = i 37 | } else if(fr.getFacet().equals(OWLFacet.MAX_INCLUSIVE)) { 38 | f.max = i 39 | } else if(fr.getFacet().equals(OWLFacet.MIN_EXCLUSIVE)) { 40 | i += 1 41 | f.min = i 42 | } else if(fr.getFacet().equals(OWLFacet.MAX_EXCLUSIVE)) { 43 | i -= 1 44 | f.max = i 45 | } else { 46 | log("Unknown range restriction: "+fr) 47 | } 48 | } 49 | } 50 | }) 51 | log("Testing range: "+f) 52 | testFacetViolation(f,allMyFacets) 53 | allMyFacets.append(f) 54 | } 55 | } 56 | } 57 | def testFacetViolation(f: MyFacet , allMyFacets: collection.Seq[MyFacet]) = { 58 | for (f_p <- allMyFacets) { 59 | if (((f.min <= f_p.max) && (f_p.min <= f.max))) { 60 | throw new IllegalStateException(f + " overlaps with " + f_p + "!") 61 | } 62 | } 63 | } 64 | def log(o: Object) = { 65 | println(o.toString()) 66 | } 67 | class MyFacet { 68 | var min: Int = _ 69 | var max: Int = _ 70 | var id: String = _ 71 | override 72 | def toString(): String = { 73 | return "Facet{" + id + "}[min:" + min + " max:" + max + "]" 74 | } 75 | } -------------------------------------------------------------------------------- /src/sparql/README.md: -------------------------------------------------------------------------------- 1 | # Sparql checks 2 | 3 | [SPARQL](https://www.w3.org/TR/rdf-sparql-query/) is a W3C standard 4 | query language for RDF. This directory contains useful SPARQL queries 5 | for perfoming over the ontology. 6 | 7 | SPARQL can be executed on a triplestore or directly on any OWL 8 | file. The queries here are all executed on either geno-edit.obo or 9 | downstream products in the [ontology](../ontology/) folder. We use 10 | `robot` as this allows easy execution over any Obo-format or OWL file. 11 | 12 | We break the queries into 3 categories: 13 | 14 | ## Constraint Violation checks 15 | 16 | These are all named `*violation.sparql`. A subset of these are 17 | configured to be executed via travis. If these return any results, 18 | then the build will fail. 19 | 20 | Consult the individual sparql files to see the intent of the check 21 | 22 | ## Construct queries 23 | 24 | These are named `construct*.sparql`, and always have the form `CONSTRUCT ...`. 25 | 26 | These are used to generate new OWL axioms that can be inserted back 27 | into the ontology. 28 | 29 | ## Reports 30 | 31 | The remaining SPARQL queries are for informative purposes. A subset 32 | may be executed with each release. -------------------------------------------------------------------------------- /src/sparql/basic-report.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix def: 3 | prefix owl: 4 | 5 | SELECT ?cls ?def (group_concat(?xref) as ?xrefs) WHERE 6 | { 7 | ?cls a owl:Class . 8 | OPTIONAL { ?cls oio:hasDbXref ?xref } . 9 | OPTIONAL { ?cls def: ?def } . 10 | FILTER (!isBlank(?cls)) 11 | } 12 | GROUP BY ?cls ?def 13 | -------------------------------------------------------------------------------- /src/sparql/class-count-by-prefix.sparql: -------------------------------------------------------------------------------- 1 | prefix owl: 2 | prefix obo: 3 | 4 | SELECT ?prefix (COUNT(DISTINCT ?cls) AS ?numberOfClasses) WHERE 5 | { 6 | ?cls a owl:Class . 7 | FILTER (!isBlank(?cls)) 8 | BIND( STRBEFORE(STRAFTER(str(?cls),"http://purl.obolibrary.org/obo/"), "_") AS ?prefix) 9 | } 10 | GROUP BY ?prefix 11 | -------------------------------------------------------------------------------- /src/sparql/def-lacks-xref-violation.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix def: 3 | prefix owl: 4 | 5 | SELECT ?cls ?def (group_concat(?xref) as ?xrefs) WHERE 6 | { 7 | ?cls a owl:Class . 8 | OPTIONAL { ?cls oio:hasDbXref ?xref } . 9 | OPTIONAL { ?cls def: ?def } . 10 | FILTER (!isBlank(?cls)) 11 | } 12 | GROUP BY ?cls ?def 13 | -------------------------------------------------------------------------------- /src/sparql/edges.sparql: -------------------------------------------------------------------------------- 1 | prefix owl: 2 | prefix rdfs: 3 | prefix rdf: 4 | 5 | SELECT ?x ?p ?y 6 | WHERE { 7 | {?x rdfs:subClassOf [ 8 | a owl:Restriction ; 9 | owl:onProperty ?p ; 10 | owl:someValuesFrom ?y ] 11 | } 12 | UNION { 13 | ?x rdfs:subClassOf ?y . 14 | BIND(rdfs:subClassOf AS ?p) 15 | } 16 | ?x a owl:Class . 17 | ?y a owl:Class . 18 | } 19 | -------------------------------------------------------------------------------- /src/sparql/equivalent-classes-violation.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix owl: 3 | prefix rdfs: 4 | 5 | SELECT ?baseClass ?baseLabel ?equivalentClass ?equivalentLabel WHERE 6 | { 7 | ?baseClass owl:equivalentClass ?equivalentClass . 8 | ?baseClass rdfs:label ?baseLabel . 9 | ?equivalentClass rdfs:label ?equivalentLabel . 10 | 11 | FILTER (!isBlank(?baseClass)) . 12 | FILTER (!isBlank(?equivalentClass)) 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/sparql/geno_terms.sparql: -------------------------------------------------------------------------------- 1 | SELECT DISTINCT ?term 2 | WHERE { 3 | { ?s1 ?p1 ?term . } 4 | UNION 5 | { ?term ?p2 ?o2 . } 6 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 7 | } 8 | -------------------------------------------------------------------------------- /src/sparql/illegal-date-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX dct: 2 | PREFIX xsd: 3 | 4 | SELECT DISTINCT ?term ?property ?value WHERE 5 | { 6 | VALUES ?property {dct:date dct:issued dct:created} 7 | ?term ?property ?value . 8 | FILTER (datatype(?value) != xsd:date || !regex(str(?value), '^\\d{4}-\\d\\d-\\d\\d$')) 9 | } 10 | 11 | -------------------------------------------------------------------------------- /src/sparql/inject-subset-declaration.ru: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | PREFIX rdf: 3 | PREFIX rdfs: 4 | 5 | INSERT { ?y rdfs:subPropertyOf . } 6 | 7 | WHERE { 8 | ?x ?y . 9 | FILTER(isIRI(?y)) 10 | FILTER(regex(str(?y),"^(http://purl.obolibrary.org/obo/)") || regex(str(?y),"^(http://www.ebi.ac.uk/efo/)") || regex(str(?y),"^(https://w3id.org/biolink/)") || regex(str(?y),"^(http://purl.obolibrary.org/obo)")) 11 | } -------------------------------------------------------------------------------- /src/sparql/inject-synonymtype-declaration.ru: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | PREFIX rdf: 3 | PREFIX rdfs: 4 | 5 | INSERT { ?y rdfs:subPropertyOf . } 6 | 7 | WHERE { 8 | ?x ?y . 9 | FILTER(isIRI(?y)) 10 | FILTER(regex(str(?y),"^(http://purl.obolibrary.org/obo/)") || regex(str(?y),"^(http://www.ebi.ac.uk/efo/)") || regex(str(?y),"^(https://w3id.org/biolink/)") || regex(str(?y),"^(http://purl.obolibrary.org/obo)")) 11 | } -------------------------------------------------------------------------------- /src/sparql/iri-range-advanced-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX never_in_taxon: 2 | PREFIX present_in_taxon: 3 | PREFIX oboInOwl: 4 | PREFIX dcterms: 5 | PREFIX rdfs: 6 | PREFIX foaf: 7 | 8 | SELECT ?term ?property ?value 9 | WHERE { 10 | VALUES ?property { 11 | never_in_taxon: 12 | present_in_taxon: 13 | rdfs:seeAlso 14 | foaf:depicted_by 15 | oboInOwl:inSubset 16 | dcterms:contributor } 17 | ?term ?property ?value . 18 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 19 | FILTER (!isIRI(?value)) 20 | } 21 | 22 | -------------------------------------------------------------------------------- /src/sparql/iri-range-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX never_in_taxon: 2 | PREFIX present_in_taxon: 3 | PREFIX oboInOwl: 4 | PREFIX dcterms: 5 | PREFIX foaf: 6 | 7 | SELECT ?term ?property ?value 8 | WHERE { 9 | VALUES ?property { 10 | never_in_taxon: 11 | present_in_taxon: 12 | foaf:depicted_by 13 | oboInOwl:inSubset 14 | dcterms:contributor } 15 | ?term ?property ?value . 16 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 17 | FILTER (!isIRI(?value)) 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/sparql/label-with-iri-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX rdfs: 2 | 3 | SELECT ?term ?value 4 | WHERE { 5 | ?term rdfs:label ?value . 6 | FILTER (REGEX(?value, "http[s]?[:]")) 7 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 8 | } 9 | 10 | -------------------------------------------------------------------------------- /src/sparql/labels.sparql: -------------------------------------------------------------------------------- 1 | PREFIX owl: 2 | PREFIX rdf: 3 | PREFIX rdfs: 4 | 5 | SELECT ?x (STR(?lab) AS ?label) WHERE { 6 | ?x rdf:type owl:Class . 7 | OPTIONAL {?x rdfs:label ?lab} 8 | } 9 | ORDER BY ?x 10 | -------------------------------------------------------------------------------- /src/sparql/multiple-replaced_by-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX replaced_by: 2 | 3 | SELECT DISTINCT ?entity ?property ?value WHERE { 4 | VALUES ?property { 5 | replaced_by: 6 | } 7 | ?entity ?property ?value1 . 8 | ?entity ?property ?value2 . 9 | FILTER(?value1!=?value2) 10 | BIND(CONCAT(str(?value1), CONCAT("|", str(?value2))) as ?value) 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/sparql/nolabels-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX owl: 2 | PREFIX rdf: 3 | PREFIX rdfs: 4 | PREFIX replaced_by: 5 | 6 | SELECT ?cls WHERE { 7 | ?cls a owl:Class 8 | FILTER NOT EXISTS {?cls rdfs:label ?lab} 9 | FILTER NOT EXISTS {?cls replaced_by: ?replCls} 10 | FILTER (!isBlank(?cls)) 11 | FILTER ( regex(str(?cls), "^http://purl.obolibrary.org/obo/GO_")) 12 | } 13 | ORDER BY ?cls 14 | -------------------------------------------------------------------------------- /src/sparql/obsolete-violation.sparql: -------------------------------------------------------------------------------- 1 | prefix xsd: 2 | PREFIX owl: 3 | PREFIX rdf: 4 | PREFIX rdfs: 5 | PREFIX replaced_by: 6 | PREFIX consider: 7 | 8 | SELECT ?cls ?clsLabel ?rule WHERE { 9 | ?cls a owl:Class ; 10 | rdfs:label ?clsLabel ; 11 | owl:deprecated "true"^^xsd:boolean 12 | { 13 | { 14 | FILTER ( ! regex(str(?clsLabel), "^obsolete ") ) 15 | BIND ("obsolete label must start with obsolete" AS ?rule) 16 | } 17 | UNION 18 | { 19 | ?cls rdfs:subClassOf ?parent 20 | BIND("no logical axioms for obsolete" AS ?rule) 21 | } 22 | } 23 | } 24 | ORDER BY ?cls 25 | -------------------------------------------------------------------------------- /src/sparql/obsoletes.sparql: -------------------------------------------------------------------------------- 1 | prefix xsd: 2 | PREFIX owl: 3 | PREFIX rdf: 4 | PREFIX rdfs: 5 | PREFIX replaced_by: 6 | PREFIX consider: 7 | 8 | SELECT ?cls ?replCls ?consCls WHERE { 9 | ?cls a owl:Class ; 10 | owl:deprecated "true"^^xsd:boolean . 11 | OPTIONAL {?cls replaced_by: ?replCls} 12 | OPTIONAL {?cls consider: ?consCls} 13 | } 14 | ORDER BY ?cls 15 | -------------------------------------------------------------------------------- /src/sparql/owldef-self-reference-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX oio: 3 | PREFIX owl: 4 | PREFIX rdfs: 5 | 6 | SELECT ?term WHERE { 7 | { ?term owl:equivalentClass [ owl:intersectionOf [ rdf:rest*/rdf:first ?term ] ] } 8 | UNION 9 | { ?term owl:equivalentClass [ owl:intersectionOf [ rdf:rest*/rdf:first [ owl:someValuesFrom ?term ] ] ] } 10 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/sparql/owldef-violation.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix owl: 3 | prefix rdfs: 4 | 5 | WELECT * 6 | WHERE { 7 | ?c rdfs:subClassOf ?d ; 8 | owl:equivalentClass [ 9 | owl:intersectionOf TODO 10 | -------------------------------------------------------------------------------- /src/sparql/postprocess-module.ru: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX rdfs: 3 | PREFIX dc: 4 | PREFIX owl: 5 | 6 | 7 | DELETE { 8 | ?ontology ?ontology_annotation_property ?ontology_annotation_value . 9 | } 10 | 11 | WHERE { 12 | ?ontology rdf:type owl:Ontology . 13 | ?ontology ?ontology_annotation_property ?ontology_annotation_value . 14 | FILTER(?ontology_annotation_property != dc:source && ?ontology_annotation_property != rdf:type) 15 | 16 | } -------------------------------------------------------------------------------- /src/sparql/preprocess-module.ru: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | PREFIX rdfs: 3 | PREFIX dc: 4 | PREFIX owl: 5 | 6 | 7 | #DELETE { 8 | # ?ontology ?ontology_annotation_property ?ontology_annotation_value . 9 | #} 10 | 11 | INSERT { 12 | ?ontology dc:source ?version_iri . 13 | } 14 | 15 | WHERE { 16 | ?ontology rdf:type owl:Ontology ; 17 | owl:versionIRI ?version_iri . 18 | #OPTIONAL { 19 | # ?ontology ?ontology_annotation_property ?ontology_annotation_value . 20 | #} 21 | 22 | } -------------------------------------------------------------------------------- /src/sparql/redundant-subClassOf-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX oio: 2 | PREFIX owl: 3 | PREFIX rdfs: 4 | 5 | SELECT ?term ?xl ?y ?yl ?z ?zl WHERE { 6 | ?term rdfs:subClassOf ?y ; 7 | rdfs:label ?xl . 8 | ?y rdfs:subClassOf+ ?z ; 9 | rdfs:label ?yl . 10 | ?term rdfs:subClassOf ?z . 11 | ?z rdfs:label ?zl . 12 | 13 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/sparql/simple-seed.sparql: -------------------------------------------------------------------------------- 1 | prefix owl: 2 | 3 | SELECT DISTINCT ?cls WHERE 4 | { 5 | {?cls a owl:AnnotationProperty .} 6 | UNION 7 | {?cls a owl:ObjectProperty .} 8 | UNION 9 | {?x ?cls} 10 | UNION 11 | {?x ?cls} 12 | FILTER (!isBlank(?cls)) 13 | } 14 | -------------------------------------------------------------------------------- /src/sparql/subsets-labeled.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix owl: 3 | prefix inSubset: 4 | prefix rdfs: 5 | 6 | SELECT ?subset ?clsLabel 7 | WHERE 8 | { 9 | ?cls a owl:Class ; 10 | inSubset: ?subset ; 11 | rdfs:label ?clsLabel 12 | } 13 | ORDER BY ?subset ?cls 14 | -------------------------------------------------------------------------------- /src/sparql/synonyms.sparql: -------------------------------------------------------------------------------- 1 | prefix owl: 2 | prefix oboInOwl: 3 | prefix rdfs: 4 | 5 | SELECT ?cls ?pred ?val ?synType 6 | WHERE 7 | { ?cls ?pred ?val ; 8 | a owl:Class . 9 | FILTER ( 10 | ?pred = rdfs:label || 11 | ?pred = oboInOwl:hasRelatedSynonym || 12 | ?pred = oboInOwl:hasNarrowSynonym || 13 | ?pred = oboInOwl:hasBroadSynonym || 14 | ?pred = oboInOwl:hasExactSynonym 15 | ) 16 | 17 | OPTIONAL { 18 | [ 19 | a owl:Axiom ; 20 | owl:annotatedSource ?cls ; 21 | owl:annotatedProperty ?pred ; 22 | owl:annotatedTarget ?val ; 23 | oboInOwl:hasSynonymType ?synType 24 | ] 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/sparql/taxon-range-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX never_in_taxon: 2 | PREFIX present_in_taxon: 3 | 4 | SELECT ?term ?property ?taxon 5 | WHERE { 6 | VALUES ?property { never_in_taxon: present_in_taxon: } 7 | ?term ?property ?taxon . 8 | FILTER (!isIRI(?taxon) || !STRSTARTS(STR(?taxon), "http://purl.obolibrary.org/obo/NCBITaxon_")) 9 | FILTER(isIRI(?term) && (STRSTARTS(str(?term), "http://purl.obolibrary.org/obo/GENO_"))) 10 | } 11 | 12 | -------------------------------------------------------------------------------- /src/sparql/term-tracker-uri-violation.sparql: -------------------------------------------------------------------------------- 1 | PREFIX xsd: 2 | PREFIX term_tracker_item: 3 | 4 | SELECT ?term ?term_tracker ?term_tracker_type WHERE { 5 | ?term term_tracker_item: ?term_tracker . 6 | FILTER(DATATYPE(?term_tracker) != xsd:anyURI) 7 | BIND(DATATYPE(?term_tracker) as ?term_tracker_type) 8 | } 9 | 10 | -------------------------------------------------------------------------------- /src/sparql/terms.sparql: -------------------------------------------------------------------------------- 1 | PREFIX rdf: 2 | prefix owl: 3 | SELECT DISTINCT ?term 4 | WHERE { 5 | { 6 | ?s1 ?p1 ?term . 7 | FILTER(?p1!=rdf:type) 8 | } 9 | UNION 10 | { 11 | ?term ?p2 ?o2 . 12 | FILTER(?o2!=owl:Ontology) 13 | } 14 | FILTER(isIRI(?term)) 15 | } -------------------------------------------------------------------------------- /src/sparql/trailing-whitespace-violation.sparql: -------------------------------------------------------------------------------- 1 | # home: hp/sparql/trailing-whitespace-violation.sparql 2 | prefix owl: 3 | prefix rdfs: 4 | 5 | SELECT ?c ?p ?x WHERE 6 | { 7 | ?c ?p ?x . 8 | 9 | FILTER( regex(STR(?x), "^ ") || regex(STR(?x), " $") ) 10 | FILTER( ?p != owl:annotatedTarget ) 11 | } 12 | -------------------------------------------------------------------------------- /src/sparql/xref-syntax-violation.sparql: -------------------------------------------------------------------------------- 1 | # home: hp 2 | prefix hasDbXref: 3 | prefix oio: 4 | prefix owl: 5 | prefix rdfs: 6 | 7 | SELECT ?c ?x WHERE 8 | { 9 | ?c hasDbXref: ?x . 10 | 11 | FILTER( regex(STR(?x), " ") || regex(STR(?x), ";") || STR(?x) = "" ) 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/sparql/xrefs.sparql: -------------------------------------------------------------------------------- 1 | prefix oio: 2 | prefix owl: 3 | 4 | SELECT ?cls ?xref WHERE 5 | { 6 | ?cls a owl:Class ; 7 | oio:hasDbXref ?xref 8 | } 9 | --------------------------------------------------------------------------------