← API reference
Structure prediction · Binder design

HighFold API

Predict the structure of a cyclic peptide or a cyclic-peptide complex.

Runs HighFold, which folds cyclic peptides by feeding AlphaFold 2 a cyclic position offset matrix in place of its usual relative positional encoding, so head-to-tail and disulfide-bridged macrocycles are modelled as closed rather than as linear chains whose ends happen to meet.

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 highfold-demo Job name
peptide_sequence string textarea yes GNLWATGHFMGGSGSGSG Peptide sequence Join the chains of a complex with a colon; the first chain is the cyclic peptide.
cyclic_constraint string select no head_to_tail Cyclic constraint Which constraints the cyclic offset matrix is built from. One of: head_to_tail, disulfide, both, none.
disulfide_pairs string text no Disulfide pairs (optional) Comma-separated 1-indexed cysteine pairs, for example 3-11,5-17. Inferred from the sequence when left empty.
msa_mode string select no single_sequence MSA mode Short macrocycles have no useful alignment, so single-sequence is the usual choice. One of: single_sequence, mmseqs2_uniref_env, mmseqs2_uniref.
num_models number number no 5 Models minimum 1, maximum 5.
num_recycles number number no 3 Recycles minimum 0, maximum 48.
num_seeds number number no 1 Seeds per model minimum 1, maximum 16.
seed number number no 0 Random seed minimum 0, maximum 2147483647.
use_templates boolean checkbox no false Use PDB templates
amber_relax boolean checkbox no false Relax the top model with Amber Cleans up bond geometry at the cyclization point, at a few minutes of extra runtime.
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/highfold/ \
  -H 'Content-Type: application/json' \
  -d '{
  "job_name": "highfold-demo",
  "peptide_sequence": "GNLWATGHFMGGSGSGSG",
  "cyclic_constraint": "head_to_tail",
  "disulfide_pairs": "",
  "msa_mode": "single_sequence",
  "num_models": 5,
  "num_recycles": 3,
  "num_seeds": 1,
  "seed": 0,
  "use_templates": false,
  "amber_relax": 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.

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