← API reference
Property prediction · Protein Design

ThermoMPNN API

Predict the stability change of point mutations in a protein structure.

Runs ThermoMPNN, a ProteinMPNN-derived graph network trained by transfer learning to predict ddG for point mutants. custom_inference.py always scores every substitution at every position of a chain (a saturation scan); a named list of mutations is served by filtering that scan down to the requested substitutions rather than by asking the tool for them specifically, which its own CLI has no option for.

Tasks

Pick a mode with task

Fields belonging to another task are ignored, so send only the ones for the task you chose.

taskMode
scan default Saturation scan
mutations Named mutations
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 thermompnn-demo Job name
pdb string file yes HEADER PASTE A PROTEIN PDB HERE Protein PDB file types .pdb,.ent.
chain string text yes A Chain The chain the mutations are scored in; the rest of the structure is context. up to 4 characters.
mutations mutations string textarea yes T27A H31Q Y100F Mutations One per line, as wild-type residue, position, and mutant residue, for example T27A. Prefix with a chain and a colon to override the chain above.
top_k scan number number no 20 Top mutations to highlight Return the K most stabilising substitutions alongside the full table. 0 returns the full table only. minimum 0, maximum 1000.
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/thermompnn/ \
  -H 'Content-Type: application/json' \
  -d '{
  "task": "scan",
  "job_name": "thermompnn-demo",
  "pdb": "HEADER    PASTE A PROTEIN PDB HERE",
  "chain": "A",
  "top_k": 20
}'

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.