KinaseFoundationModel
Unlisted preview

Download the models

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.

The weights are licensed separately from the code. Research and evaluation only: free for academic and non-profit research and teaching. Full terms travel with every bundle as LICENSE-MODELS.txt, and downloading is accepting them.

Two limits apply to everyone, including academic and non-profit users. This licenses you to run a model trained on the Kinase Knowledgebase. It grants no licence to the Knowledgebase itself, to any part of it, or to any data in it. And it does not permit reverse engineering, nor any attempt to extract, reconstruct, infer or approximate the Knowledgebase from the weights or their outputs, including by systematic or bulk querying.

Install once, then download once

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.

git clone https://github.com/smuskal/KFM.git cd KFM ./install.sh

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.

./kfm.sh potency -t ABL1 -l @examples/ABL1_potency.smi ./kfm.sh where # where the models are, and the RAM each needs

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.

What hardware you need

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:

ModelOn diskRAM once loadedLoad time
Version 2: potency0.76 GB5.0 GB~8 s
Version 2: selectivity2.84 GB22 GB~27 s
Version 1: pointwise ranker0.86 GB6.4 GB~8 s
A 16 GB laptop runs version 1 and potency comfortably, but cannot run selectivity. It will thrash swap for several minutes and then be killed by the operating system, which looks like a broken model rather than a machine that is too small. Selectivity wants 32 GB, which is why the service behind this site runs it on a 32 GB instance.

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.

The bundles

Loading…

What each model can and cannot do: limitations. Enquiries: Eidogen-Sertanty.