designs

Design binders/proteins against a target (BoltzGen, RFdiffusion3 or PXDesign).

The protocol picks the design model: the six boltzgen protocols take a spec (YAML); rfd3-* takes structure + contig; pxdesign-* takes structure + chains + binder_length. An explicit model is optional but must match the protocol's model when given.

post/v1/designs

Request

  • Base URL: https://api.japanfold.aiand.com
  • URL: https://api.japanfold.aiand.com/v1/designs
  • Auth: one of:
    • none
    • HTTP bearer

Headers

Idempotency-Keystring

Resend a submit with the same key and body to get the first job back instead of a second one to pay for. The same key with a different body is a 422. Keys are remembered on the account for good, so make each new submission's key unique (a UUID), not a readable name you might reuse.

Request body

binder_lengthinteger

Residues in the designed binder (8-200). pxdesign-* protocols only.

chainsstring

Target chain ids to design against, e.g. 'A' or 'A,B'. pxdesign-* protocols only.

contigstring

RFdiffusion3 contig string, e.g. 'A1-150,60-80': fixed chain-ranges plus designed-length segments. rfd3-* protocols only.

hotspotsstring

Optional target residues to aim the binder at, e.g. 'A64,A65,A66' (or bare numbers when one chain is named). pxdesign-* protocols only.

model'boltzgen' | 'rfd3' | 'pxdesign'

Design model. Optional: the protocol already implies it; when given, it must match (a mismatch is a 400).

namestring
paramsobject

BoltzGen: num_designs, budget, fast. RFdiffusion3: num_designs, num_timesteps, seed. PXDesign: num_designs, n_step, seed. Omitted params take the default GET /v1/models advertises (BoltzGen 10 designs, budget 10, fast off; RFdiffusion3 4 designs, 100 diffusion steps; PXDesign 4 designs, 200 diffusion steps). Numeric values outside the advertised range are clamped to the nearest bound; the accepted values are on the job's params.

protocol'protein-anything' | 'peptide-anything' | 'nanobody-anything' | 'antibody-anything' | 'protein-small_molecule' | 'protein-redesign' | 'rfd3-binder' | 'rfd3-scaffold' | 'rfd3-na-binder' | 'pxdesign-binder'
specstring

BoltzGen protocols only. A YAML list under entities: (not predict's sequences:); the chain to design has a residue-count range as its sequence. A minimal protein binder: entities:

  • protein: id: A sequence: <target sequence>
  • protein: id: B sequence: 60..80 A spec the engine would reject is refused with a 400 at submit.
structurestring

Target structure as PDB or mmCIF text. Required for the rfd3-* protocols (with contig) and the pxdesign-* protocols (with chains and binder_length).

Response

Job

artifactsobject[]

Present on a succeeded job read by its id (not in the list), when it has at most 20 files: the same entries as artifacts in its results. A job with more files lists them only in its results.

attemptinteger

Present only when the job's structure is on its second run, because the box running it stopped answering (hung, or its agent died); its progress started over. A job of several structures carries it on the retried entry of targets. Billed once.

created_atstring date-time nullable
doneinteger
downloadstring

Present on a succeeded job read by its id: one shell command that fetches every result file into the current directory, reading the key from JAPANFOLD_API_KEY. Past 20 files it fetches and unzips the archive instead.

email_when_doneboolean

Present once POST /v1/jobs/{id}/notify has been asked.

errorstring nullable

Why the job failed; on a succeeded job, what it could not deliver (see partial).

finished_atstring date-time nullable
idstring required
kind'predict' | 'design' | 'embed' required
linksobject
modelstring nullable
namestring
object'job' required
progressnumber nullable

0..1, or null when indeterminate

protocolstring nullable
results_readyboolean
stagestring nullable
started_atstring date-time nullable
status'queued' | 'running' | 'succeeded' | 'failed' | 'canceled' required
totalinteger
waiting_for_deviceboolean

Present and true only while the job has been accepted but no processor is free for it yet. The job is queued, not stalled.

Changes

No recorded changes to this operation across all 1 revision of this API.