
ProteinMPNN
Design amino acid sequences for protein backbones with fixed positions, amino acid biases, and sequence diversity controls.
What is ProteinMPNN?
ProteinMPNN solves the inverse folding problem: given a protein backbone structure, what amino acid sequences will fold into that shape? This reverses the structure prediction question; instead of asking what structure a sequence adopts, it asks what sequences can adopt a given structure.
Developed at the Institute for Protein Design and published in Science (2022), ProteinMPNN achieves 52.4% native sequence recovery on test backbones, compared to 32.9% for the previous state-of-the-art Rosetta design software. Beyond accuracy, it runs in ~1 second per protein versus ~4 minutes for Rosetta.
Experimental validation has been extensive. Crystal structures and cryo-EM reconstructions confirm that designed sequences fold to their intended structures. The method has successfully rescued previously failed designs and enabled new applications from nanomaterials to target-binding proteins.
How does ProteinMPNN work?
ProteinMPNN represents protein structures as graphs where residues are nodes and edges connect spatially proximate residues (the 32 to 48 nearest Cα neighbors). The neural network learns from this geometric representation without requiring evolutionary information or sequence alignments.
Encoding structure
The encoder (3 layers, 128 hidden dimensions) processes pairwise distances between backbone atoms: N, Cα, C, O, and a virtual Cβ. These interatomic distances capture inter-residue geometry more effectively than dihedral angles or coordinate frames. Message passing between nodes and edges propagates structural information throughout the graph.
Decoding sequences
Rather than generating amino acids sequentially from N- to C-terminus, ProteinMPNN uses order-agnostic autoregressive decoding. During training, the model learns to predict amino acids in random order. At inference, each position is decoded conditioned on the structural encoding and any previously decoded positions.
This flexibility enables practical design scenarios: fixing certain residues while redesigning others, enforcing identical sequences across homo-oligomer chains, or biasing toward specific amino acid compositions.
How to use ProteinMPNN online
ProteinMPNN runs on ProteinIQ's managed CPU infrastructure without local installation. The page supports sequence design and scoring of the uploaded native sequence, with official or compatible custom sequence weights. Side-chain packing is available after design with official or custom packing weights.
Pricing
Jobs start at 25 credits. The exact quote is calculated before submission from the parsed protein size and the design, scoring or packing workload.
The examples below assume 150 parsed residues, all chains included, and Homo-oligomer disabled. Packing uses four packs per design, three denoising steps and 16 side-chain samples.
| Number of sequences | Design without packing | Design with packing |
|---|---|---|
| 1 | 25 credits | 25 credits |
| 8 | 25 credits | 40 credits |
| 12 | 33 credits | 52 credits |
| 48 | 81 credits | Not available with four packs per design |
Packing is limited to 48 structures in total. For scoring the same 150-residue input, one score per pass and one pass cost 169 credits with Single-position conditional probabilities, or 25 credits with Autoregressive score.
Larger structures, more sequences, more score samples, additional packing work and Homo-oligomer can raise the quote. Single-position scoring scales more steeply with protein length than autoregressive scoring. Official versus custom checkpoint selection, sampling temperature and random seed do not directly change the calculator's quote.
Inputs
| Input | Format and limit | Requirement |
|---|---|---|
Protein | One PDB or .ent file up to 50 MiB, or an RCSB PDB ID such as 5L33. | Required for design and scoring. Complete N, Cα, C and O coordinates are recommended. Incomplete backbones and modified HETATM residues produce warnings; the native parser determines whether the selected structure is usable. |
Model checkpoint | One .pt file up to 50 MiB. | Required when Sequence checkpoint is Upload custom model, for either design or scoring. Leave this input empty when using Official model. |
Packer checkpoint | One .pt file up to 50 MiB. | Required only for design with Pack side chains enabled and Side-chain checkpoint set to Upload custom packing model. Leave this input empty for official packing, disabled packing or scoring. |
Custom sequence checkpoints must contain integer num_edges and dense model_state_dict tensors compatible with the native ProteinMPNN architecture: 128-dimensional sequence features, three encoder layers and three decoder layers. Custom packing checkpoints must contain dense model_state_dict tensors compatible with the native side-chain packer, including 16 context atoms and 32 neighbors.
Model tensor values, shapes and dtypes are preserved. Training and optimizer records do not participate in inference. Custom Python model classes, sparse tensors and quantized tensors are unsupported. Decoded tensor data is limited to 256 MiB per checkpoint. A failed or incompatible upload is not replaced with official weights.
Settings
Core settings
| Parameter | Type | Default | Description |
|---|---|---|---|
Operation | enum | Design sequences | Choose Design sequences (design) or Score native sequence (score) to evaluate the sequence in the uploaded PDB. |
Sequence checkpoint | enum | Official model | Choose Official model (official) or Upload custom model (custom); the latter requires the sequence checkpoint input. Available in both operations. |
Model checkpoint | enum | 0.20 Å backbone noise | Official models trained with 0.02, 0.10, 0.20 or 0.30 Å backbone-coordinate noise (002, 010, 020, 030). Available only with Official model. |
Number of sequences | integer | 1 | Design only. Generate 1 to 48 sequence variants, subject to the packed-structure limit when packing is enabled. |
Sampling temperature | number | 0.1 | Design only. Must be positive; no upper bound is imposed. Lower values are more conservative and higher values increase diversity. |
Random seed | integer | 0 | Accepted range: 0 to 99999. Zero chooses a random seed, recorded in the native FASTA or score artifact. A positive seed supports reproducible runs with identical inputs, settings and runtime. Previously admitted jobs retain their recorded seed. |
The built-in Quick test (1 sequence) example loads RCSB structure 5L33, a designed protein from the ProteinMPNN examples, selects the official 0.20 Å model, generates one sequence at temperature 0.1 and uses fixed seed 111.
Temperature interpretation
| Temperature | Behavior |
|---|---|
| 0.05 to 0.1 | Conservative designs with high predicted fitness; useful for maximizing sequence recovery. |
| 0.2 to 0.3 | Moderate diversity while maintaining recovery; useful for variant libraries. |
| 0.4 to 1.0 | High diversity at the cost of recovery; useful when exploring novel sequences. |
| Above 1.0 | Increasingly random sampling; resulting sequences require careful validation. |
Scoring settings
These settings apply only to Score native sequence; no new sequences or packed structures are generated.
| Parameter | Type | Default | Description |
|---|---|---|---|
Scoring method | enum | Single-position conditional probabilities | single_aa evaluates each position conditioned on all other sequence positions; autoregressive follows sampled decoding orders. |
Use native sequence context | boolean | true | Use the uploaded sequence as context. Disable for backbone-only probabilities. |
Scores per pass | integer | 1 | Batch size for each pass, from 1 to 16. |
Scoring passes | integer | 1 | Repeat with new decoding orders, from 1 to 16 passes. The product of scores per pass and passes determines the sample count, up to 256. |
Design options and amino acid constraints
Chain and residue selections use identifiers in the uploaded PDB, including insertion codes. Amino acid bias and exclusion controls apply to design only.
| Parameter | Type | Default | Description |
|---|---|---|---|
Chains to design | string | All parsed chains | Select chains such as A,B; other parsed chains stay fixed. |
Homo-oligomer | boolean | false | Tie corresponding residues across chains with matching residue identifiers. |
Fixed positions | string | optional | Preserve residues such as A15,A19,A1-10,B1-20. Cannot be combined with Redesigned positions. |
Redesigned positions | string | optional | Redesign only the listed residues, using the same syntax as fixed positions; other positions stay fixed. |
Parse chains only | string | All chains | Restrict parsing to chains such as A,B; omitted chains are not included in the run. |
Include zero-occupancy atoms | boolean | false | Include atoms with zero occupancy; otherwise they are excluded. |
Symmetric residue groups | string | optional | Tie arbitrary positions, for example A12,B12 | A13,B13. |
Symmetry weights | string | optional | Design only. Matching per-group weights, for example 0.5,0.5 | 0.5,0.5. |
Exclude amino acids | string | optional | Design only. Exclude uppercase one-letter codes without separators, such as C or CW. |
Per-position amino acid biases | string | optional | Design only. JSON such as {"A12":{"G":1.1}} sets residue-specific logit biases. |
Per-position amino acid exclusions | string | optional | Design only. JSON such as {"A12":"PG"} excludes amino acids at specific residues. |
Amino acid biases | boolean | false | Enable global per-amino-acid bias controls for design. |
Amino acid controls, Alanine (A) through Valine (V) | number | 0 | Available when Amino acid biases is enabled. Each of the 20 controls sets a logit bias; positive values favor and negative values disfavor that amino acid, with no imposed numeric range. |
Side-chain packing
Packing applies only to Design sequences. Each design can produce multiple full-atom PDB structures, with at most 48 packed structures per job. The design count multiplied by packs per design must not exceed 48.
| Parameter | Type | Default | Description |
|---|---|---|---|
Pack side chains | boolean | false | Run side-chain packing after sequence design and return every packed PDB. |
Side-chain checkpoint | enum | Official packing model | With packing enabled, select Official packing model (official) or Upload custom packing model (custom); custom selection requires the packing checkpoint input. |
Packs per design | integer | 4 | With packing enabled, generate 1 to 4 independently packed structures per design. |
Denoising steps | integer | 3 | With packing enabled, use 1 to 12 side-chain denoising steps. |
Side-chain samples | integer | 16 | With packing enabled, use 1 to 64 samples per denoising step. |
Repack all residues | boolean | false | With packing enabled, repack fixed and redesigned residues; otherwise only redesigned positions are packed. |
Write packed atoms as HETATM | boolean | false | With packing enabled, write packed atoms as HETATM records. |
Use non-protein atom context | boolean | true | With packing enabled, use parsed non-protein atoms as packing context when present in the PDB. |
The sequence, scoring and packing caps are ProteinIQ job limits. They do not describe the native model's scientific input domain. Official sequence and packing weights remain the defaults.
Results and downloadable files
Results shows designs or per-position score summaries. Sequences shows available FASTA files, Data contains the result table, and Files lists the downloadable artifacts.
| Operation | File or result | Contents |
|---|---|---|
| Design | Native .fa | Complete native FASTA, including the input sequence, sampled designs and native headers. |
| Design | *_designed_sequences.fasta | Designed sequences with confidence, recovery, mutation and identity annotations. |
| Design | Backbone .pdb files | Every designed backbone structure. |
| Design with packing | Packed .pdb files | Every packed structure, with names such as input_packed_1_1.pdb. |
| Design | Native statistics files | Complete per-sequence statistics, including native .pt tensors. |
| Scoring | *_score_probabilities.csv | Every amino acid mean probability and standard deviation at each parsed position. |
| Scoring | Native .pt | Complete native scoring tensors, including all score samples and the recorded seed. |
| Both | .log and result metadata | Native command, stdout/stderr, scientific source revision, settings and checkpoint provenance. Custom uploads include the original filename/SHA-256, reconstructed checkpoint and tensor digests, and isolated-reader identity. |
Checkpoints are inputs; converted model files are not separate result downloads. Existing saved jobs keep their recorded settings and inputs.
ProteinIQ caps projected native artifacts at 100 MiB per job. For large structures, reduce sequence count, packs per design or scoring samples so that all native results can be returned.
Understanding results
Each designed sequence includes:
| Column | Description |
|---|---|
Sequence ID | Identifier such as seq_1 or seq_2. |
Sequence | Designed amino acid sequence. |
Overall confidence | exp(−mean negative log probability) over redesigned positions. Higher values mean the model assigned greater probability to the sampled sequence; this is not a fold-success probability. |
Seq recovery | Fraction of redesigned positions matching the original sequence. |
Mutation count | Number of positions that differ from the input. |
Identity % | Percent identity to the input sequence. |
Confidence remains a numeric native score; ProteinIQ does not classify it as high, medium or low. Score means and standard deviations summarize all samples across scores per pass multiplied by scoring passes.
Applications
Inverse folding enables several protein engineering workflows:
- De novo protein design: After generating a novel backbone with tools like RFdiffusion, ProteinMPNN provides sequences likely to fold into that structure
- Sequence optimization: Generate variants of existing proteins with potentially improved expression, solubility, or stability
- Functional homolog design: Create sequence-diverse proteins that maintain a target fold, useful when avoiding immune recognition or intellectual property constraints
- Rescue failed designs: Re-sequence backbones from computationally designed proteins that failed to express or fold
Limitations
ProteinMPNN designs sequences based solely on backbone geometry. It does not consider:
- Ligand interactions: For proteins with bound small molecules, metals, or nucleotides, use LigandMPNN instead
- Membrane environment: Standard ProteinMPNN was trained on soluble proteins. For transmembrane proteins or optimizing soluble expression, consider SolubleMPNN
- Stability optimization: While designs often fold well, ProteinMPNN does not explicitly optimize thermostability. Consider ThermoMPNN for stability predictions
Experimental validation remains essential; computational metrics predict but do not guarantee foldability or function.
Sources
Related tools
HyperMPNN
Design protein sequences optimized for thermal stability from backbone structures.
LigandMPNN
Design protein sequences around ligands, metals, and nucleotides for enzyme engineering and binding-site optimization.
SolubleMPNN
Design sequences with the ProteinMPNN-family model trained on structures from soluble-protein PDB IDs.
Caliby
Design sequences for a structure or an aligned ensemble
IgDesign
Design antibody CDR loops from antibody-antigen complex structures using inverse folding.
NuCaliby
Joint protein and coding DNA design from protein backbones
AntiFold
Design antibody sequences from structure with AI-powered inverse folding
ESM-IF1
Design protein sequences from 3D backbone structures with controllable sampling diversity.
ProFam
Family-conditioned protein sequence generation from FASTA, A2M, or A3M input
PepMLM
Target sequence-conditioned peptide binder design using masked language modeling