KinaseFoundationModel

How mutant data is used in training

Every mutant measurement is attached to the mutant's own amino-acid sequence, never to the wild type. This document is generated from kkb_classifier_train_full.csv, the table the published split is built FROM. The model itself fits the pair-split training table derived from it, which carries the same 13,218 mutant rows because the holdout keeps every mutant in training. So the counts below describe the mutant data the model sees, but this is not literally the file it reads.

Generated 2026-08-09 00:14 by scripts/75_mutant_proof.py from kkb_classifier_train_full.csv, 841,187 rows across 500 targets.

What this checksA compound that is potent against a wild-type kinase can be useless against a point mutant of it, and that difference is often the entire subject of the paper reporting it. Every mutant measurement must therefore be attached to the mutant sequence, never to the wild type. This page is generated from the training table the model consumes and shows that it is.
1 row(s) carry a synonymous substitutionG810G. A synonymous change leaves the protein identical to wild type, so an identical sequence is the correct result and not a defect. These are separated from the check below rather than counted as failures.
No mutant row shares a sequence with wild typeThe cache key is an md5 of the full amino-acid sequence, so two rows carry the same protein if and only if their md5 matches. Checked across every mutant row in the table: zero collisions. A mutant sequence therefore either reaches its own embedding or is dropped, and there is no path by which it silently reads the wild-type vector.

Coverage on this panel

QuantityCount
Targets in the training table500
Targets contributing mutant records55
Mutant rows13,218
Mutant rows with an embedding13,189
Mutant rows dropped for want of an embedding29
Distinct mutant sequences244
Distinct mutant sequences with an embedding235
Matched wild-type against mutant pairs5,457
What this page does NOT claimThis is a data-provenance document. It shows that each mutant measurement is filed against its own protein sequence, and nothing more. It makes no claim about how accurately the model predicts potency for mutants, and no such claim is supported anywhere in this project: the held-out evaluation set contains zero mutant rows. The holdout withholds the wild-type row of a gene-ligand pair and deliberately keeps that gene's mutants in training, because a mutant carries its own sequence and is a different protein. Mutant predictive accuracy is therefore untested, and it would need a holdout built for that purpose.
Mutant coverage is incomplete9 distinct mutant sequences have no embedding, so 29 mutant rows are dropped. Run scripts/68_embed_full_panel.py under this panel to close the gap.

Worked examples

The targets contributing the most mutant rows. The highlighted residue is the substitution, shown in both sequences at the same position.

BRAF

3 training rows carry this sequence. 1 substitution against wild type, at position 464.

wild typeRDSSDDWEIPDGQITVGQRIGSGSFGTVYKGKWHGDVAVKM
mutantRDSSDDWEIPDGQITVGQRIVSGSFGTVYKGKWHGDVAVKM
residues 444 to 484 of the wild-type sequence, substitution at position 464

EGFR

1 training rows carry this sequence. 3 substitutions against wild type, at positions 775, 790, 858.

wild typeANKEILDEAYVMASVDNPHVCRLLGICLTSTVQLITQLMPF
mutantANKEILDEAYVMASVDNPHVSRLLGICLTSTVQLIMQLMPF
residues 755 to 795 of the wild-type sequence, substitution at position 775

KIT

100 training rows carry this sequence. 1 substitution against wild type, at position 829.

wild typeCDFGLARDIKNDSNYVVKGNARLPVKWMAPESIFNCVYTFE
mutantCDFGLARDIKNDSNYVVKGNPRLPVKWMAPESIFNCVYTFE
residues 809 to 849 of the wild-type sequence, substitution at position 829

PIK3CA

108 training rows carry this sequence. 1 substitution against wild type, at position 420.

wild typeARLCLSICSVKGRKGAKEEHCPLAWGNINLFDYTDTLVSGK
mutantARLCLSICSVKGRKGAKEEHRPLAWGNINLFDYTDTLVSGK
residues 400 to 440 of the wild-type sequence, substitution at position 420
Generated by scripts/75_mutant_proof.py. Every number above is computed from the training table at generation time; none is typed into the page.