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.
Pick a mode with task
Fields belonging to another task are ignored, so send only the ones for the task you chose.
| task | Mode |
|---|---|
scan default |
Saturation scan |
mutations |
Named mutations |
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. |
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.
What comes back
| status | Meaning |
|---|---|
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
| code | Meaning |
|---|---|
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. |