← API reference
Structure prediction · Protein Design

OpenDDE API

Run a protein, DNA/RNA, or ligand co-folding prediction.

Predict protein structure from nucleic acid or amino acid sequence. Predict the structure of ligands, nucleic acids, and ions, or complexes of these molecules. This is a relatively new, but very accurate model.

Tasks

Pick a mode with task

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

taskMode
sequence default Sequence
list Chain list
molecules Molecules (JSON)
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 opendde-demo Job name
sequence_molecules sequence string (JSON array) molecule_builder yes [{"type": "protein", "sequence": "ACDEFGHIK", "cyclic": false, "modifications": []}] Molecules Add one box per chain: Protein, Ligand, DNA, or RNA. Ligands take a SMILES string or a CCD_ code (e.g. CCD_ATP). A modification applies a CCD residue code at a given position; "Cyclic" bonds the chain's first and last residue. One of: protein, ligand, dna, rna. A JSON array, sent as a string. See molecule entries.
proteins list string textarea yes ACDEFGHIK Protein chains One protein chain sequence per line.
dnas list string textarea no DNA chains (optional) One DNA chain sequence per line.
rnas list string textarea no RNA chains (optional) One RNA chain sequence per line.
molecules molecules string textarea yes [{"type": "protein", "chain": "A", "sequence": "ACDEFGHIK"}] Molecules JSON list of {"type": "protein"|"dna"|"rna", "chain": "A", "sequence": "..."}.
ligands_list list string textarea no Ligands (optional) One ligand SMILES per line.
ligands_molecules molecules string textarea no Ligands (optional) One ligand SMILES per line.
bonds string textarea no Covalent bonds (optional) JSON list of covalent bonds between the chains above, e.g. [{"atom1Chain":"A","atom1Idx":"32","atom1Atom":"C","atom2Chain":"B","atom2Idx":"1","atom2Atom":"N"}]. Chains are lettered A, B, C... in the order entered: protein chains first, then DNA, then RNA, then ligands.
seeds string text no 101 Model seeds Comma-separated seeds, e.g. "101,102"; each produces an independent set of samples.
samples number number no 1 Samples per seed minimum 1, maximum 16.
steps number number no 200 Diffusion steps minimum 1, maximum 1000.
cycles number number no 10 Recycling cycles minimum 1, maximum 30.
use_guidance boolean checkbox no false Use physics-aware guidance Training-free guidance for improved ligand plausibility; increases compute time.

Molecule entry keys

KeyMeaning
type Which of the field's molecule types this entry is.
sequence The residues, for a protein, dna, or rna entry.
ligand A SMILES string or a CCD_ code, for a ligand entry.
ion An ion code, for an ion entry.
cyclic Whether a polymer chain is cyclic. Tools that cannot model one reject it rather than ignoring it.
modifications Substitutions, as {"position": <1-indexed integer>, "residue": "<CCD code>"} objects.
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/opendde/ \
  -H 'Content-Type: application/json' \
  -d '{
  "task": "sequence",
  "job_name": "opendde-demo",
  "sequence_molecules": "[{\"type\": \"protein\", \"sequence\": \"ACDEFGHIK\", \"cyclic\": false, \"modifications\": []}]",
  "bonds": "",
  "seeds": "101",
  "samples": 1,
  "steps": 200,
  "cycles": 10,
  "use_guidance": 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.