ProteinMPNN

This repository contains oteam/solublempnn-noise010, converted from v_48_010.pt.

ProteinMPNN is OFoldX's implementation of the ProteinMPNN message-passing inverse-folding family for amino-acid sequence design on a fixed protein backbone.

Disclaimer

This is an unofficial OFoldX implementation of ProteinMPNN. The upstream authors did not write, review, or endorse this implementation or model card.

Model Details

ProteinMPNN is an autoregressive inverse-folding model that designs an amino-acid sequence for a fixed protein backbone. It represents residues as a spatial nearest-neighbor graph, encodes backbone geometry with message-passing blocks, and decodes residues in a sampled causal order. Fixed positions, tied positions, position-specific amino-acid constraints, and sequence profiles can be applied during generation.

Variants

All variants share the same autoregressive design interface. The standard and soluble models differ in training distribution, while the CA-only model uses a reduced geometric input. The converter covers the complete released artifact surface: four full-backbone noise-level checkpoints, four soluble checkpoints, three CA-only checkpoints, and the official training-example checkpoint. PXDesign uses the standard v_48_020.pt checkpoint.

Model Specification

Variant Backbone Atoms Hidden Size Encoder Blocks Decoder Blocks Neighbors Num Parameters (M)
Standard N, CA, C, O 128 3 3 48 1.660
Soluble N, CA, C, O 128 3 3 48 1.660
CA-only CA 128 3 3 48 1.629

Links

  • Code: ofoldx.models.proteinmpnn
  • Paper: Robust deep learning-based protein sequence design using ProteinMPNN
  • Developed by: Justas Dauparas, Ivan Anishchenko, Nathaniel Bennett, Hua Bai, Robert J. Ragotte, Lukas F. Milles, Basile I. M. Wicky, Alexis Courbet, Rob J. de Haas, Neil Bethel, Philip J. Y. Leung, Timothy F. Huddy, Sam Pellock, Doug Tischer, Frederick Chan, Brian Koepnick, Hannah Nguyen, Alex Kang, Banumathi Sankaran, Asim K. Bera, Neil P. King, and David Baker
  • Model type: Autoregressive message-passing neural network for fixed-backbone protein sequence design
  • Original Repository: dauparas/ProteinMPNN

Usage

The model depends on the ofoldx library. Install it with pip:

pip install ofoldx

Sequence Design

Load the concrete design Pipeline:

import ofoldx
from ofoldx.io import read_structure

structure, report = read_structure("backbone.cif")
pipeline = ofoldx.pipeline("design", model="oteam/solublempnn-noise010")
output = pipeline.design(structure)

The design Pipeline also exposes autoregressive, sequence-free autoregressive, conditional, and unconditional probability routes. The raw ProteinMpnnModel provides differentiable encode and forward, as well as sample, score, and decoded design. For workflows that relax side chains after sequence design, ProteinMpnnDesignAndPackPipeline composes this family with an explicitly provided MPNN Packer without registering a second ProteinMPNN architecture.

The design-and-pack prepare stage returns a ProteinMpnnDesignAndPackPipelineInput containing the design input and its observation policy. Set filter_by_occupancy=False during preparation to retain observed zero-occupancy atoms through both design and packing; forward consumes the retained policy without requiring it again.

Staged Execution and Scoring

The callable design Pipeline uses the same preparation, computation and decoding as its explicit stages:

prepared = pipeline.prepare(structure)
raw = pipeline.forward(prepared.input, seed=7)
result = pipeline.postprocess(prepared, raw)
result = pipeline(structure, seed=7)

Scoring has its own task Pipeline and reuses the same converted weights:

scorer = ofoldx.pipeline("score", model="oteam/solublempnn-noise010")
score = scorer(structure, num_decoding_orders=8, seed=7)

For an in-memory model, construct ProteinMpnnScorePipeline with the designer's model and processor. Its prepare, forward and postprocess stages evaluate the observed or explicitly supplied sequence without sampling new identities.

Training Details

Training Data

ProteinMPNN was trained on fixed protein backbones paired with native amino-acid sequences. The soluble variant focuses its training distribution on soluble proteins, while the CA-only variant uses reduced backbone geometry.

Training Procedure

ProteinMPNN uses an autoregressive sequence-recovery objective with coordinate perturbations for robustness. ProteinMpnnModel.forward is differentiable and exposes the logits needed to train or fine-tune the model. [MpnnSequenceLoss][ofoldx.modules.mpnn.MpnnSequenceLoss] is the masked, label-smoothed training loss. Training the differentiable raw model on caller-supplied structures does not reproduce the upstream training-set construction, parser, clustering, or training program.

Citation

@article{dauparas2022robust,
  author = {Dauparas, Justas and Anishchenko, Ivan and Bennett, Nathaniel and others},
  title = {Robust deep learning-based protein sequence design using ProteinMPNN},
  journal = {Science},
  volume = {378},
  number = {6615},
  pages = {49--56},
  year = {2022},
  doi = {10.1126/science.add2187}
}

If OFoldX supports your research, also cite the OFoldX software:

@software{chen2026ofoldx,
  author = {Chen, Zhiyuan},
  title  = {OFoldX},
  year   = {2026},
  url    = {https://github.com/OTeam-AI4S/OFoldX},
}

Contact

Please use OFoldX GitHub issues for questions about this implementation or model card.

License

The original model parameters are distributed under the MIT license, retained in LICENSE.

The OFoldX implementation is separately licensed under AGPL-3.0-or-later; see license.md and license-faq.md.

These converted parameters use native OFoldX tensor names and the canonical vocabulary. Conversion changes the parameter representation and vocabulary axes; it does not change the upstream weight license.

Upstream source revision: 8907e6671bfbfc92303b5f79c4b5e6ce47cdef57.

Downloads last month

-

Downloads are not tracked for this model. How to track
Safetensors
Model size
1.67M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support