Skip to content

Latest commit

 

History

History
166 lines (124 loc) · 9.8 KB

README.md

File metadata and controls

166 lines (124 loc) · 9.8 KB

Biolookup Service logo

Biolookup

Tests Cookiecutter template from @cthoyt PyPI PyPI - Python Version PyPI - License Documentation Status DOI Code style: black Powered by the Bioregistry

Get metadata and ontological information about biomedical entities.

🔍 Querying the Biolookup Service

The Biolookup Service has an endpoint /api/lookup/<curie> for retrieving metadata and ontological information about a biomedical entity via its compact identifier (CURIE).

import requests

res = requests.get("http://localhost:5000/api/lookup/doid:14330").json()
assert res["name"] == "Parkinson's disease"
assert res["identifier"] == "14330"
assert res["prefix"] == "doid"
assert res["definition"] is not None  # not shown for brevity

The INDRA Lab hosts an instance of the Biolookup Service at http://biolookup.io, so you can alternatively use http://biolookup.io/api/lookup/doid:14330.

The same can be accomplished using the biolookup package:

import biolookup

res = biolookup.lookup("doid:14330")
assert res["name"] == "Parkinson's disease"
# ... same as before

If you've configured the BIOLOOKUP_SQLALCHEMY_URI environment variable (or any other valid way with pystow to point directly at the database for an instance of the Biolookup Service, it will make a direct connection to the database instead of using the web-based API.

🕸️ Running the Lookup App

You can run the lookup app in local mode with:

$ biolookup web --lazy

This means that the in-memory data from pyobo are used. If you have a large external database, you can run in remote mode with the --sql flag:

$ biolookup web --sql --uri postgresql+psycopg2://postgres:biolookup@localhost:5434/biolookup

If --uri is not given for the web subcommand, it uses pystow.get_config("biolookup", "sqlalchemy_uri)to look up from BIOLOOKUP_SQLALCHEMY_URI or in ~/.config/biolookup.ini. If none is given, it defaults to a SQLite database in ~/.data/biolookup/biolookup.db.

🗂️ Load the Database

$ biolookup load --uri postgresql+psycopg2://postgres:biolookup@localhost:5434/biolookup

If --uri is not given for the load subcommand, it uses pystow.get_config("biolookup", "sqlalchemy_uri)to look up from BIOLOOKUP_SQLALCHEMY_URI or in ~/.config/biolookup.ini. If none is given, it creates a defaults a SQLite database at ~/.data/biolookup/biolookup.db.

🚀 Installation

The most recent release can be installed from PyPI with:

$ pip install biolookup

The most recent code and data can be installed directly from GitHub with:

$ pip install git+https://github.com/biopragmatics/biolookup.git

To install in development mode, use the following:

$ git clone git+https://github.com/biopragmatics/biolookup.git
$ cd biolookup
$ pip install -e .

👐 Contributing

Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.

👀 Attribution

⚖️ License

The code in this package is licensed under the MIT License.

🎁 Support

The Biolookup Service was developed by the INDRA Lab, a part of the Laboratory of Systems Pharmacology and the Harvard Program in Therapeutic Science (HiTS) at Harvard Medical School.

💰 Funding

This project has been supported by the following grants:

Funding Body Program Grant
DARPA Automating Scientific Knowledge Extraction (ASKE) HR00111990009

🍪 Cookiecutter

This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-snekpack template.