bioRxiv 2026  ·  Cho & Tsuboyama et al.

Accurate protein stability prediction for small domains
using mega-scale experiments

SaProtΔG and ESM3ΔG — structure-aware protein language models fine-tuned on 1.8 million stability measurements — predict absolute folding free energy (ΔG) with Spearman ρ = 0.88 and RMSE = 0.81 kcal/mol.

Yehlin Cho*  ·  Kotaro Tsuboyama*  ·  Ted Litberg  ·  Michelle D. Jung  ·  Adun Obisesan
Qian Wang  ·  Claire M. Phoumyvong  ·  Jane Thibeault  ·  Sergey Ovchinnikov†  ·  Gabriel J. Rocklin†
Read Paper Quick Start GitHub Cite
00 — Abstract

Mega-scale data enables accurate absolute stability prediction

Predicting absolute protein folding stability is a long-standing challenge in biophysics, with broad applications in protein design and in understanding genetic variation and evolution. The challenge arises from the complexity and diversity of protein structures, as well as the difficulty of predicting a small difference between large thermodynamic driving forces favoring and opposing folding. Physics-based simulations have shown limited success at predicting stability and are often computationally intractable, and machine learning methods have been constrained by the lack of sufficiently large experimental datasets.

To overcome these challenges, we used cDNA display proteolysis to create the MGnify Stability Dataset, composed of over 1.8 million new experimental stability measurements on protein domains 60–80 amino acids in length. This diverse dataset includes 211,020 sequence clusters (at 30% identity) and 129,303 structural clusters (at TM-score 0.5). Using this dataset, we developed the predictive models SaProtΔG and ESM3ΔG, which accurately predict absolute folding stability for small domains with root mean squared error of 0.8 kcal/mol over a 6 kcal/mol range (Spearman rank correlation of 0.88).

These predictors show high accuracy at predicting effects of substitutions, insertions, and deletions, successfully identify global trends toward higher stability in thermophilic organisms, and improve discrimination of stable and unstable computationally designed proteins. Our results illustrate how mega-scale biophysical measurements can complement existing evolutionary and structural data to enable accurate absolute stability prediction for small domains.

1.8M
experimental stability
measurements
211K
sequence clusters
(30% identity)
129K
structural clusters
(TM-score 0.5)
60–80
amino acid domain
length range
MGnify Stability Dataset  ·  cDNA display proteolysis  ·  Tsuboyama et al. 2023 method
Distribution of folding stability values and sequence diversity of the MGnify Stability dataset

Fig. 1  ·  Distribution of ΔG values and sequence diversity of the MGnify Stability dataset.

01 — Architecture

Fine-tuning structure-informed models for stability

We fine-tuned two pre-trained structure-based protein language models — ESM3 and SaProt — by adding a per-residue stability regression head. Parameter-efficient fine-tuning with LoRA (rank-4) achieved the best performance among all approaches tested. Models are jointly trained on absolute stabilities (ΔG) and relative stability changes (ΔΔG) from mutations, using loss weights of 0.3 (ΔGWT), 0.3 (ΔGmut), and 1.0 (ΔΔG). Results reported are ensembles of three independent training runs.

ESM3ΔG pipeline
INPUT
PDB / CIF
PARSE
Seq + 3D Coords
TOKENIZE
Seq · Struct · Coord
ESM3 encoder
LORA
ESM3 + LoRA
rank-4, qkv proj
HEAD
Stability head
1536 → 1
SCALE
Sigmoid scaling
[-1, 5] kcal/mol
OUTPUT
Per-residue ΔG
TOKENIZE: ESM3 encoder converts seq + 3D coords → sequence, structure & coordinate tokens  |  highlighted = fine-tuned with LoRA
SaProtΔG pipeline
INPUT
PDB / CIF
FOLDSEEK
SA tokens
"AaGgLl…"
BACKBONE
SaProt + LoRA
650M AF2 · rank-4
HEAD
Stability head
1280 → 1
SCALE
Sigmoid scaling
[-1, 5] kcal/mol
OUTPUT
Per-residue ΔG
Foldseek produces structure-aware token strings — no explicit coordinates needed at inference
🧬
ESM3ΔG
ESM3 sm open v1 backbone

Takes a raw PDB or CIF file and uses the ESM3 encoder to produce sequence, structure, and coordinate tokens simultaneously. LoRA adapters are applied to the layernorm_qkv and out_proj attention projections (rank-4).

A stability regression head (1536 → 1) aggregates per-residue embeddings into a global ΔG estimate, followed by a learnable sigmoid scaling into the training range (−1 to 5 kcal/mol). Achieves Spearman ρ = 0.87, RMSE = 0.82 kcal/mol on the MGnify Stability test set.

🔬
SaProtΔG
SaProt 650M AF2 backbone

Converts structural information into SA tokens via Foldseek, producing a string that alternates amino-acid and backbone geometry letters (e.g., AaGgLl…). This compact encoding is fed directly to SaProt 650M's masked LM, which was pre-trained on both sequence and structure.

LoRA adapters (rank-4) target the query, key, value, and dense feed-forward projections. The stability head (1280 → 1) with sigmoid scaling achieves Spearman ρ = 0.88, RMSE = 0.81 kcal/mol on the MGnify Stability test set.

02 — Usage & Applications

From stability profiling to protein design

Load either model with a single function call to predict ΔG, scan mutations, or rank designed proteins.

APPLICATION 01

Absolute ΔG Prediction

Predict the folding free energy ΔG (kcal/mol) for any small protein domain given a PDB or CIF structure. Accurately calibrated over a 6 kcal/mol range (RMSE 0.81 kcal/mol).

APPLICATION 02

Substitutions, Insertions & Deletions

