Tutorials

Prepare a receptor and dock

Separate an experimental complex, repair its receptor, and inspect a redocking hypothesis.

On this pageDownload the example inputsRepair the receptorSelect and clean locally with the SDKDock one ligandReview poses against the referenceDecide what to do next

Goal: prepare a receptor from a public protein–ligand complex, submit one repair job and one docking job, then compare predicted ligand placement with the experimental reference. This is a redocking exercise for learning preparation and interpretation.

Download the example inputs

Start with RCSB PDB entry 1HSG, a protease complex containing ligand MK1 (L-735,524). Download these files into one directory:

  • 1HSG.pdb: original experimental complex, retained for comparison.
  • MK1_ideal.sdf: ligand definition from the RCSB Chemical Component Dictionary, with idealized rather than bound coordinates.

Keep the original complex unchanged as your experimental pose reference. Prepare the receptor with PDBFixer in the browser, or use the Neurosnap SDK for local selection and cleaning. Both routes should retain protein chains A and B and remove the bound ligand and waters from the docking receptor.

Keep both receptor chains: the binding environment spans the dimer. This selection is specific to 1HSG; other systems may require cofactors, metals, or waters. Source URLs and file hashes are in the input provenance.

Repair the receptor

Open PDBFixer and upload the original 1HSG.pdb as Input Structure. Retain both protein chains, A and B. The Remove Heterogens setting below removes the bound ligand and waters while preparing the receptor; no separate script is needed.

Control Setting for this exercise
Add Missing Residues Off; this exercise retains the observed construct
Add Missing Heavy Atoms On
Replace Nonstandard Residues Off; inspect rather than silently substitute
Remove Heterogens Remove Heterogens
Add Missing Hydrogens Off; this exercise does not assign a protonation model
Add Solvent / Add Membrane Off

Record the remaining settings, review credits, and submit once. Save the repair job ID and download the actual repaired structure output.

Checkpoint: inspect the repaired receptor before docking. Confirm two chains, 99 protein residues per chain, no ligand or solvent, and plausible geometry. Compare heavy-atom changes with the original complex’s protein chains. If numbering or chain identifiers changed, record the mapping. Completing atoms alone does not resolve catalytic protonation or force-field preparation.

Select and clean locally with the SDK

For a local workflow, install the Neurosnap SDK. Its structure API supports chain and atom selection, removal of waters and non-biopolymers, alternate-location and duplicate-atom cleanup, and additional preparation operations. Use these existing functions in your notebook or Python session:

from neurosnap.io.pdb import parse_pdb
from neurosnap.structure import remove_non_biopolymers

models = parse_pdb("1HSG.pdb", return_type="ensemble")
complex_structure = next(iter(models))
receptor = complex_structure.select(chains=["A", "B"])
remove_non_biopolymers(receptor)
receptor.save_pdb("1HSG-receptor.pdb")

This creates an independent receptor selection and removes non-biopolymer residues, including MK1 and waters. The original complex remains your pose reference. Use a new output filename if you already have a preparation you want to retain.

See the generated structure filtering, preparation, and PDB I/O references for supported operations and signatures. The PDB parser resolves alternate locations during loading; check any reported warnings.

Inspect the selected receptor with the same checkpoint above. Selection and cleanup do not reconstruct missing heavy atoms; if repairs are needed, supply 1HSG-receptor.pdb to PDBFixer using the settings above. If you already completed the browser preparation, continue with that output rather than repeating it.

Dock one ligand

Open DiffDock-L. Supply the repaired protein as Input Receptor and upload MK1_ideal.sdf through Input Ligand. Confirm that exactly one molecule was imported with the expected stereochemistry. The SDF’s ideal coordinates are not the experimental pose.

Set Number Samples to 50, the smallest currently offered sample count. This is one receptor–ligand job exploring multiple poses, rather than 50 independent input pairs. Record other exposed options and review estimated credits before submission. Keep the docking job ID linked to the repair job ID.

Review poses against the reference

Download the predicted pose files and their associated scores from the completed job’s file listing. Open the original complex and predicted complexes in a structure viewer. Align using the receptor backbone before comparing ligand placement; avoid aligning each ligand independently to make poses appear similar.

  1. Does the ligand occupy the experimental pocket, or a different surface site?
  2. Are both receptor chains retained, and are contacts and clashes chemically plausible?
  3. Do several generated poses agree, or do high-ranking poses occupy incompatible sites?
  4. Are stereochemistry and ligand identity preserved through import and export?

For ligand RMSD, use a chemistry-aware heavy-atom mapping that handles equivalent atoms. The SDK’s protein backbone RMSD is not a substitute for ligand RMSD. Retain the experimental pose separately and report which atoms, symmetry handling, and receptor alignment you used.

Confidence and energy-style scores answer different questions; neither is a measured binding affinity. A historical complex can overlap model training data, so successful redocking here is a setup check rather than an independent generalization benchmark.

Decide what to do next

Save the source complex, selected receptor, repaired receptor, ligand definition, native scores, preparation settings, and both job IDs. If preparation or pose correspondence fails, fix that before screening a library. For a new target, revisit Repair and validate and Docking and screening, including cofactors, protonation, and experimental controls.

Search documentation