File size: 2,660 Bytes
4691fb1 baf7da5 4691fb1 baf7da5 4691fb1 baf7da5 485fb6e baf7da5 4691fb1 baf7da5 4691fb1 baf7da5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | ---
tags:
- protein
- stability
- mutation-effects
library_name: pytorch
license: mit
datasets:
- OATML-Markslab/ProteinGym_v1
base_model:
- biohub/ESMC-600M
---
# Citation
If you use this model, please consider citing the manuscript ([available on arxiv.org](https://arxiv.org/abs/2610.00742))
# StabilityArc
This repository contains the StabilityArc inference code and the all-66 stability decoder checkpoint. StabilityArc uses frozen ESMC-600M sequence embeddings to predict single amino-acid substitution effects. ESMC-600M is downloaded separately from its [upstream model page](https://huggingface.co/biohub/esmc-600m-2024-12); its weights are not included here.
## Files
- `checkpoints/stabilityarc.pt`: trained StabilityArc decoder and its 66 training protein IDs.
- `stabilityarc/`: ESMC encoder interface, decoder, and sequence inference API.
- `pyproject.toml`: installation requirements for these inference files.
No benchmark data, fold checkpoints, manuscript, or hosted Space are included.
## Installation
Download this repository and install from its directory (Python 3.10+; CUDA recommended for ESMC-600M):
```bash
python -m pip install huggingface_hub
```
```python
import subprocess
import sys
from huggingface_hub import snapshot_download
repo_dir = snapshot_download("aaronfeller/StabilityArc")
subprocess.check_call([sys.executable, "-m", "pip", "install", repo_dir])
```
The first prediction downloads ESMC-600M weights and requires network access.
## Inference
```python
from pathlib import Path
import torch
from stabilityarc.inference import StabilityArcPredictor
device = "cuda" if torch.cuda.is_available() else "cpu"
predictor = StabilityArcPredictor(Path(repo_dir) / "checkpoints/stabilityarc.pt", device=device)
rows = predictor.predict("ACDEFGHIKLMNPQRSTVWY")
print(rows[0])
```
Supply a sequence containing only the 20 standard amino acids. The API returns all 19 non-wild-type substitutions at each 1-based position. Larger `stabilityarc_stability_score` values indicate predicted greater stability; `stabilityarc_predicted_ddG` is the negative of that score, **not a calibrated experimental kcal/mol measurement**.
## Scope and citation
This checkpoint was trained on stability assays from 66 ProteinGym proteins for inference on external proteins. The manuscript's protein-held-out ProteinGym results used separate held-out checkpoints and cannot be reproduced with this all-66 checkpoint.
Feller, Aaron L., Andrew D. Ellington, and Claus O. Wilke. 2026. **StabilityArc: Decoding Protein Sequence Embeddings into Generalizable Stability Landscapes**.
MIT license. ESMC-600M has separate upstream terms. |