Every model behind this site can be downloaded and run on your own machine.
The command line package is
github.com/smuskal/KFM; the
weights are served from here. Nothing on this page is a different model
from the one the website uses, the command line imports the
bundle's own predict.py, so it computes the same number.
LICENSE-MODELS.txt, and downloading is accepting them.
The weights are fetched by an explicit command, not by
pip install and not on every run. They are cached on
your machine and every later run reads them from disk without touching
this site.
One command installs the code and both version 2 models, then proves
it works by scoring the published worked example: if bosutinib does
not come back at 0.847 against ABL1 it fails rather than reporting success.
Add ./install.sh all to include version 1, or name a single
model to install just that one.
Everything stays inside the KFM folder: the environment in
./env, the weights in ./kfm-models. No global
environment is created or changed, nothing is written to your home
directory, and deleting the folder removes every trace. It uses conda when
it can find it and falls back to Python's own venv when it
cannot.
Always run through ./kfm.sh. It uses the environment the
installer built; a plain python is usually a base conda install
with a different scikit-learn, which cannot load these models.
They land in ./kfm-models, in the directory you run the
download from: in plain sight, not in a hidden cache under your home
directory. A later command run from a subdirectory still finds them.
KFM_HOME moves them, but do not point it inside Dropbox,
iCloud or Drive, or every machine you own will re-sync several gigabytes of
random forest.
RAM is the constraint, not disk, not cores, and no GPU is used. These are random forests pickled with joblib, and they expand about sevenfold when loaded, so the file size badly understates what a machine needs. Measured on arm64, Python 3.11, scikit-learn 1.7.2:
| Model | On disk | RAM once loaded | Load time |
|---|---|---|---|
| Version 2: potency | 0.76 GB | 5.0 GB | ~8 s |
| Version 2: selectivity | 2.84 GB | 22 GB | ~27 s |
| Version 1: pointwise ranker | 0.86 GB | 6.4 GB | ~8 s |
kfm where prints each model's requirement next to what your
machine actually has, and says which are too big. More cores make scoring
faster but none are required; a single core works, just slower.
What each model can and cannot do: limitations. Enquiries: Eidogen-Sertanty.