{"architecture":{"activation":"GELU","dropout":0.1,"framework":"PyTorch (state_dict; LtnNet defined in predict_kd.py)","heads":{"classification":"Linear(192, 3) -> potency band logits (band is derived from predicted pKd at inference)","regression":"Linear(192, 1) -> predicted pKd"},"input_dim":3328,"training_loss":"MSE(pKd) + CrossEntropy(band) + (1 - p=2 SatAgg satisfiability of the true-band axiom)","trunk":[768,384,192]},"caveats":["External accuracy is modest: RMSE ~1.6 log units on only n=15 held-out compounds, with a systematic under-prediction bias of about -1.1 pKd units (the model was fine-tuned on Ki and evaluated on Kd - a Ki-to-Kd transfer).","Predictions are for human DPP-4 only; the protein input is fixed to the DPP-4 ESM-2 vector.","Research use only; not a substitute for experimental Kd measurement."],"external_test15_metrics":{"bias_pKd":-1.1049,"class_accuracy":0.8667,"mae_pKd":1.2758,"n":15,"rmse_pKd":1.6037,"verification":"recomputed by live inference from these exact weights on 2026-11-12: RMSE 1.6037 / MAE 1.2758 / acc 0.8667, per-compound predictions match external_ltn.csv to <5e-5"},"features":{"ligand":"Morgan fingerprint, radius 2, 2048 bits (RDKit rdFingerprintGenerator), computed on the input SMILES as given","protein":"ESM-2 650M (esm2_t33_650M_UR50D) mean-pooled embedding of the full-length human DPP-4 sequence, 1280 dims, fixed for this target; bundled in esm2_dpp4.npz (extracted from the project's compute-once ESM-2 store)","scaling":"none (raw concatenation, exactly as trained)","total_dim":3328},"model_name":"DPP-4 Kd LTN","model_type":"LTN (Logical Tensor Network-style MLP, PyTorch)","outputs":{"Kd_nM":"10^(9 - pKd)","deltaG_kcal_mol":"-1.3642 * pKd (dG = -RT*ln(10)*pKd at 298.15 K)","pKd":"predicted -log10(Kd in mol/L)","potency_class":"potent if pKd >= 7; moderate if 6 <= pKd < 7; weak if pKd < 6"},"requirements":["python>=3.10","torch (CPU is fine)","rdkit","numpy"],"target":{"chembl_target":"CHEMBL284","esm2_target_key":"ChEMBL:CHEMBL284","protein":"Dipeptidyl peptidase 4 (DPP-4), human","uniprot":"P27487"},"task":"regression: predicted pKd for human DPP-4 (single fixed target) + potency band","training_provenance":{"external_evaluation":"the 15 DPP-4 compounds with measured Kd, never trained on (see external_ltn.csv)","pipeline":"two-stage transfer learning (SPARCq/Cheaha job 801, suite runner v6)","stage1":"pretraining on all-target Kd corpus: 86,569 compound-target rows (ChEMBL + BindingDB + PubChem + PDBbind), lr 1e-4, batch 256, up to 60 epochs, early stop patience 8; stage-1 held-out test RMSE 0.8865 / R2 0.6969 (n=8,658)","stage2":"fine-tune of all weights on DPP-4 Ki: 555 compounds (pKi used as the fine-tune label), lr 5e-5, batch 64, up to 40 epochs, early stop patience 8; the 15 external-test Kd compounds were blocked by molecule identity from every training stage (overlap verified exactly 0)"},"weights_file":"ltn_stage2.pt","weights_stage":"stage 2 (DPP-4 Ki fine-tuned) - the deployment weights"}