IgDesign API
Design antibody CDRs against a target antigen by inverse folding.
Runs IgDesign, which conditions on an antigen-antibody complex structure plus the antibody framework sequence and samples new sequences for the CDRs it is given explicit position ranges for. IgDesign's own configuration format takes those ranges directly rather than a numbering scheme, so this does too.
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 | igdesign-demo |
Job name |
complex_pdb
|
string file | yes | HEADER PASTE AN ANTIGEN-ANTIBODY COMPLEX PDB HERE |
Antigen-antibody complex PDB The framework and antigen are read from this structure; the designed loops are resampled. file types .pdb,.ent,.cif. |
antigen_chain
|
string text | yes | A |
Antigen chain up to 4 characters. |
heavy_chain
|
string text | yes | H |
Heavy-chain ID up to 4 characters. |
light_chain
|
string text | yes | L |
Light-chain ID up to 4 characters. |
regions
|
string textarea | yes | hcdr3:heavy:96-108 |
Regions to design One per line, as region:chain:start-end using 1-indexed positions within that chain, for example hcdr3:heavy:96-108. Designed in the order listed. IgDesign's own example configs are the reference for picking these ranges. |
num_sequences
|
number number | no | 10 |
Sequences to sample minimum 1, maximum 1000. |
temperature
|
number number | no | 0.5 |
Sampling temperature minimum 0.01, maximum 2, step 0.05. |
seed
|
number number | no | 0 |
Random seed minimum 0, maximum 2147483647. |
A request that runs
These are the defaults, exactly as the web form would post them.
curl -X POST https://www.athanortools.com/api/igdesign/ \
-H 'Content-Type: application/json' \
-d '{
"job_name": "igdesign-demo",
"complex_pdb": "HEADER PASTE AN ANTIGEN-ANTIBODY COMPLEX PDB HERE",
"antigen_chain": "A",
"heavy_chain": "H",
"light_chain": "L",
"regions": "hcdr3:heavy:96-108",
"num_sequences": 10,
"temperature": 0.5,
"seed": 0
}'
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. |