Problem
Predicting antibody developability from sequence
Predict, from the heavy/light-chain sequence alone, the biophysical properties that decide whether an antibody binder can become a manufacturable, stable, injectable drug: hydrophobicity (HIC retention), polyreactivity, self-association (AC-SINS), thermostability (Tm) and expression titer. Commercially, developability failures are a main reason good binders die between discovery and the clinic, so an accurate in-silico filter saves months of wet-lab characterisation per program and is the pitch of BigHat, LabGenius and Generate. Current public state of the art (Ginkgo 2025 AbDev competition, held-out GDPa1 antibodies) is Spearman rho ~0.71 for hydrophobicity but only ~0.39 for thermostability, with polyreactivity, self-association and titer in between or lower. A practical 'solved' bar would be held-out Spearman >= 0.8 on every one of the five assays on new antibody families, i.e. accurate enough to replace the assay for ranking candidates; no public model is near that on Tm, titer or self-association.
Funding
Raised by the 3 companies working on it, 2 undisclosed.
Why it is still open
In Ginkgo Datapoints' 2025 AbDev competition (252 registered teams, 115 submissions) the best held-out Spearman correlations were 0.708 for hydrophobicity and only 0.392 for thermostability; per-property winners differed, and no single model predicted all five properties well.
Source: datapoints.ginkgo.bio
Who is working on it
Also active
Funding for these is not counted: the problem is a small part of what they do, or they contribute data and tools.
Prizes
| Prize | Status | Pays for | Amount |
|---|---|---|---|
| Ginkgo Datapoints 2025 Antibody Developability Competition | Awarded | Ranking | $60k |
What counts as solved
import Mathlib /-! # Predicting antibody developability from sequence Modelled on the Ginkgo Datapoints 2025 AbDev competition (GDPa1 panel): predict developability assay values from heavy/light-chain sequence alone, scored by Spearman rank correlation on a hidden test set, per property. Concrete in Lean: the candidate object (a predictor: sequence pair → ℝ per property), the Spearman correlation over a finite held-out set (Pearson of average ranks, ties averaged), and "beats the pinned baseline by margin δ on every property". Opaque oracle (`HeldOut`): the hidden antibodies and their measured assay values (e.g. HIC retention, Tm2 / thermostability, expression titer, polyreactivity, AC-SINS self-association), plus which baseline is pinned. Attester: the data owner (Ginkgo Datapoints or the board's CRO), who must also attest the set was not released before the submission was frozen (hash committed first). Units: each property in its own assay units; Spearman is dimensionless in [-1, 1]. Sign convention: the oracle orients each property so larger = more developable, or the board scores |ρ|; this file uses signed ρ. -/ namespace OpenSpur.Problems.AntibodyDevelopability /-- Heavy / light chain amino-acid sequences. -/ structure Antibody where heavy : String light : String /-- Candidate submission: one score per property index. -/ abbrev Predictor (nProps : ℕ) := Fin nProps → Antibody → ℝ noncomputable section /-- Average (1-based) rank of entry i, ties receive the mean of their positions. -/ def avgRank {n : ℕ} (x : Fin n → ℝ) (i : Fin n) : ℝ := ((Finset.univ.filter fun j => x j < x i).card : ℝ) + (((Finset.univ.filter fun j => x j = x i).card : ℝ) + 1) / 2 def mean {n : ℕ} (x : Fin n → ℝ) : ℝ := (∑ i, x i) / n def pearson {n : ℕ} (x y : Fin n → ℝ) : ℝ := (∑ i, (x i - mean x) * (y i - mean y)) / Real.sqrt ((∑ i, (x i - mean x) ^ 2) * (∑ i, (y i - mean y) ^ 2)) def spearman {n : ℕ} (x y : Fin n → ℝ) : ℝ := pearson (avgRank x) (avgRank y) /-- Hidden test set for one property (oracle). -/ structure HeldOut where n : ℕ antibody : Fin n → Antibody measured : Fin n → ℝ baselineRho : ℝ -- Spearman of the pinned baseline on this set def rho (h : HeldOut) (f : Antibody → ℝ) : ℝ := spearman (fun i => f (h.antibody i)) h.measured structure Thresholds where minN : ℕ -- e.g. 50 antibodies per property margin : ℝ -- δ, e.g. 0.05 minRho : ℝ -- absolute floor, e.g. 0.3 /-- SOLVED: on every property, ρ ≥ max(floor, baseline + δ) with a large enough set. -/ def Solved {p : ℕ} (T : Thresholds) (sets : Fin p → HeldOut) (f : Predictor p) : Prop := 0 < p ∧ ∀ k, T.minN ≤ (sets k).n ∧ (sets k).baselineRho + T.margin ≤ rho (sets k) (f k) ∧ T.minRho ≤ rho (sets k) (f k) def rung (T : Thresholds) (k : ℕ) : Thresholds := { T with margin := T.margin + (k : ℝ) / 20 } end theorem rung_mono {p : ℕ} (T : Thresholds) (sets : Fin p → HeldOut) (f : Predictor p) {j k : ℕ} (hjk : j ≤ k) (h : Solved (rung T k) sets f) : Solved (rung T j) sets f := by have hc : (j : ℝ) ≤ k := by exact_mod_cast hjk refine ⟨h.1, fun i => ?_⟩ obtain ⟨a, b, c⟩ := h.2 i refine ⟨a, ?_, c⟩ simp only [rung] at b ⊢ linarith end OpenSpur.Problems.AntibodyDevelopability