CASE 02 · 2025 · ML Researcher · Builder

UNIFIED-DTA

Drug-target affinity prediction fusing protein language models with graph networks.

PyTorchESM-2GNNFastAPIRDKitDocker

SYSTEM FLOW

01ESM-2 protein embeddings
02GIN molecular graph
03Joint representation
04CI / MSE benchmarks
05Dockerized API

THE PROBLEM

Predicting how well a drug binds a target protein is a core bottleneck in discovery. Sequence-only models miss molecular structure; structure-only models miss protein context. The field needed both, jointly.

3 industry benchmarks: BindingDB · DAVIS · KIBA

HOW IT'S BUILT

Fused Meta's ESM-2 protein language model with Graph Isomorphism Networks for joint molecular + protein representation learning. Trained on BindingDB, DAVIS and KIBA with concordance index and MSE. Containerized inference with Docker + FastAPI (LRU-cached), extended with a drug-generation module using the DoubleSG architecture.

IMPACT

  • 3 industry benchmarks: BindingDB · DAVIS · KIBA
  • ESM-2 + GIN joint representation learning
  • Dockerized, LRU-cached inference API
  • Novel-compound generation via DoubleSG

WHAT IF

Ask the project a different question. The architecture has to defend itself.

What if we skipped ESM-2 and used sequence-only embeddings?

GIN alone on molecular graphs with one-hot protein encodings would lose the semantic protein context ESM-2 provides — CI on KIBA would drop measurably. The language model is the expensive but load-bearing part; the fusion layer is where the real engineering lives. I'd keep both.

What if we needed 10× throughput?

Today: LRU-cached FastAPI with batch inference. Scaling path: precompute ESM-2 embeddings once (they're the slow part — ~seconds per protein), cache them permanently, and serve only the GIN forward pass (milliseconds). That's a ~100× effective speedup for repeated targets — which is exactly how drug repos behave.

DIVE DEEPER

Built it — now the descent. Each question opens the next layer: why, why this architecture, what broke, what I'd change.

01Why ESM-2 + GIN together?

ESM-2 gives protein language context; GIN gives molecular structure. Either alone loses half the signal — the fusion is the actual contribution.

02Why those benchmarks?

BindingDB, DAVIS and KIBA are the three the community actually trusts. CI/MSE there is the only claim reviewers accept.

03What went wrong?

First training runs diverged — mixed dtypes between ESM-2 embeddings and graph features. I normalized both streams and pinned seeds before trusting a single number.

04What would I do now?

Add uncertainty estimates and a LoRA head instead of full fine-tuning — cheaper and more honest for drug discovery.

THE REPO, INSIDE

Not a screenshot — a live iframe pulling this repo's README straight from the CDN.

FETCHING README FROM THE REPO…