DiffDock quickstart
Run DiffDock-L in six steps — pick a protein, add SMILES or an SDF, keep 10 poses and 20 diffusion steps, and download ranked pose files in 5-15 minutes.
You want to predict how a ligand sits in a protein's pocket. DiffDock does it in a few guided steps — set your protein target, add your ligand(s), and submit — no scoring function to tune, and no binding site to define (the platform always docks against the whole protein).
Quick start with .bloom* platform
DiffDock is a diffusion-based molecular docking method. The .bloom* platform uses DiffDock-L, the latest version with state-of-the-art success rates on standard benchmarks. Unlike traditional docking methods that rely on scoring function optimization, DiffDock generates multiple binding poses per ligand through a learned diffusion process over the space of ligand poses. The model is released under the MIT license.
Step-by-step docking workflow
Access the DiffDock tool
Navigate to the Molecular Docking tool in .bloom*'s interactive workspace. The tool provides a guided interface for all input methods and validation.
Set up your protein target
Option A: PDB ID (fastest)
- Click PDB ID in the protein input section
- Type a PDB code (e.g., "6LU7" for SARS-CoV-2 main protease)
- .bloom* automatically loads and previews the structure
- Review the 3D preview to confirm the correct protein
Option B: Upload custom structure
- Click Upload PDB File in the protein input section
- Select your PDB or mmCIF file (supports .gz compression)
- .bloom* validates the format and loads a 3D preview
- Use the viewer to inspect the structure before proceeding
Option C: From previous job
- Click From Previous Job in the protein input section
- Select a completed job that produced protein structures (e.g., ESMFold results)
- If the job output contains multiple files, choose the specific PDB file
- .bloom* extracts and previews the selected structure
Specify your ligands
Option A: Direct SMILES entry
- Click SMILES String in the ligand input section
- Enter your SMILES string (e.g., "CC(=O)Oc1ccccc1C(=O)O" for aspirin)
- For multiple ligands, enter each SMILES on a new line
- .bloom* validates syntax and shows molecular previews
Option B: Upload compound file
- Click Upload SDF File or Upload SMILES/CSV File
- Select your compound file from your computer
- For CSV files, ensure SMILES are in the first column
- .bloom* parses the file and shows the number of compounds detected
Option C: From chemistry tools
- Click From Previous Job in the ligand input section
- Select outputs from AiZynthFinder, DeepPurpose, or other generative chemistry tools
- Choose specific compounds or use all generated molecules
- .bloom* handles format conversion automatically
Configure job settings
Basic settings (recommended for first runs):
- Leave Job Name blank for automatic naming, or enter a descriptive name
- Keep default parameters (10 poses, 20 diffusion steps)
Advanced settings (via gear icon):
- Increase Number of Poses (up to 40) for virtual screening
- Adjust Diffusion Steps higher (up to 40) for better quality (slower)
Submit and monitor the job
- Click Run Molecular Docking to start the job
- .bloom* shows real-time progress through diffusion phases
- Typical jobs complete in 5-15 minutes depending on protein size
- Receive notifications when complete (if enabled)
Review and download results
View results in .bloom:*
- Poses load automatically in the 3D viewer
- Compare different poses side-by-side
- Check confidence scores and rankings
- Export images or share results
Download data:
- Click Download to get results as ZIP archive
- Contains:
results.json, individual pose PDB/SDF files - Use for further analysis in external tools
Common quick-start scenarios
Virtual screening campaign
- Use PDB ID for protein target
- Upload CSV file with 100+ SMILES strings
- Set poses to 20-30 per compound
- Submit and let .bloom* process the library
Hit optimization
- Upload protein structure from previous work
- Enter SMILES for compound series
- Set higher pose count (30) for diversity
- Compare poses across analogs
Target validation
- Use UniProt ID to fetch protein sequence
- Enter known ligand SMILES
- Compare predicted vs. experimental binding modes
Quality control checklist
Protein preparation
- Structure is complete (no missing backbone atoms)
- Appropriate protonation state
- Relevant chains only (remove unnecessary domains)
Ligand preparation
- Valid SMILES syntax (use external validators if unsure)
- Reasonable molecular weight (<1000 Da for typical screening)
- No unusual elements or query atoms
- Correct formal charges and stereochemistry
Job configuration
- Appropriate number of poses for your use case
- Realistic runtime expectations
- Sufficient computational resources allocated
Troubleshooting common issues
Job fails immediately
- Check protein file format (valid PDB/mmCIF)
- Verify ligand SMILES syntax
No poses generated
- Check for protein structure issues (missing atoms, invalid chains)
- Verify the ligand SMILES parses to a reasonable 3D conformer
Poor pose quality
- Increase diffusion steps (
inference_steps, up to 40) in advanced settings - Consider protein preparation (protonation, cleaning)
Slow performance
- Reduce number of poses requested
- Split large batches into smaller jobs
Next steps after docking
Pose validation:
- Run molecular dynamics simulations
- Calculate binding free energies (MM/GBSA)
- Analyze protein-ligand interactions
Compound optimization:
- Use poses as input for generative chemistry (DeepPurpose)
- Design focused libraries around best poses
- Optimize synthetic accessibility (AiZynthFinder)
Further analysis:
- Export to visualization tools (PyMOL, Chimera)
- Share results with collaborators
- Integrate into larger drug discovery workflows
Read next
Was this page helpful?
DiffDock inputs and parameters
Protein by PDB ID, UniProt ID or upload; ligands as SMILES, SDF or CSV; samples_per_complex and inference_steps up to 40; no binding-site parameter at all.
DiffDock outputs and ranking
Ranked pose SDF and PDB files plus results.json with poseId, rank and score — why that score is pose accuracy within 2 Å, not affinity, and which to keep.