Predicting protein stability and enzyme kinetics through the physics of molecular vibrations. A multimodal deep learning framework combining vibrational spectroscopy, graph neural networks, and protein language models.
Traditional models treat proteins as static structures. But catalysis depends on dynamics — the collective vibrations that gate conformational changes. QDD explicitly encodes the Vibrational Density of States (VDOS) as a predictive feature — and tests whether it actually helps.
Normal Mode Analysis extracts vibrational frequencies from protein structures. The hypothesis: they encode the thermodynamic landscape that governs stability and function. A controlled test has not yet supported it.
Each protein has a unique VDOS spectrum — a 1D signal encoding all vibrational modes. A 1D CNN encodes it as its own branch, so the model can test whether it adds signal beyond sequence.
VibroPredict fuses sequence (ProtT5), spectral (CNN on VDOS), and chemical (ChemBERTa + DRFP) encodings with learned attention gating.
The VibroPredict hybrid model processes protein sequence, vibrational spectrum, and substrate chemistry in parallel, then fuses them through learned attention gates.
Adjust the broadening parameter to see how Lorentzian convolution transforms discrete normal modes into a continuous Density of States. The spectrum uses the same 1000-point, 0–500 cm⁻¹ format the CNN encoder takes as input.
VibroPredict targets R² > 0.75 on the KinHub-27k benchmark. That target has not been measured yet: no VibroPredict R² has been produced on a public split, and the benchmark file in the repo is a dry run.
| Model | Year | R² | Features |
|---|---|---|---|
| TurNuP | 2022 | 0.62 | Seq + FP |
| DLKcat | 2021 | 0.64 | Seq + Graph |
| UniKP | 2023 | 0.68 | ProtT5 + SMILES |
| MPEK | 2023 | 0.70 | ESM-2 + SMILES |
| CatPred | 2025 | 0.79 | Seq + SMILES |
| VibroPredict | 2025 | target > 0.75 — not measured | Seq + VDOS + Chem |
Literature values, not a head-to-head comparison: each model was evaluated on its own data and split.
Does vibrational physics separate thermostable proteins? We compared 27 thermophile/mesophile enzyme homolog pairs (X-ray ≤ 2.5 Å, first chain) on each feature’s predicted direction.
| Feature (hypothesis) | Pairs matching | Wilcoxon p |
|---|---|---|
| Entropy/res — thermo lower | 12 / 27 | 0.83 |
| Softest mode — thermo stiffer | 13 / 27 | 0.47 |
| Mean MSF — thermo more rigid | 14 / 27 | 0.46 |
| Mean VDOS freq — thermo higher | 13 / 27 | 0.39 |
| Contact density — thermo denser | 13 / 27 | 0.81 |
Every feature sits at chance (44–52 %); none approaches significance. An earlier n = 8 pilot was also negative. The physics branch is unproven, not validated. Read the full write-up →
from vibropredict.models import VibroPredictHybrid
model = VibroPredictHybrid(fusion_dim=512)
logkcat, gates = model(
sequences=["MKTIIALSYIF..."],
vdos=vdos_tensor, # (1, 1, 1000)
substrate_smiles=["CC(=O)O"],
)
print(f"k_cat = {10**logkcat.item():.1f} s⁻¹")
print(f"Attention: seq={gates[0,0]:.2f} "
f"spec={gates[0,1]:.2f} "
f"chem={gates[0,2]:.2f}")
from vibropredict.training import (
TrainerWithMMDrop,
MutantRankingLoss,
)
trainer = TrainerWithMMDrop(
model=model,
optimizer=optimizer,
device="cuda",
)
# MM-Drop: randomly drops spectral
# branch 25% of the time for robustness
best_loss = trainer.fit(
train_loader, val_loader,
loss_fn=MutantRankingLoss(lambda_rank=0.1),
epochs=50, p_drop=0.25,
)
Full pipeline overview: data → NMA → model → prediction
Vibrational analysis on Ubiquitin with entropy curves
Enzyme stability prediction with Spearman evaluation
Multi-label GO term prediction with F-max optimization
Tri-modal architecture overview and inference demo
KinHub-27k + EnzyExtractDB standardization pipeline
Train with MM-Drop and MutantRankingLoss
Branch ablation and baseline comparison (template; needs a trained checkpoint, not yet run)