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.
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
Use bmt-lite almost exactly like you would use bmt itself: https://github.com/biolink/biolink-model-toolkit#usage
pip install -rrequirements-build.txt
./build.sh
pip install -rrequirements-test.txt
tox
pip install twine
twine upload dist/*