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 the probability that one side wins. That probability carries a direction and a confidence, and accuracy rises both with that confidence and with how far apart the two really are, whether that is two compounds on one kinase or two kinases on one compound.

Version 2, the current release → 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 prioritisation 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 prioritisation 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 the probability that ligand A is the more potent of the two against that sequence. 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 the probability that protein A binds it more tightly. 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 two probabilities that sum to 1, and the spread between them is a confidence signal whose reliability 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.

Version 2, the current release

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 binds this kinase more tightly?

ligand A sequence ligand B  · 2,556 numbers in one row
69.3%accuracy on the ChEMBL test set, over 1,836,100 comparisons across 477 targets, as reported.
87.8%accuracy 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
75.3%accuracy on 3,137,588 unseen ChEMBL comparisons
92.3%accuracy 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 57.6% and 62.2%. 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 binds tighter to B binds tighter. 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 protein A has greater affinity to the ligand to protein B has greater affinity. The worked case is dasatinib between ABL1 and GSK3B.
Selectivity. The two proteins occupy fixed positions, and the position is the question.

Read the version 2 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 version 2 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 →

Beyond kinases

Nothing in the method is specific to kinases. The featuriser, 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 run that end to end once, as a proof of concept, porting both layouts to GPCRs against a ChEMBL pull of 1.09 million activity rows over 405 receptors. Every part of the modelling core ran unmodified. Those results are being re-measured and no accuracy is quoted for them here; what the exercise established is that the method carries across a family, not how well it performed on this one.

The procedure →

Version 1: where this started

The original model is a pointwise scorer: one kinase and one ligand per row, returning a number on the pIC50 scale. Comparisons were made afterwards, by a wrapper that subtracted two independent scores. It is the work version 2 grew out of, and it remains published in full, but it is a different architecture answering a different question, and its numbers are not comparable to version 2's line by line.

Legacy · pointwise scorer

What pIC50 is predicted for this compound against one kinase?

sequence + ligand a score · comparisons by subtraction, outside the model
478kinases in the panel
425,524training measurements
3.7×top-decile enrichment on compounds from a different source

Rank with version 1 Full results Limitations

How the version 1 model works: an ABL1 kinase sequence is encoded by ESM2 into 480 numbers, each compound into a fingerprint plus size and atom counts; the same fitted random forest scores kinase plus ligand A and kinase plus ligand B in two independent runs, and a comparison wrapper subtracts the scores to decide which binds tighter.
Version 1. The forest receives one kinase vector and one ligand per prediction, never both ligands together; the comparison happens outside it. No structure, docking or binding-site definition is used. The ABL1 domain is drawn from PDB 1IEP only for context.
Read version 1 per target, never in aggregate. Performance is not uniform across the panel, and a minority of targets perform at or below chance. The version 1 limitations page names them individually rather than folding them into an average, and states what the model does not do.

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, coloured 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 neighbours 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

Version 2

Version 1

Method

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