KinaseFoundationModel

Rank compounds against a kinase.
Rank kinases for a compound.

Two models, one question each, both conditioned on the kinase’s amino-acid sequence. Neither estimates a potency first: the whole comparison goes into a single input row, in a fixed order, and the model returns which side wins, with a prediction strength. That strength is its own confidence, and accuracy rises both with it and with how far apart the two really are, whether that is two compounds on one kinase or two kinases on one compound.

How the models work → Rank compounds How we got there

Why comparison

Ask the question the workflow actually asks, and the same experiments yield a massive increase in training examples.

Compound prioritization in a screening campaign proceeds through repeated comparison operations: which of these two compounds to source or make next, which of these two kinases to counter-screen first. We therefore built models that behave as comparison operators, not only because prioritization ultimately relies on comparison, but because doing so massively expands the number of training examples an already large corpus of experimental data can provide.

The arithmetic is the point. A target measured against n ligands supports n(n−1)/2 comparisons, and because position in the row carries the question, each one is presented in both orders, which cancels the halving. The training set is every ordered pair: n(n−1) rows from n measurements.

1,000 → 999,000 One kinase screened against 1,000 compounds becomes 999,000 training rows from 1,000 experiments.
841,123 Excerpt. Kinase inhibition measurements drawn from the Eidogen-Sertanty Kinase Knowledgebase, not the full database.
2.2 billion Comparisons that excerpt supports at corpus scale.

No new experiments. The same measurements, posed as the question the screening cascade was always asking.

The approach

A protein sequence is encoded by ESM2 into 480 numbers. A compound becomes a 1,024-bit Morgan count fingerprint plus 14 descriptors covering size, topology and composition. Neither half requires a structure, a docked pose or a binding-site definition. What varies between the models is what occupies which position in the row, and the position is the question.

ligand A sequence ligand B

Two compounds and one kinase. The model returns which ligand is the more potent of the two against that sequence, with the strength of that call. This is the ordering a medicinal chemist works from when triaging a series against a single target.

sequence A ligand sequence B

Two kinases and one compound. The model returns at which kinase the compound is more potent, with the strength of that call. This is the selectivity question, and it is the one a per-target scorer structurally cannot answer.

Why the comparison has to be inside the row. The obvious alternative is to predict a potency for each side and subtract. That works only if the two predictions live on the same scale, and per-target scores do not: each target's model is fitted to its own assay distribution, so a difference between two of them reports scale as if it were selectivity. Training on the ordered pair removes the intermediate quantity altogether. Both models return an ordering with a prediction strength, and the reliability of that strength was measured on held-out data rather than assumed.

Everything is trained on the Kinase Knowledgebase, a curated corpus of kinase structure-activity measurements, and tested on ChEMBL comparisons the models never saw. The models rank; they do not estimate a potency. There is no predicted IC50 here to put in a table.

The models

Two models, each trained directly on ordered comparisons. They answer different questions and were tested on different sets, so their numbers are not interchangeable, including their confidence scales.

Potency ranking · LigASeqLigB

Which of two compounds is more potent at this kinase?

ligand A sequence ligand B  · 2,556 numbers in one row
0.69accuracy on the ChEMBL test set, over 1,836,100 comparisons across 477 targets, as reported.
0.88accuracy when acting only at prediction strength 0.70 and above, 15.3% of all comparisons

Rank compounds → Full results Limitations

Selectivity · SeqALigSeqB

Which of two kinases does this compound prefer?

sequence A ligand sequence B  · 1,998 numbers in one row
0.75accuracy on 3,137,588 unseen ChEMBL comparisons
0.92accuracy when acting only at prediction strength 0.70 and above, 36.8% of the set

Rank kinases → Full results Limitations

Read both headline numbers against the composition of the test set. 90.3% of the potency comparisons and 96.2% of the selectivity comparisons involve a compound that is fingerprint-identical to one the model was fitted on. On chemistry the models have not met, meaning a Morgan Tanimoto below 0.35 to anything they were fitted on, they score 0.58 and 0.62. A campaign proposing new chemistry should plan against those figures, not against the headline. Limitations, in full.
The potency model: ligand A, one kinase sequence and ligand B enter a single random forest in that fixed order. Each ligand becomes a 1,024-bit Morgan count fingerprint plus 14 descriptors; the sequence becomes 480 ESM2 numbers. The forest returns the probability that ligand A is the more potent of the two, shown on a confidence bar running from A is more potent to B is more potent. The worked case is bosutinib, measured pIC50 8.96, against a pyrazolo[3,4-d]pyrimidine at 4.50 on the ABL1 kinase domain, RCSB 3UE4.
Potency. Ligand A first, the sequence in the middle, ligand B last.
The selectivity model: sequence A, one ligand and sequence B enter a single random forest in that fixed order. Each sequence becomes 480 ESM2 numbers and the ligand becomes a 1,024-bit Morgan count fingerprint plus 14 descriptors. The forest returns two probabilities that sum to 1, shown on a bar running from the ligand is more potent at protein A to the ligand is more potent at protein B. The worked case is dasatinib between ABL1 and GSK3B.
Selectivity. The two proteins occupy fixed positions, and the position is the question.

Read the overview →

Run the models on your own machine

The ranking tools above run in the browser against our service. The same models also run locally, offline, with nothing sent anywhere, which is the practical requirement when the compounds are unpublished. The command line package is on GitHub, and one command installs the code and both models.

github.com/smuskal/KFM

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

The installer verifies itself by scoring a known case, so a bad install fails loudly rather than returning wrong numbers quietly. Two add-ons let you extend a released model with your own measurements, or fit a new model on your data alone using the same recipe; both run locally and transmit nothing. The code is open; the model weights are separately licensed for research and evaluation.

