oakx-grape
Details
GitHub | INCATools/oakx-grape |
Language | Python |
Description | Experimental OAK plugin for Grape |
Dependencies
External Dependencies
Package | Version |
---|---|
python | >=3.9,<3.12 |
bioregistry | ^0.5.136 |
tox | ^3.25.1 |
click | ^8.1.3 |
importlib | ^1.0.4 |
scipy | ^1.9.0 |
oaklib | ^0.1.43 |
grape | * |
ensmallen | 0.8.28 |
sphinx | {'version': '^5.3.0', 'extras': ['docs']} |
sphinx-autodoc-typehints | {'version': '^1.19.4', 'extras': ['docs']} |
sphinx-click | {'version': '^4.3.0', 'extras': ['docs']} |
myst-parser | {'version': '^0.18.1', 'extras': ['docs']} |
furo | {'version': '^2022.9.29', 'extras': ['docs']} |
Documentation
oakx-grape
🌳 🍇 Grape wrapper for OAK 🌳 🍇
ALPHA
Usage
Macbook users with M1 processor need to do a few extra steps as follows:
- Download Anaconda.
conda create --name oakx-grape-env python=3.9
conda activate oakx-grape-env
pip install poetry
poetry install
The steps below are common to everyone.
pip install oakx-grape
poetry run runoak -i grape:sqlite:obo:pato relationships --direction both shape
Install NVM + NPM
These instructions help setup nvm and npm on one's system.
Install GraphViz and OboGraphViz
brew install graphviz
npm install -g obographviz
How it works
This plugin implements a grape wrapper. The wrapper in fact wraps two adapters:
- An adaptor to ensmallen/grape, for performing performance-intensive graph operations
- An OAK adapter for handling everything else, including lookup by labels, search, predicate filtering, etc
There are two choices of selector:
grape:kgobo:{go,pato,uberon,...}
grape:OAK-SELECTOR
with the first pattern, the grape graph is loaded from kgobo, and the oak adapter is loaded from semantic sql
with the second, you can most existing existing OAK adapters:
- sqlite/semsql
- obo
- rdf/owl
Note you CANNOT use a backend like ubegraph or bioportal that relies on API calls
The idea is we will be able to run a notebook like this:
https://github.com/INCATools/ontology-access-kit/blob/main/notebooks/Monarch/PhenIO-Tutorial.ipynb
With the semsim part handled by OAK
Acknowledgements
This cookiecutter project was developed from the oakx-plugin-cookiecutter template and will be kept up-to-date using cruft.