Binder design · Protein Design
BindCraft API
Design de novo protein or peptide binders against a target structure.
Builds a BindCraft target/advanced/filter settings trio and runs the official pipeline end to end (hallucination, ProteinMPNN redesign, AlphaFold2 validation, and filtering).
Tasks
Pick a mode with task
Fields belonging to another task are ignored, so send only the ones for the task you chose.
| task | Mode |
|---|---|
default default |
Default (protein binder) |
peptide |
Peptide |
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 |
|---|---|---|---|---|
binder_name
|
string text | no | demo-binder |
Binder name |
target_pdb
|
string file | yes | HEADER PASTE A TRIMMED TARGET PDB HERE |
Target PDB file types .pdb,.ent. |
target_chains
|
string text | yes | A |
Target chain IDs Comma-separated chain IDs. |
hotspot_residues
|
string textarea | no | — |
Hotspot residues (optional) One "chain: residues" per line, e.g. "A: 54,56,58" or "A: 1-10". Leave blank to let AF2 pick a binding site. |
minimum_length
|
number number | no | 65 |
Minimum binder length BindCraft's own default range is 65-150 for protein binders, 10-20 for peptides. minimum 5, maximum 500. |
maximum_length
|
number number | no | 150 |
Maximum binder length minimum 5, maximum 500. |
final_designs
|
number number | no | 1 |
Accepted designs requested minimum 1, maximum 1000. |
filter_type
|
string select | no | default |
Filter set
One of:
default, relaxed, no_filters, peptide, peptide_relaxed.
|
omit_amino_acids
|
string text | no | C |
Omit amino acids One-letter amino-acid codes ProteinMPNN redesign must not sample. |
predict_bigbang
|
boolean checkbox | no | false |
Use BigBang initialization |
weights_helicity
|
number number | no | -0.3 |
Helicity weight Negative biases toward helical binders, positive toward non-helical, 0 is neutral. minimum -5, maximum 5, step 0.1. |
betasheet_advanced
default
|
boolean checkbox | no | false |
Bias toward beta-sheet designs |
mpnn_advanced
|
boolean checkbox | no | false |
Use ProteinMPNN-biased trajectory design |
flexible_advanced
|
boolean checkbox | no | false |
Allow a flexible target interface |
hardtarget_advanced
default
|
boolean checkbox | no | false |
Treat the target as a hard (rigid) target |
filter_plddt
|
number number | no | 0.8 |
Average pLDDT threshold minimum 0, maximum 1, step 0.01. |
filter_ptm
|
number number | no | 0.55 |
Average pTM threshold minimum 0, maximum 1, step 0.01. |
filter_iptm
|
number number | no | 0.5 |
Average interface pTM threshold minimum 0, maximum 1, step 0.01. |
filter_i_pae
|
number number | no | 0.35 |
Average interface PAE threshold minimum 0, maximum 1, step 0.01. |
filter_surface_hydrophobicity
|
number number | no | 0.35 |
Average surface hydrophobicity threshold minimum 0, maximum 1, step 0.01. |
filter_n_interface_residues
|
number number | no | 7 |
Minimum interface residues minimum 0, maximum 100. |
filter_n_interface_hbonds
|
number number | no | 3 |
Minimum interface H-bonds minimum 0, maximum 100. |
filter_hotspot_rmsd
|
number number | no | 6 |
Maximum hotspot RMSD, angstrom minimum 0, maximum 50, step 0.1. |
filter_binder_plddt
|
number number | no | 0.8 |
Average binder pLDDT threshold minimum 0, maximum 1, step 0.01. |
filter_binder_rmsd
|
number number | no | 3.5 |
Maximum binder RMSD, angstrom minimum 0, maximum 50, step 0.1. |
max_run_time
|
number number | no | 16 |
Maximum run time, minutes Bounds this request's own subprocess; BindCraft itself has no built-in time limit. minimum 1, maximum 1440. |
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/bindcraft/ \
-H 'Content-Type: application/json' \
-d '{
"task": "default",
"binder_name": "demo-binder",
"target_pdb": "HEADER PASTE A TRIMMED TARGET PDB HERE",
"target_chains": "A",
"hotspot_residues": "",
"minimum_length": 65,
"maximum_length": 150,
"final_designs": 1,
"filter_type": "default",
"omit_amino_acids": "C",
"predict_bigbang": false,
"weights_helicity": -0.3,
"betasheet_advanced": false,
"mpnn_advanced": false,
"flexible_advanced": false,
"hardtarget_advanced": false,
"filter_plddt": 0.8,
"filter_ptm": 0.55,
"filter_iptm": 0.5,
"filter_i_pae": 0.35,
"filter_surface_hydrophobicity": 0.35,
"filter_n_interface_residues": 7,
"filter_n_interface_hbonds": 3,
"filter_hotspot_rmsd": 6,
"filter_binder_plddt": 0.8,
"filter_binder_rmsd": 3.5,
"max_run_time": 16
}'
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
| 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. |