/bmt-lite

Primary LanguagePythonMIT LicenseMIT

Biolink model toolkit - lite!

bmt-lite is a zero-dependency near-clone of a subset of bmt. It is backed by a pre-populated cache of input/output pairs for many of the more commonly used bmt methods.

bmt alone occupies ~127 KB on disk, but with all of its dependencies it takes up ~36.2 MB. On the other hand, bmt-lite-1.8.2 is ~295 KB on disk, of which ~254 KB is the cached data. To initialize a Toolkit from bmt takes ~2 seconds, while initializing a Toolkit from bmt-lite takes ~2e-7 seconds. Because all of bmt-lite's behavior is pre-cached, it does not require the internet at run time.

bmt bmt-lite (-1.8.2)
size 127 KB 295 KB
size w/ deps 36.2 MB 295 KB
init time 2 sec 2e-7 sec

* all measurements made on a typical laptop on a random Tuesday afternoon

Note: bmt-lite does not implement all of the functionality of bmt. Feature requests (or pull requests?!) are welcome. In addition, the existing functionality may differ slightly; for example, bmt-lite's element-name/id format conversions are known to differ for some special cases.

Installation

You must install a specific "flavor" of bmt-lite corresponding to the Biolink model version that you want. Versions 1.7.0 - 2.2.5 are currently available.

For example,

pip install bmt-lite-1.8.2

Usage

Use bmt-lite almost exactly like you would use bmt itself: https://github.com/biolink/biolink-model-toolkit#usage

Development

Building

pip install -rrequirements-build.txt
./build.sh

Testing

pip install -rrequirements-test.txt
tox

Publishing

pip install twine
twine upload dist/*