Skip to content

Sequential Docking

Sequential Docking

Dock molecules into the same site one stage at a time, each on top of the last.

Sequential docking places several molecules into the same protein site one after another. It runs in stages. Each stage docks one molecule, and once that molecule is placed it is frozen in position and treated as part of the receptor for the next stage. So the second molecule is docked into the protein plus the first molecule, the third into the protein plus the first two, and so on. A placed molecule in a given stage is called a pose, which is one position and orientation of that molecule.

Each stage can be either non covalent, where the molecule just sits in the site, or covalent, where the molecule forms a chemical bond to a chosen residue. This lets you build up a layered system, for example docking a cofactor first and then a drug molecule on top of it, or placing one fragment and then growing a second next to it.

Use it when more than one molecule needs to occupy the same site and the order matters, so each new molecule should be docked against the ones already placed. Common cases are docking a cofactor or metal binding group first and then the drug, or building a multi piece binder one piece at a time, mixing covalent and non covalent steps in a single run. If you only have one molecule to dock, use Docking for a non covalent fit or Covalent Docking for a bonded one.

InputRequiredWhat it is
structure_fileyesProtein structure file in PDB or CIF format, used as the starting receptor for stage one.
chain_idyesWhich protein chain to dock into, for example A.
stagesyesA JSON list of docking stages, run in order. Each stage is an object with a mode of "general" (non covalent) or "covalent", a smiles string for that stage’s molecule, and the placement settings for that mode. A general stage takes a binding_site_center (or binding site residues). A covalent stage also needs target_resname, target_resid, target_atom, and covalent_element, the same fields as Covalent Docking.
keep_cofactorsnoJSON list of cofactor residue names to keep from the starting protein, for example ["ZN"].

Submit your protein and the list of stages from Azulene Studio, the Python SDK, or the CLI. New here? The Get started page walks through installing, logging in, and running a ready made example first.

Open Sequential Docking from the tools list, then on the Inputs and Parameters step upload your protein structure file, set the chain ID, and provide the stages list describing each molecule to dock and its mode, then Review and Submit.

from opal import jobs
result = jobs.submit(
job_type="sequential_docking",
input_data={
"structure_file": "/path/to/your/protein.pdb",
"chain_id": "A",
"keep_cofactors": "[\"ZN\"]",
"stages": "[{\"mode\":\"general\",\"smiles\":\"CCO\",\"binding_site_center\":[12.5,8.3,-4.1]},{\"mode\":\"covalent\",\"smiles\":\"OB(O)c1ccccc1\",\"target_resname\":\"SER\",\"target_resid\":70,\"target_atom\":\"OG\",\"covalent_element\":\"B\"}]",
},
)

Pass the inputs as a JSON string.

Terminal window
opal jobs submit --job-type sequential_docking \
--input-data '{"structure_file": "/path/to/your/protein.pdb", "chain_id": "A", "keep_cofactors": "[\"ZN\"]", "stages": "[{\"mode\":\"general\",\"smiles\":\"CCO\",\"binding_site_center\":[12.5,8.3,-4.1]},{\"mode\":\"covalent\",\"smiles\":\"OB(O)c1ccccc1\",\"target_resname\":\"SER\",\"target_resid\":70,\"target_atom\":\"OG\",\"covalent_element\":\"B\"}]"}'

The headline number is the final stage composite score in kcal/mol, the classical physics score of the best pose from the last stage. A more negative score means a better fitting final pose. Next to it is the number of stages run (n_stages).

The result then shows the same ranked pose table and bar chart as a single docking run, but for the final stage. Each row has a rank (numbered from 0), a pose label, and that pose’s composite score in kcal/mol (top_k_composite_kcal_mol). You can sort, colour by score, and export to CSV.

For a stage by stage breakdown, the result also carries stage_summaries, one entry per stage, along with n_stages and the total runtime in seconds (total_time_s). These appear on the Data tab so you can drill into what happened at each step.

The order of the stages matters, because each molecule is frozen before the next is docked, so put down the molecule that should anchor the site first. Keep any structural cofactors with keep_cofactors so the site keeps its real shape from the start. Each stage uses the same placement and scoring as the matching single molecule tool, so a covalent stage needs the same target residue details as Covalent Docking.