# Proteinmpnn

Inverse-fold a protein backbone (PDB structure) into amino-acid sequence with...

- Repository: https://github.com/aipoch/open-science (5414 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add aipoch/open-science --skill proteinmpnn -g -a claude-code -y`
Codex: `npx skills add aipoch/open-science --skill proteinmpnn -g -a codex -y`
Cursor: `npx skills add aipoch/open-science --skill proteinmpnn -g -a cursor -y`
Gemini CLI: `npx skills add aipoch/open-science --skill proteinmpnn -g -a gemini-cli -y`

## Description

Inverse-fold a protein backbone (PDB structure) into amino-acid sequence with ProteinMPNN (Dauparas et al. 2022, github.com/dauparas/ProteinMPNN). Reach for this skill to run sequence design on RFdiffusion backbones, to redesign one chain of a PDB while holding interface residues fixed, or to generate a temperature-swept set of sequences for downstream folding.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ProteinMPNN

ProteinMPNN is the default inverse-folding step in the binder pipeline: a
message-passing network that sees backbone geometry only, so it is the right
choice when the design surface is protein, protein and the wrong one as soon as
a ligand, nucleic acid, or metal is part of the interface, `ligandmpnn` adds
those atoms to the graph with a near-identical CLI, and `solublempnn` swaps in
weights trained on soluble structures for an expression-biased prior. Code and
weights are MIT (github.com/dauparas/ProteinMPNN). The model is small enough
to run on CPU, for a handful of sequences on one backbone that is seconds and
usually faster than dispatching a remote job; a GPU helps for batched
campaigns (hundreds of backbones or large `--num_seq_per_target`). Either way
the repo is cloned in-job, there is no PyPI dist and the checkpoints are
bundled in the repo.

## Running it

```bash
pip install torch numpy   # if not already present
git clone --depth 1 https://github.com/dauparas/ProteinMPNN.git proteinmpnn
cd proteinmpnn
python protein_mpnn_run.py \
  --pdb_path backbone.pdb --pdb_path_chains "A" \
  --out_folder out --num_seq_per_target 16 --sampling_temp "0.1"
```

Two flags trip almost everyone the first time. `--sampling_temp` is parsed as a
space-separated string so one run can sweep several temperatures; a single
value needs no quoting, but a multi-value sweep must be quoted
(`"0.1 0.2 0.3"`), and commas never split, `"0.1,0.2"` fails the float cast. `--pdb_path_chains` is also space-separated inside
one quoted argument (`"A B"`); a comma is kept as part of the chain ID.

The rest: https://github.com/aipoch/open-science/blob/HEAD/resources/skills/proteinmpnn/SKILL.md
