Model release 13 September 2026. Trained on ChEMBL 37 alone.
The whole model runs on your own machine. Nothing is sent anywhere, and the bundle carries everything it needs to score.
| Quantity | Value |
|---|---|
| Forest on disk | 0.09 GB |
| Resident once loaded | about 1.0 GB |
| Load time | under 4 s |
| Targets it can score | 1,879 |
| Held-out accuracy | 0.750 |
A laptop with 8 GB runs this comfortably. No GPU is used at any point.
The command line tools, the inference API and everything needed to rebuild the training set are on GitHub: github.com/smuskal/ffm.
That installs the environment with the versions pinned below and fetches the model bundle, then proves it works by replaying the 30 reference predictions that ship with it. If they do not reproduce to 1e-6 it fails rather than reporting success.
Targets are named by UniProt accession. Gene symbols are many-to-many against accessions and the failure is silent, so the accession is what the model is given. The full roster is on the targets page.
| File | What it is |
|---|---|
familyfm_selectivity.joblib | the forest |
predict.py | the inference API; load it by file path, nothing to install |
sequence_vectors.npz | ESM2 vectors for every servable target, precomputed |
sequence_index.json | sequence key to row |
target_index.json | accession to sequence key, and the family per target |
MANIFEST.json | provenance, hyperparameters, measured performance |
reference_predictions.json | 30 fixed inputs and the outputs this bundle produced |
heldout_scored.csv | every held-out comparison with its probability, so the headline can be recomputed |
Because heldout_scored.csv ships with the bundle, every number on
this site can be recomputed from the download without rerunning the model.
A joblib forest is a pickled object graph, and a different scikit-learn either refuses to load it or loads it and scores differently. RDKit computes 1,024 of every ligand block's 1,038 dimensions, so a different RDKit changes the fingerprint and moves every score with nothing to detect it.
| Package | Pinned |
|---|---|
| numpy | 2.2.6 |
| python | 3.10.15 |
| sklearn | 1.7.2 |
The code is Apache 2.0. The model weights are CC BY-SA 4.0, which is the share-alike term ChEMBL itself carries: this model is trained on ChEMBL 37 and nothing else, so the weights inherit its attribution and share-alike conditions. Cite ChEMBL alongside this model in anything you publish.
The sibling Kinase Foundation Model ships its weights under research-and-evaluation terms instead, because it is trained on a commercial database. This one is not, which is why it can be downloaded freely.
Model release {F["build"]}. The forest, the reference
predictions and the held-out scores in the bundle all come from that build, and
the checksum in MANIFEST.json is what the installer verifies.