Early drug discovery is a numbers game: researchers screen huge libraries of molecules to find the few that bind strongly to a target protein. Lab testing is slow and expensive, so AI models are increasingly used to shortlist candidates. The catch is that most models hand back a score with no indication of whether to trust it, and a confident wrong answer can send a lab down an expensive dead end.
This project, built for a Georgia Tech hackathon, tackles both halves of the problem. The model predicts how strongly a drug candidate will bind, and by running several versions of the model and measuring how much they disagree, it also reports how confident that prediction is. The shortlist can then flag or skip the low-confidence entries, so researchers spend their lab budget only on candidates the system actually trusts.
I compared three ways of teaching the model what a molecule looks like, and the most instructive result was that a small model trained from scratch for this specific task beat large general-purpose models that had seen vastly more data. Purpose-built beat pre-trained. On standard benchmarks it matched or exceeded the larger models, and its confidence scores held up: on unfamiliar data its uncertainty rose exactly as it should, and its shortlist still captured most of the best candidates while abstaining on the ones it couldn't judge.
Everything ran on a single Mac Mini on my desk. No lab cluster, no cloud budget. The full package (code, experiments, paper, poster) is documented for reproducibility. I taught myself the graph ML and bioinformatics this required, well outside my formal thermal-engineering training.
Relevant publication:
- Adhikari, D.; et al. "Uncertainty-Aware Drug-Target Affinity Prediction with Budget-Constrained Compound Ranking." IEEE International Conference on Biomedical and Health Informatics (BHI), 2026.
Technical detail
Three drug-encoding strategies were compared head to head: a small pretrained pair (ChemBERTa + ESM-2 35M), a large pretrained pair (ChemBERTa-large + ESMC-600M), and a task-specific graph isomorphism network (GIN) trained from scratch on 94,115 kinase binding pairs. Despite training on 38,000× fewer molecules, the GIN beat both pretrained encoders on every benchmark: KIBA CI 0.882 vs 0.856/0.861, zero-shot Davis CI 0.735 vs 0.655/0.665, out-of-distribution BindingDB CI 0.625 vs 0.587/0.580. It won 49 of 53 KIBA kinase subfamilies.
Uncertainty comes from a five-seed deep ensemble, with member disagreement driving selective prediction and budget-penalized ranking. The estimates are informative: mean uncertainty escalates 2.75× from in-distribution (σ̂=0.121) to out-of-distribution data (σ̂=0.333), abstention AUROC reaches 0.760, and budget-constrained screening recovers 72 of the top 100 binders at the p99 threshold. The comparison also exposed a discrimination–calibration tradeoff: the task-specific ensemble best identifies its own high-error predictions, while the large pretrained ensemble is most tightly calibrated (ECE 0.015). All experiments ran on a single Mac Mini M4 (3–6 hours per seed), with a multi-agent RAG layer for biomedical reasoning on top.