Designs¶
POST /v1/designs designs de novo proteins against a target. Three engines share
the endpoint: BoltzGen takes a
protein, small-molecule, DNA or RNA target and returns designs ranked by
predicted confidence; RFdiffusion3 takes a pasted structure plus a contig
and returns them unranked; PXDesign takes a pasted structure plus the
target chains and returns binder backbones with no sequence at all. All three
return a job to poll, exactly like a prediction. Every example sends your key from $JAPANFOLD_API_KEY (see
Authentication).
The protocol implies the model. You may pass model explicitly (boltzgen,
rfd3 or pxdesign), but it has to match the protocol's model; a mismatch is a
400.
BoltzGen: binders against a protein, ligand or nucleic acid¶
curl -s -X POST https://api.japanfold.aiand.com/v1/designs \
-H "Authorization: Bearer $JAPANFOLD_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"protocol":"nanobody-anything",
"name":"my-nanobodies",
"spec":"entities:\n - protein: {id: B, sequence: 80..120}\n - protein: {id: A, msa: empty, sequence: MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ}\n",
"params":{"num_designs":10,"budget":10,"fast":true}
}'
spec(required): a BoltzGen YAML spec underentities:, the binder to design (sequence: 80..120is a length range) and the target. This is not thesequences:YAML a prediction takes. To aim at an epitope, give the targetbinding_types: {binding: '45..52'}(1-based residues). A spec the engine would reject (unknown keys, no chain to design, pocket constraints) is refused with a400at submit, before it is queued or billed.protocol(required): what to design.params:num_designs,budget,fast,seed. See Models & limits.name: optional label.
protocol |
Designs |
|---|---|
protein-anything |
De novo mini-protein binder against any target. |
peptide-anything |
Short peptide binder. |
nanobody-anything |
Single-domain antibody / nanobody (VHH). |
antibody-anything |
Antibody binder. |
protein-small_molecule |
Protein binder with a binding-affinity step. |
protein-redesign |
Re-design residues of an existing binder. |
Crop the target to the part you want bound, about 512 residues or fewer. A larger target still runs and the designs still dock, but far fewer of them refold into the shape they were drawn as. Measured on this hardware with eight designs per cell, GroEL cropped to 512 residues gave a median refold RMSD of 0.9 Å, five of eight under 2 Å; the same target at 1536 residues gave 15.6 Å and none under 4 Å. Which window you keep can matter as much as its length: on glycogen phosphorylase, two 512-residue windows 100 residues apart gave 4.7 Å and 17.8 Å. If a target designs badly, try another window before asking for more designs.
Submits accept the same Idempotency-Key and Prefer: wait headers as
predictions.
RFdiffusion3: all-atom design against a structure¶
RFdiffusion3 diffuses protein structure and sequence together, conditioned on a target structure you provide:
curl -s -X POST https://api.japanfold.aiand.com/v1/designs \
-H "Authorization: Bearer $JAPANFOLD_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"protocol":"rfd3-binder",
"name":"my-rfd3-binders",
"structure":"<the contents of your PDB or mmCIF file>",
"contig":"A1-150,60-80",
"params":{"num_designs":4,"num_timesteps":100}
}'
structure(required): the target as PDB or mmCIF text. Paste the file contents, up to 1,100,000 characters (about a 1,600-residue PDB).contig(required): comma-separated segments. A chain-range likeA1-150keeps those residues fixed; a bare number like60-80designs that many new residues. So"A1-150,60-80"keeps target chain A, then designs a 60 to 80 residue binder.- Size: the contig, not the paste, sets how big the run is. Motif plus designed residues has to come to 1,536 or fewer, so a large structure is fine as long as the contig selects less of it.
params:num_designs,num_timesteps,seed. See Models & limits.
protocol |
Designs |
|---|---|
rfd3-binder |
Binder against a protein target structure. |
rfd3-scaffold |
Scaffold around a fixed functional motif: list the motif residues, design between them. |
rfd3-na-binder |
Binder against a fixed DNA or RNA structure. |
RFdiffusion3 designs are unranked: there is no refold-and-filter step, so you get
one mmCIF per design with no confidence scores. To check one, fold its sequence
back onto the target with a prediction and read the interface
confidence (iptm).
PXDesign: binder backbones against a structure¶
PXDesign conditions on a distogram of the target chains you name and generates binder backbones. It is the fastest of the three and the least finished output: coordinates only, no sequence, no ranking, no confidence score. Run the backbones through a sequence-design tool before ordering anything. For a ranked, sequenced binder use BoltzGen.
curl -s -X POST https://api.japanfold.aiand.com/v1/designs \
-H "Authorization: Bearer $JAPANFOLD_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"protocol":"pxdesign-binder",
"structure":"<the contents of your PDB or mmCIF file>",
"chains":"A",
"binder_length":80,
"hotspots":"A74,A75,A76",
"params":{"num_designs":4,"n_step":200}
}'
chains names the target chains to condition on, binder_length is the
residue count of the binder to generate (8 to 200), and hotspots is optional:
target residues the binder should aim at. One protocol, pxdesign-binder. Only
the named chains count toward the size ceiling, and the binder counts too: their
sum has to be 1,536 or fewer, so a large file is fine if you name one small chain.
Reading designs¶
Wait on GET /v1/jobs/{id}?wait=60 until succeeded, then read
GET /v1/jobs/{id}/results for the designs and their structure artifacts, or
GET /v1/jobs/{id}/archive for everything as one zip. See
Jobs → Results and
Examples.