← API reference
Sequence prediction · Protein Design

ProteinMPNN API

Design protein sequences for a supplied backbone structure.

Runs the official ProteinMPNN fixed-backbone sequence-design script on selected PDB chains.

Request body

Fields

The same names the web form posts. See the field type table for what each kind means over HTTP.

Name Type Required Default Description
job_name string text no proteinmpnn-demo Job name
pdb string file yes HEADER PASTE A PROTEIN BACKBONE PDB HERE Backbone mmCIF or PDB file mmCIF is converted to legacy PDB before design; chain ids in it must be a single character. file types .pdb,.ent,.cif,.mmcif.
chains string text yes A Chains to design Comma- or space-separated PDB chain IDs.
designed_residues string textarea no Designed residues (optional) Restrict design to specific residues instead of a whole chain: one line per chain, e.g. "B 26 27 28 29 30". Chains left out are designed in full; residues not listed for a named chain are held fixed.
homo_oligomer boolean checkbox no false Tie designed chains as a homo-oligomer Symmetric copies: ties the same position across all designed chains to the same amino acid.
model_type string select no proteinmpnn Model type SolubleMPNN is trained on soluble proteins only, for designs meant to express without a membrane or aggregation-prone context. One of: proteinmpnn, solublempnn.
model_name string select no v_48_020 Model One of: v_48_002, v_48_010, v_48_020, v_48_030.
num_sequences number number no 4 Sequences minimum 1, maximum 1000.
temperature number number no 0.1 Sampling temperature minimum 0.01, maximum 1, step 0.01.
backbone_noise number number no 0.0 Noise level Gaussian noise added to backbone coordinates at inference, separate from the model checkpoint's own training noise (v_48_002/010/020/030). minimum 0, maximum 1, step 0.01.
seed number number no 0 Random seed minimum 0, maximum 2147483647.
omit_amino_acids string text no X Omit amino acids One-letter amino-acid codes that ProteinMPNN must not sample anywhere.
bias_amino_acids string text no Amino-acid bias (optional) Global per-amino-acid sampling bias, e.g. "W:3.0,P:3.0,C:3.0,A:-3.0".
bias_amino_acids_per_residue string textarea no Per-residue amino-acid bias (optional) JSON object keyed by chain+residue, e.g. {"C1": {"G": -0.3, "P": 10.8}, "C3": {"P": 10.0}}.
omit_amino_acids_per_residue string textarea no Per-residue omitted amino acids (optional) JSON object keyed by chain+residue, e.g. {"A1": "CP", "A2": "CW"}.
Example

A request that runs

These are the defaults, exactly as the web form would post them.

curl -X POST https://www.athanortools.com/api/proteinmpnn/ \
  -H 'Content-Type: application/json' \
  -d '{
  "job_name": "proteinmpnn-demo",
  "pdb": "HEADER    PASTE A PROTEIN BACKBONE PDB HERE",
  "chains": "A",
  "designed_residues": "",
  "homo_oligomer": false,
  "model_type": "proteinmpnn",
  "model_name": "v_48_020",
  "num_sequences": 4,
  "temperature": 0.1,
  "backbone_noise": 0.0,
  "seed": 0,
  "omit_amino_acids": "X",
  "bias_amino_acids": "",
  "bias_amino_acids_per_residue": "",
  "omit_amino_acids_per_residue": ""
}'

The reply is 202 with a queued job; poll its status_url until status is succeeded or failed. See the quick start for the whole exchange.

Responses

What comes back

statusMeaning
queued Accepted, waiting for the jobs ahead of it. `position` counts how many those are.
running The tool is executing now.
succeeded Finished; `result` holds the tool's output and `license` the terms it came under.
failed Finished; `error` holds a code and a message.

Errors

codeMeaning
invalid_input The client supplied invalid or incomplete input.
tool_unavailable The requested third-party dependency is not available on this host.
execution_failed A configured third-party process exited unsuccessfully.
internal_error An adapter failed in a way it does not describe. The detail is in the server log, not the response.
not_found No job has that id. Finished jobs are dropped eventually.