Introduction to pyontutils
Introduction to pyontutils
pyontutils
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:
~/.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.${HOME}/.config/orthauth/secrets.yaml
that you can put wherever you want by editing theauth-stores: secrets: path:
entry in${HOME}/.config/pyontutils/config.yaml
. The file mode needs to be set to0600
so that only you can read and write it. It is also advisable to place it inside a folder with a mode set to0700
since some editors do not preserve file modes.orthauth
will fail loudly if this happens.- https://github.com/tgbugs/pyontutils/blob/master/nifstd/scigraph/curie_map.yaml or
~/.config/pyontutils/curie_map.yaml
if apyontutils
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 forcurie_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
${HOME}/.config/pyontutils/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.
- ttlfmt Reserialize ontology files using deterministic turtle (spec).
- ontutils Various useful and frequently needed commands for ontology processes as well as less frequent refactorings.
- ontload Load an ontology managed by git into SciGraph for easy deployment of services.
- qnamefix Set qnames based on the curies defined for a given ontology.
- necromancy Find dead ids in an ontology and raise them to be owl:Classes again.
- scigraph-codegen Generate a rest client against a SciGraph services endpoint.
- scig Run queries against a SciGraph endpoint from the command line.
- graphml_to_ttl Convert yEd graphml files to ttl.
- 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.