Predict ΔΔG for point mutations, insertions, and deletions. AUC 0.94 for identifying stabilizing mutations; indel RMSE 0.79–0.81 kcal/mol — a 13-point improvement over Rosetta for indel classification.

APPLICATION 03

Thermophilic Organism Prediction

ESM3ΔG-predicted ΔG correlates with optimal growth temperature (OGT) at 2.43 kcal/mol per 100 °C — 2–9× steeper than ESM-IF, ProteinMPNN, and AlphaFold2 pLDDT zero-shot scores.

APPLICATION 04

Protein Design Filtering

Rank and filter de novo designed proteins and nanobodies by predicted stability. Outperforms AlphaFold2 pLDDT and ProteinMPNN cross-entropy (AUC 0.65 ± 0.02 vs 0.68 ± 0.02) at discriminating stable from unstable designs.

from ESM3dG import ESM3dG, ESM3dG_predict # Load model from checkpoint model = ESM3dG("esm3dg_weights/ESM3dG_weights_1.ckpt") # Predict ΔG pred_per_res, pred_avg, sequence = ESM3dG_predict( model, pdb_path="structure.cif", chain_id="A", sigmoid_on=False, # True → sigmoid-scaled output ) print(f"ΔG: {pred_avg[0]:.2f} kcal/mol")
from SaProtdG import SaProtdG, SaProtdG_predict # Load model from checkpoint model = SaProtdG("saprotdg_weights/SaProtdG_weights_1_lora.ckpt") # Predict ΔG (Foldseek generates SA tokens automatically) pred_per_res, pred_avg, sa_seq = SaProtdG_predict( model, pdb_path="structure.cif", chain_id="A", foldseek_path="bin/foldseek", ) print(f"ΔG: {pred_avg[0]:.2f} kcal/mol")
from SaProtdG import SaProtdG, SaProtdG_predict weights = [ "saprotdg_weights/SaProtdG_weights_1_lora.ckpt", "saprotdg_weights/SaProtdG_weights_2_lora.ckpt", "saprotdg_weights/SaProtdG_weights_3_lora.ckpt", ] models = [SaProtdG(w) for w in weights] preds = [SaProtdG_predict(m, "structure.cif", "A")[1][0] for m in models] avg = sum(preds) / len(preds) std = (sum((x - avg)**2 for x in preds) / len(preds))**0.5 print(f"Ensemble ΔG: {avg:.2f} ± {std:.2f} kcal/mol")
from SaProtdG import SaProtdG, SaProtdG_predict model = SaProtdG("saprotdg_weights/SaProtdG_weights_1_lora.ckpt") # ddg_scanning=True returns (L, 20, 1, L) tensors ddg_scan, scaled_ddg_scan, seq = SaProtdG_predict( model, "structure.cif", "A", ddg_scanning=True ) # Average across ensemble axis → (20, L) heatmap import numpy as np, matplotlib.pyplot as plt heatmap = np.mean(scaled_ddg_scan.cpu().numpy(), axis=-1).T[0] plt.imshow(heatmap, cmap="bwr", aspect="auto") plt.colorbar(); plt.show()
03 — Mutational Scan

Visualising ΔΔG across all mutations

Each cell in the heatmap shows the predicted ΔΔG when the wild-type residue at that position is replaced with one of the 20 standard amino acids. Blue = stabilising  ·  Red = destabilising.

MUTATIONAL SCAN · STABILITY_1998520 · CHAIN A · SaProtΔG
Stabilising → Destabilising
ΔΔG range: −1.5 to +2.5 kcal/mol
04 — Performance

Benchmark results on MGnify Stability test set

Spearman rank correlation between predicted and experimental ΔG on the MGnify Stability test set of 3,283 sequences from 590 sequence clusters with limited sequence and structural similarity to training data (Fig. 2a).

SaProtΔG · SPEARMAN ρ
0.88
RMSE = 0.81 kcal/mol
ESM3ΔG · SPEARMAN ρ
0.87
RMSE = 0.82 kcal/mol
Spearman ρ on MGnify Stability test set  (Fig. 2a)
SaProtΔG
0.88
ESM3ΔG
0.87
SaProtΔG ×1
0.87
ESM3ΔG ×1
0.87
SaProt Fine-Tuned
0.84
AF2 Fine-Tuned
0.84
ESM3 LoRA Megascale
0.73
ESM-IF (zero-shot)
0.43
05 — Interactive Demo

Try the model live

Select a model and a protein, then click Run to simulate a prediction. Switch between ΔG prediction and mutational scan modes.

stability_prediction.py — interactive
# Select a protein and click Run →
INPUT STRUCTURE
OUTPUT MODE
PREDICTED FOLDING FREE ENERGY
kcal/mol
ΔΔG MUTATIONAL SCAN   stabilising   destabilising
STRUCTURE
07 — Data & Code

Data and code availability

The source code and pre-trained model weights are publicly available at GitHub and Hugging Face, respectively. The full MGnify stability dataset, training dataset, benchmark dataset, and raw data processing scripts are deposited at Zenodo.

GitHub → Hugging Face → Zenodo →
08 — Citation

Cite this work

If you use SaProtΔG or ESM3ΔG in your research, please cite:

@article{cho2026accurate, title={Accurate protein stability prediction for small domains using mega-scale experiments}, author={Cho, Yehlin and Tsuboyama, Kotaro and Litberg, Theodore J and Jung, Michelle D and Obisesan, Adunoluwa and Wang, Qian and Phoumyvong, Claire M and Thibeault, Jane and Ovchinnikov, Sergey and Rocklin, Gabriel Jacob}, journal={bioRxiv}, pages={2026--05}, year={2026}, publisher={Cold Spring Harbor Laboratory} }