Skip to main content

utilities for working with the NIF ontology, SciGraph, and turtle

Project description

pyontutils

PyPI version Build Status Coverage Status

python utilities for working with ontologies

Installation

pyontutils is slowly approaching stability. You can obtain it and other related packages from pypi and install them as you see fit (e.g. pip install --user pyontutils). If you need a bleeding edge version I reccomend installing it into your environment (virtual or otherwise) using pip install --user --editable .[dev,test] run from from your local copy of this repo.

Configuration

pyontutils makes use of 3 configuration files:

  1. ~/.config/pyontutils/config.yaml. This file can be used to augment the varibles defined in auth-config.py. For more details about the config see the orthauth guide.
  2. secrets.yaml that you can put wherever you want by editing the auth-stores: secrets: path: entry in config.yaml. The file mode needs to be set to 0600 so that only you can read and write it. It is also advisable to place it inside a folder with a mode set to 0700 since some editors do not preserve file modes. orthauth will fail loudly if this happens.
  3. ./nifstd/scigraph/curie_map.yaml or ~/.config/pyontutils/curie_map.yaml if a pyontutils git repository is not found. pyontutils will retrieve the latest version of this file from github on first run if it cannot find a local copy. The full list of locations that are searched for curie_map.yaml are specified in auth-config.py.

If you are going to use the SciCrunch SciGraph production instance follow the instructions in the sparc curation setup guide to obtain an API key and put it in the right place. In short you can set the key in your secrets file and specify the path to it in config.yaml under the =scigraph-api-key= variable. Alternately you can set the key using the SCICRUNCH_API_KEY environment variable (e.g., by running export SCICRUNCH_API_KEY=$(cat path/to/my/apikey)) or by whatever means you prefer for managing your keys.

Development Installation

From the directory that contains this readme run the following. Refer to .travis.yml for full details.

for f in {librdflib,htmlfn,ttlser,.,neurondm,nifstd}; do pushd $f; pip install --user --pre --editable . ; popd; done

If you need even more information there is fairly exhaustive doccumentation located in the sparc curation setup doc.

Requirements

This repo requires PyPy3 or >=Python3.6. See and setup.py and Pipfile for additional requirements. ontload requires Java8 and >=maven3.3 in order to build SciGraph. parcellation requires FSL to be installed or you need to obtain the atlases in some other way. In order to build the packages required by this repo you will need gcc (and toolchain) installed and will need to have the development packages for libxml installed. To build the development dependencies you will also need the development packages for postgresql, and protobuf installed on your system. Building the documentation for the ontology requires pandoc and emacs along with orgstrap. See .travis.yml for an example of how to bootstrap a working dev environment. Alternately see pyontutils-9999.ebuild and nifstd-tools-9999.ebuild in tgbugs-overlay.

Utility Scripts

pyontutils provides a set of scripts that are useful for maintaining and managing ontologies using git, and making them available via SciGraph. Note that if you choose the development installation option you will need to ln -sT the scripts to your preferred bin folder. For the full list please see the documentation.

  1. ttlfmt Reserialize ontology files using deterministic turtle (spec).
  2. ontutils Various useful and frequently needed commands for ontology processes as well as less frequent refactorings.
  3. ontload Load an ontology managed by git into SciGraph for easy deployment of services.
  4. qnamefix Set qnames based on the curies defined for a given ontology.
  5. necromancy Find dead ids in an ontology and raise them to be owl:Classes again.
  6. scigraph-codegen Generate a rest client against a SciGraph services endpoint.
  7. scig Run queries against a SciGraph endpoint from the command line.
  8. graphml_to_ttl Convert yEd graphml files to ttl.
  9. ontree Run a webserver to query and view hierarchies from the ontology.

NIF-Ontology

Many of these scripts are written for working on the NIF standard ontology found here.

SciGraph

scigraph_codegen.py is code geneator for creating a python client library against a SciGraph REST endpoint. scigraph_client.py is the client library generated against the nif development scigraph instance. ontload can be used to load your ontology into SciGraph for local use.

Building releases

See release.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyontutils-0.1.15.tar.gz (233.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyontutils-0.1.15-py2.py3-none-any.whl (170.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyontutils-0.1.15.tar.gz.

File metadata

  • Download URL: pyontutils-0.1.15.tar.gz
  • Upload date:
  • Size: 233.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.6

File hashes

Hashes for pyontutils-0.1.15.tar.gz
Algorithm Hash digest
SHA256 38ce7c72969fbeb27be6d472ef5b7b47fff418a51abff22a0bc3e229c85a3152
MD5 9f4f950311f9e66ecb7de4a811e8e4ab
BLAKE2b-256 901b67cbac1f0ab65b373079ca9fbb0002849b065fbf4cafbb2b6f505083ba17

See more details on using hashes here.

File details

Details for the file pyontutils-0.1.15-py2.py3-none-any.whl.

File metadata

  • Download URL: pyontutils-0.1.15-py2.py3-none-any.whl
  • Upload date:
  • Size: 170.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.6

File hashes

Hashes for pyontutils-0.1.15-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e660124dcb831b3b5588b617c2eb5ecd38d8ed0314d23ff42d291f6ae80308be
MD5 ffc70da1e9ffa260031f4ddbe8c2f92a
BLAKE2b-256 72a4647104d188ff444d730e3f10de4167fa3b165ea9cff69474b96fa525ccb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page