← API reference
Antibody design · Protein Design

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.

Tasks

Pick a mode with task

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

taskMode
antibody default Antibody
nanobody Nanobody
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 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.
Example

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.

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.
cancelled Abandoned at the submitter's request; there is no result. A job cancelled before its turn never ran at all.

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 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.