Get it on GitHub → Download the models →

The data behind the models

Both models are trained on the Kinase Knowledgebase, Q2-2026 release, and on nothing else. No ChEMBL, no BindingDB, no public aggregation. ChEMBL is held back entirely and used only to test, so every accuracy on this site is measured on measurements neither model has seen. Targets are keyed by sequence, so a mutant counts as a target in its own right. Every figure below is transcribed from the two research reports.

What was trained on

QuantityPotencySelectivity
Source measurements pulled from the Knowledgebase841,187841,187
Measurements retained after featurization840,692841,094
Distinct ligands302,99999,739
Distinct target sequences733728
Comparisons the forest was fitted on15,256,0174,340,117
Rows after the label-reversal swap40,056,4528,680,234

The comparison counts are larger than the measurement count because a comparison is built from a pair of measurements. One kinase measured against 1,000 compounds yields 499,500 ordered pairs from 1,000 experiments, which is what asking the question this way buys. The potency model draws its pairs on an even quota per target, so heavily screened kinases do not crowd out the rest.

What was tested on, held back from training

QuantityPotencySelectivity
ChEMBL measurements mapping to our panel379,587869,296
Comparisons removed because the triple was trained on163,9001,407,001
Held-out comparisons scored1,836,1003,137,588
Targets covered by the test477482

Any comparison whose exact target and ligand pair appears in training is removed before scoring, which is why the removed rows are counted here rather than folded away. Full construction, per-target breakdowns and every caveat are in the potency report and the selectivity report.

Beyond kinases

Nothing in the method is specific to kinases. The featurizer, the pairwise formulation, the label-reversal swap, the censored-value logic and the forest work on any protein family for which you have sequences and activity data. Give kfm buildnew one measurement per row, a compound with a sequence and a potency, and it builds the comparisons for you, for either model, from the same file.

We have now done that end to end and put it in public, twice, and the two go about it in opposite ways. familyfoundationmodel.com drops the family boundary altogether: one pair of models covers 34 protein families at once, kinases, GPCRs, proteases, transporters, ion channels and the epigenetic readers, writers and erasers, in two separately fitted models. The compound-preference model takes one target and two compounds and says which compound that target prefers; the target-preference model takes one compound and two targets and says which target the compound prefers, whether those two sit in different families, the off-target and repurposing question, or in one family, the selectivity question, with each kind measured on its own held-out comparisons. It is trained on ChEMBL 37 alone, which is what lets its weights be downloaded freely. The compound-preference model scores 0.71 on 65,725 held-out comparisons over 2,079 targets, and the target-preference model, over 2,279 targets, 0.75 on 8,689 comparisons between two families and 0.78 on 32,738 within one family.

This site and gpcrfoundationmodel.com are the other approach: a deep dive into one family, where the data is deeper than any single public source and the roster is narrow enough that it pays to model the family on its own terms. The GPCR site is the same featurizer, the same pairwise formulation, the same swap and the same forest, over G protein-coupled receptors instead of kinases, with every part of the modeling core running unmodified.

The distinction that matters is the data behind each. The kinase models here take their primary measurements from the Eidogen-Sertanty Kinase Knowledgebase, with ChEMBL used to cross-validate rather than to train. The GPCR models are built on ChEMBL plus Eidogen-curated GPCR data. The cross-family models are ChEMBL 37 only. So the two family sites buy depth in one family from data assembled for it, and the cross-family site buys breadth across 34 families from one reproducible public release. They answer different questions and neither replaces the other.

On its held-out set, built 12 September 2026, the GPCR potency model scores 0.77 over 762,493 comparisons across 235 targets and the selectivity model 0.80 over 24,741 comparisons across 211. As here, accuracy rises with prediction strength, and as here, every figure covers comparisons between targets the model was fitted on. Its limitations page is the more instructive half.

The cross-family models → The GPCR models → The procedure →

What the crystal structures say

The models above predict from sequence and ligand alone. Three companion pages put the deposited structures beside the same Kinase Knowledgebase measurements: one draws what each kinase ligand is doing in its pocket, one shows how far potency ranges among ligands that all crystallized in one site, and one turns the whole co-crystal record into a searchable index that answers the reverse question, which proteins a molecule might interact with.

Kinase contact map: p38 alpha with SB203580, PDB 1A9U, every hydrogen bond, halogen bond, salt bridge and stacking contact drawn with its measured distance and angle, beside the compound's Kinase Knowledgebase potency.
Kinase contact maps. MAPK14 with SB2, PDB 1A9U. Every Kinase Knowledgebase compound with a matching PDB structure, drawn with its measured interactions and its measured potency. A new structure on every visit, and a button on each KKB search hit that has one. Open this contact map
Potency ladder: fourteen protein sites, each co-crystal ligand placed by its measured potency, spanning up to six orders of magnitude within one site.
Bound is not necessarily potent. Every co-crystal ligand of a protein superposed into one frame with its measured potency. Within one pocket the values span up to a millionfold; the kinase rows, CDK2, CHK1, JAK2 and BTK, rest on Kinase Knowledgebase data. Open the figure
Every co-crystal ligand in the Protein Data Bank embedded by the pharmacophore fingerprint it presents, colored by target class.
Reverse Screen. The same deposited record read backwards: 27,797 co-crystal ligands indexed by the three-dimensional pharmacophore fingerprint each one presents, predicted from flat structure. Given a molecule, the proteins its nearest neighbors were crystallized against come back as the candidate pool, so docking runs only on those rather than on every characterized site. Screen a molecule

Reports

Method

Reports are regenerated as the models change; these links always point at the current version.