# Family Foundation Model > Two pairwise preference comparators over one multi-family roster. Both answer > a question about preference and differ in whose preference is asked about. The > compound-preference model is given one target and two compounds and returns > which compound the target prefers. The target-preference model is given one > compound and two targets and returns which target the compound prefers. Those > two targets come from different protein families or from one family, and the > two kinds of comparison are measured separately and never pooled. Each answer > is an ordering with one number attached, its strength, from 0.5 to 1.0. The > strength is its own confidence: the further from 0.5, the more often the > ordering is right. Live at https://familyfoundationmodel.com Model release 21 September 2026. ChEMBL 37 alone, so anyone can reproduce the training set. ## What "prefers" means Every comparison is endpoint matched, so the two readings always share one endpoint and a Ki is never ranked against an IC50. Every reading is converted to pActivity, minus the log of a concentration, so a larger value means a lower concentration for all five endpoints, whether the reading is an inhibition endpoint or an agonist one. The operational statement: both readings in a comparison come from the same target and the same endpoint, and the model predicts which one is active at the lower concentration. It ranks a pair. It does not predict a value, and "binds more tightly" would overclaim, since the endpoints include IC50, EC50 and Kb as well as Ki and Kd. ## Compound preference, LSL One target, two compounds: which compound the target prefers. Row layout is ligand, sequence, ligand, 2,556 columns. Each prediction averages both argument orders, so compare(A,B) + compare(B,A) = 1 exactly and a compound against itself returns exactly 0.5. Holdout is compound-disjoint on BOTH compounds by InChIKey, with straddling comparisons discarded. - Accuracy: 0.71 over 65,725 held-out comparisons on 43,961 compounds - Training: 1,827,578 comparisons over 474,708 compounds and 2,077 targets - Servable: 2,079 targets across 32 protein families Accuracy against prediction strength, cumulative: - at or above 0.60: 0.84 on 42.8 percent of comparisons, n 28,097 - at or above 0.70: 0.92 on 17.4 percent of comparisons, n 11,435 - at or above 0.80: 0.96 on 6.1 percent of comparisons, n 3,995 - at or above 0.90: 0.98 on 1.2 percent of comparisons, n 794 Each compound comparison is anchored at one target, and the family span lives in the roster the estimator serves. The two comparators reach the same breadth from opposite directions: the target comparison crosses a boundary inside one comparison, the compound comparison carries the whole roster inside one model. Per family, at no gate: - Kinase: 0.69 on 9,585 held out - Family A G protein-coupled receptor: 0.72 on 7,266 held out - Protease: 0.71 on 3,160 held out - Transferase: 0.71 on 2,517 held out - Electrochemical transporter: 0.67 on 2,306 held out - Hydrolase: 0.70 on 2,069 held out - Fatty acid binding protein family: 0.69 on 2,019 held out - Reader: 0.72 on 2,012 held out - Other ion channel: 0.75 on 1,993 held out - Ligand-gated ion channel: 0.69 on 1,977 held out - Eraser: 0.72 on 1,974 held out - Ligase: 0.73 on 1,952 held out - Phosphatase: 0.75 on 1,944 held out - Writer: 0.80 on 1,931 held out - Oxidoreductase: 0.72 on 1,918 held out - Isomerase: 0.73 on 1,914 held out - Lyase: 0.73 on 1,893 held out - Toll-like and Il-1 receptors: 0.69 on 1,880 held out - Nuclear receptor: 0.72 on 1,871 held out - Phosphodiesterase: 0.72 on 1,829 held out - Cytochrome P450: 0.70 on 1,785 held out - Primary active transporter: 0.69 on 1,781 held out - Voltage-gated ion channel: 0.71 on 1,773 held out - Family C G protein-coupled receptor: 0.70 on 1,751 held out - Family B G protein-coupled receptor: 0.74 on 1,727 held out - Aminoacyltransferase: 0.66 on 960 held out - Frizzled family G protein-coupled receptor: 0.74 on 515 held out - Taste family G protein-coupled receptor: 0.59 on 474 held out - Calcium channel auxiliary subunit alpha2delta family: 0.62 on 434 held out - Transmembrane 1-electron transfer carriers: 0.73 on 367 held out - Group translocator: 0.72 on 148 held out ## Target preference, SLS One compound, two targets: which target the compound prefers. Row layout is sequence, ligand, sequence, 1,998 columns. The two targets come from different families or from one family; both kinds are fitted together and measured apart, and there is no pooled figure for this model. - Two targets from different families: accuracy 0.75 over 8,689 held-out comparisons on 2,195 compounds - Two different targets from one family: accuracy 0.78 over 32,738 held-out comparisons on 13,343 compounds - Baselines on the same comparisons, across families: family labels alone 0.66, the model with the ligand blinded 0.71 - Baselines within one family: family labels alone 0.50, which is chance by construction, and the model with the ligand blinded 0.67 - Training: 423,781 comparisons, 89,888 across families and 333,893 within one, over 150,571 compounds and 2,279 targets Accuracy against prediction strength, cumulative, two targets from different families: - at or above 0.60: 0.82 on 70.6 percent of comparisons, n 6,135 - at or above 0.70: 0.89 on 49.5 percent of comparisons, n 4,300 - at or above 0.80: 0.94 on 34.3 percent of comparisons, n 2,980 - at or above 0.90: 0.97 on 20.5 percent of comparisons, n 1,784 Accuracy against prediction strength, cumulative, two different targets from one family: - at or above 0.60: 0.85 on 76.1 percent of comparisons, n 24,912 - at or above 0.70: 0.91 on 56.0 percent of comparisons, n 18,318 - at or above 0.80: 0.95 on 38.3 percent of comparisons, n 12,529 - at or above 0.90: 0.98 on 20.8 percent of comparisons, n 6,821 Within one family, the families with 200 or more held-out comparisons, with the number of distinct proteins behind each figure: - Family A G protein-coupled receptor: 0.76 on 5,412 held-out comparisons over 160 proteins - Kinase: 0.73 on 4,979 held-out comparisons over 360 proteins - Protease: 0.81 on 3,889 held-out comparisons over 134 proteins - Lyase: 0.77 on 2,792 held-out comparisons over 15 proteins - Eraser: 0.79 on 2,315 held-out comparisons over 36 proteins - Transferase: 0.85 on 1,993 held-out comparisons over 90 proteins - Cytochrome P450: 0.76 on 1,755 held-out comparisons over 28 proteins - Nuclear receptor: 0.81 on 1,601 held-out comparisons over 33 proteins - Electrochemical transporter: 0.79 on 1,207 held-out comparisons over 45 proteins - Oxidoreductase: 0.79 on 1,137 held-out comparisons over 86 proteins - Phosphodiesterase: 0.80 on 938 held-out comparisons over 22 proteins - Reader: 0.83 on 924 held-out comparisons over 53 proteins - Toll-like and Il-1 receptors: 0.94 on 922 held-out comparisons over 6 proteins - Voltage-gated ion channel: 0.81 on 811 held-out comparisons over 48 proteins - Hydrolase: 0.77 on 600 held-out comparisons over 70 proteins - Phosphatase: 0.74 on 575 held-out comparisons over 40 proteins - Ligand-gated ion channel: 0.69 on 250 held-out comparisons over 31 proteins ## How to read a score Read it as an ordering between the two things given, with its strength and the accuracy of that strength band. Targets are named by UniProt accession, because gene symbols are many-to-many against accessions and the failure is silent. Accuracy also depends on the true separation between the two measured values. For target preference across families, 0.59 under half a log and 0.91 beyond two logs; within one family, 0.64 and 0.92. ## What they are for Compound preference triages a hit list or a congeneric series at one target. Target preference is off-target triage and repurposing. Breadth across families is not a toxicity claim: it partly records how many assay panels a compound went through. ## Pages - [Overview](https://familyfoundationmodel.com/): both models and their headline results - [Rank compounds](https://familyfoundationmodel.com/rank-compounds.html): the compound-preference tool and the per-family table at every gate - [Rank targets](https://familyfoundationmodel.com/rank-targets.html): the target-preference tool - [Methods](https://familyfoundationmodel.com/methods.html): data, pairing rules, split, features - [Targets](https://familyfoundationmodel.com/targets.html): every servable target and its family - [Limitations](https://familyfoundationmodel.com/limitations.html): where they are weakest - [Download the models](https://familyfoundationmodel.com/models.html): both bundles, Apache 2.0 code and CC BY-SA 4.0 weights - Talk to us: the button in the header on every page mails a message to a person ## Family deep dives, beside these models These two models are the broad instrument: two separately fitted models over one roster of 34 protein families, trained on ChEMBL 37 alone. Two sibling sites do the opposite deliberately, taking one family and going deep on data assembled for it. They run the same two layouts, so the questions match; what differs is the trade, depth in one family against reach across many. - [GPCR Foundation Model](https://gpcrfoundationmodel.com/): G protein-coupled receptors, built on ChEMBL plus Eidogen-curated GPCR data. - [Kinase Foundation Model](https://kinasefoundationmodel.com/): protein kinases, primary measurements from the Eidogen-Sertanty Kinase Knowledgebase, with ChEMBL used to cross-validate rather than to train. Use a deep dive when every target of interest sits in its family. Use these when the comparison itself crosses the boundary. ## The code, and extending a model The command line tools, the inference API and the extension tools are at https://github.com/smuskal/ffm, Apache 2.0, with the weights under CC BY-SA 4.0. `install.sh` builds the environment on Python 3.10 to 3.13, checks that RDKit computes the ligand features the forests were fitted on, fetches both bundles and replays the reference predictions each one ships. Either released model can be extended with measurements a user holds, locally: trees fitted on their data are merged into the released forest, their structures and activity values are never written into the bundle, and a target the model has never seen can be added from its amino acid sequence. The guide is https://github.com/smuskal/ffm/blob/main/extend/EXTEND.md. An extended model's accuracy must be measured on the user's own held-out comparisons; the figures on this site describe the released bundles. ## The paper, and a video overview "Two Comparators May Be All We Need", Steven M. Muskal. bioRxiv, first posted 21 September 2026: https://doi.org/10.64898/2026.09.15.751854 The DOI always resolves to the current version. Video: "Two Comparisons May Be All We Need: A Foundation Model for Drug Discovery That Ranks, Not Predicts", https://www.youtube.com/watch?v=VWMWP5hi3uA The model is described for a general reader, with this video and the paper, at https://www.stevenmuskal.com/projects.html#foundation-models ## Related - [Family Foundation Model deep dives](https://familyfoundationmodel.com/#deep-dives) - [Code and extension tools](https://github.com/smuskal/ffm) - [PharmCast](https://pharmcast.ai/) - [Reverse Screen](https://reversescreen.ai/): given a molecule, the proteins it might interact with. Paper: https://www.biorxiv.org/content/10.64898/2026.09.09.750461v1. Video: https://www.youtube.com/watch?v=mFRBfK6iv_w - [ToxPred](https://toxpred.ai/): toxicity by consortium. Its cross-family reach signal takes its protein family assignments from this model's roster. - [PredictHIA](https://predicthia.ai/): percent human intestinal absorption from a drawn structure, and cyclic peptide membrane permeability on two assay arms that are never pooled. - [Steven M. Muskal](https://www.stevenmuskal.com/): principal author. Projects, publications and videos. - [Eidogen-Sertanty](https://eidogen-sertanty.com/)