User Guide

Your first docking job

Dock 137 EGFR-active molecules from ChEMBL against PDB 1M17 in the UI, then reproduce it with the SDK.

The scenario#

We'll re-dock a known active set against EGFR (PDB 1M17) to validate that high-affinity binders score lowest in our pipeline.

UI walkthrough#

  • Open Docking → New job
  • Receptor: pick EGFR Kinase Domain (1M17)
  • Pocket: leave Pocket 1 (auto-detected, druggable score 0.95)
  • Ligands: select an existing dataset (EGFR Inhibitor Discovery Set v1)
  • Parameters: keep defaults (exhaustiveness=8, num_modes=9)
  • Click Start job
Expected runtime: ~18 minutes for 137 molecules with 8 concurrent workers.

API equivalent#

screen_egfr.py
from pymolhub import MolHub

mh = MolHub()

job = mh.docking.submit(
    receptor="1M17",
    ligand_dataset="ds_01",   # EGFR Inhibitor Discovery Set v1
    pocket="auto",
    exhaustiveness=8,
    num_modes=9,
)
job.wait()

# Sort by affinity, take top 10
top10 = sorted(job.results(), key=lambda r: r.affinity_kcal_mol)[:10]
for r in top10:
    print(f"{r.ligand_chembl_id:12s} {r.affinity_kcal_mol:6.1f} kcal/mol")

Tuning parameters#

  • exhaustiveness — higher = slower but more reproducible. Try 16 for publication-quality runs.
  • num_modes — keep ≥9 to capture alternative poses.
  • energy_range — set 3.0 kcal/mol to filter low-quality modes.
  • Box center / size — override via pocket={...} for non-default sites.