Get metadata and ontological information about biomedical entities.
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.
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
.
$ 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
.
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 .
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.
The code in this package is licensed under the MIT License.
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.
This project has been supported by the following grants:
Funding Body | Program | Grant |
---|---|---|
DARPA | Automating Scientific Knowledge Extraction (ASKE) | HR00111990009 |
This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-snekpack template.