RFantibody API
Design antibody or nanobody binders against a target structure.
Runs the whole RFantibody pipeline against a target and an HLT framework: antibody-finetuned RFdiffusion docks a backbone and rebuilds the chosen CDR loops, ProteinMPNN designs their sequences, and antibody-finetuned RF2 predicts the complex for filtering. The Antibody task designs a paired heavy/light framework; Nanobody designs a VHH.
Pick a mode with task
Fields belonging to another task are ignored, so send only the ones for the task you chose.
| task | Mode |
|---|---|
antibody default |
Antibody |
nanobody |
Nanobody |
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 | rfantibody-demo |
Job name |
framework
|
string select | no | hu-4D5-8_Fv |
Framework
The HLT-formatted scaffold whose CDR loops and dock are designed. The two bundled frameworks are the ones used in the RFantibody preprint; pick the one that matches the task. "Custom" converts the Chothia-numbered antibody PDB below into HLT format instead.
One of:
hu-4D5-8_Fv, h-NbBCII10, custom.
|
target_file
|
string file | yes | HEADER PASTE A TARGET ANTIGEN PDB HERE |
Target antigen PDB The antigen structure. Crop it to the region around the epitope: RFdiffusion and RF2 both scale as O(N^2) in residue count. file types .pdb,.ent. |
antigen_chains
|
string text | yes | A |
Antigen chains Comma-separated chain IDs to keep from the target PDB, for example A or A,B. Everything else in the file is dropped before the run. up to 60 characters. |
antibody_file
|
string file | no | — |
Antibody PDB Read only when the framework is "Custom": a Chothia-numbered antibody structure, such as one downloaded from SAbDab. It is converted to HLT format using the chain IDs below. file types .pdb,.ent. |
heavy_chain
|
string text | no | H |
Heavy chain Chain ID of the heavy chain in the antibody PDB. up to 4 characters. |
light_chain
antibody
|
string text | no | L |
Light chain Chain ID of the light chain in the antibody PDB. up to 4 characters. |
hotspots
|
string text | no | A305,A456 |
Epitope hotspots Comma-separated target residues that define the epitope, written as a chain ID then a residue number: A305,A456. These use the target PDB's own chain IDs and numbering. RFantibody is sensitive to the choice; pilot a few designs first. up to 500 characters. |
regions
|
string text | yes | hcdr1,hcdr2,hcdr3 |
CDR loops to design Comma-separated loops: hcdr1, hcdr2, hcdr3, and in the Antibody task lcdr1, lcdr2, lcdr3. A loop left out keeps the framework's own sequence and structure through both the diffusion and the sequence-design stages. up to 60 characters. |
hcdr1_length
|
string text | no | auto |
HCDR1 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
hcdr2_length
|
string text | no | auto |
HCDR2 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
hcdr3_length
|
string text | no | auto |
HCDR3 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
lcdr1_length
antibody
|
string text | no | auto |
LCDR1 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
lcdr2_length
antibody
|
string text | no | auto |
LCDR2 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
lcdr3_length
antibody
|
string text | no | auto |
LCDR3 length "auto" lets the model keep the framework loop's own length, or give a fixed length (7) or a range sampled per design (5-13). up to 20 characters. |
select_cdr_indices
|
boolean checkbox | no | false |
Select CDR indices Replace the framework's own CDR annotations with the residue indices below, rather than trusting the Chothia ranges it was labelled with. |
hcdr1_residues
|
string text | no | — |
HCDR1 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
hcdr2_residues
|
string text | no | — |
HCDR2 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
hcdr3_residues
|
string text | no | — |
HCDR3 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
lcdr1_residues
antibody
|
string text | no | — |
LCDR1 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
lcdr2_residues
antibody
|
string text | no | — |
LCDR2 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
lcdr3_residues
antibody
|
string text | no | — |
LCDR3 residues 1-indexed absolute residue numbers in the HLT framework (heavy chain first, then light), as 26-32 or 26,27,28. Used only when "Select CDR indices" is on; an empty box leaves that loop's existing annotation alone. up to 200 characters. |
abmpnn_weights
|
boolean checkbox | no | false |
Use AbMPNN weights Run the sequence-design stage against antibody-specific AbMPNN weights instead of the ProteinMPNN checkpoint RFantibody ships. Requires ABMPNN_MODEL_PATH to be configured on the host. |
calculate_epitope_distance
|
boolean checkbox | no | true |
Report epitope distance Include RFdiffusion's per-design C-beta distance from each hotspot to the nearest designed CDR residue, as the closest and the mean over hotspots. Needs hotspots to be set. |
num_designs
|
number number | no | 1 |
Backbone designs How many docked backbones the diffusion stage generates. minimum 1, maximum 1000. |
temperature
|
number number | no | 0.1 |
Sampling temperature ProteinMPNN sampling temperature; higher is more diverse and less confident. minimum 0.0001, maximum 1, step 0.01. |
seqs_per_struct
|
number number | no | 1 |
Sequences per backbone How many CDR sequences ProteinMPNN designs onto each backbone. minimum 1, maximum 100. |
omit_AAs
|
string text | no | CX |
Omitted amino acids One-letter codes ProteinMPNN may not place. X is always omitted; C is omitted by default to avoid unpaired cysteines. up to 21 characters. |
augment_eps
|
number number | no | 0.05 |
Backbone noise Gaussian noise added to backbone coordinates before sequence design. minimum 0, maximum 1, step 0.01. |
num_connections
|
number number | no | 48 |
Neighbours per residue Size of ProteinMPNN's k-nearest-neighbour graph. minimum 8, maximum 64. |
n_recycles
|
number number | no | 3 |
RF2 recycles Recycling iterations in the RF2 filtering stage. RFantibody's own examples use 10; fewer is faster and less confident. minimum 1, maximum 20. |
hotspot_percentage
|
number number | no | 0.1 |
Hotspots shown to RF2 Proportion of the hotspot residues revealed to RF2 when it predicts the designed complex. Showing all of them makes the prediction less independent of the design. minimum 0, maximum 1, step 0.05. |
save_trajectories
|
boolean checkbox | no | false |
Keep diffusion trajectories Write RFdiffusion's per-step trajectory PDBs alongside the designs. |
A request that runs
These are the defaults, exactly as the web form would post them.
curl -X POST https://athanortools.com/api/rfantibody/ \
-H 'Content-Type: application/json' \
-d '{
"task": "antibody",
"job_name": "rfantibody-demo",
"framework": "hu-4D5-8_Fv",
"target_file": "HEADER PASTE A TARGET ANTIGEN PDB HERE",
"antigen_chains": "A",
"antibody_file": "",
"heavy_chain": "H",
"light_chain": "L",
"hotspots": "A305,A456",
"regions": "hcdr1,hcdr2,hcdr3",
"hcdr1_length": "auto",
"hcdr2_length": "auto",
"hcdr3_length": "auto",
"lcdr1_length": "auto",
"lcdr2_length": "auto",
"lcdr3_length": "auto",
"select_cdr_indices": false,
"hcdr1_residues": "",
"hcdr2_residues": "",
"hcdr3_residues": "",
"lcdr1_residues": "",
"lcdr2_residues": "",
"lcdr3_residues": "",
"abmpnn_weights": false,
"calculate_epitope_distance": true,
"num_designs": 1,
"temperature": 0.1,
"seqs_per_struct": 1,
"omit_AAs": "CX",
"augment_eps": 0.05,
"num_connections": 48,
"n_recycles": 3,
"hotspot_percentage": 0.1,
"save_trajectories": false
}'
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. |
cancelled |
Abandoned at the submitter's request; there is no result. A job cancelled before its turn never ran at all. |
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 tool 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. |