
DiffDock-L
Predict protein-ligand binding poses and confidence scores without a predefined binding site.
DiffDock webserver overview
The DiffDock webserver runs DiffDock-L, the MIT diffusion model for protein and small-molecule docking, without installation or a GPU. It predicts where and how a ligand binds to a protein without a predefined binding site, and returns ranked binding poses with a confidence score for each.
ProteinIQ runs the official DiffDock release v1.1.3 with the v1.1 (DiffDock-L) models, through the repository's own inference.py and its published default configuration. The receptor can be a structure, a PDB ID, or a protein sequence, which DiffDock folds with ESMFold before docking. For a step-by-step tutorial, benchmarks, and help with errors, see how to use DiffDock online.
What DiffDock-L does
DiffDock treats docking as a generative task. It starts each sample from a random ligand position, orientation, and set of torsion angles, then refines it by reverse diffusion toward a plausible bound pose. A separate confidence model scores every final pose, and the poses are returned in confidence order.
- The protein is held rigid. Backbone and side chains do not move.
- The ligand's 3D geometry is regenerated with RDKit from its chemistry, so uploaded coordinates do not change the result.
- Protein residues are described with ESM-2 language model embeddings, which carry sequence information into the model.
- Each run starts from new random poses. DiffDock has no seed, so repeated runs differ.
DiffDock vs DiffDock-L
DiffDock-L is the second DiffDock release from the same MIT group. It is the model this webserver runs.
| DiffDock | DiffDock-L | |
|---|---|---|
| Publication | ICLR 2023 | ICLR 2024 |
| Parameters | About 20 million | About 30 million |
| PDBBind top-1 within 2 Å, 10 samples | 35.0% | 43.0% |
| DockGen (unseen protein domains), 10 samples | 7.1% | 22.6% |
DiffDock-L added synthetic training complexes, training balanced across protein domain clusters, and confidence bootstrapping, which improved docking to protein classes unlike the training data (Corso et al., 2024). NVIDIA's DiffDock NIM is a separately trained model with its own weights and is not the model used here.
When to use DiffDock
DiffDock fits blind docking, when the binding site is unknown, and quick pose hypotheses for drug-like ligands. Other methods fit other questions:
| Question | Better choice |
|---|---|
| The pocket is known and you need an energy score or a reproducible seed | AutoDock Vina |
| You need convolutional neural network scoring of prepared 3D ligands | GNINA |
| The protein is likely to change shape when the ligand binds | DynamicBind or FlowDock |
| You want protein and ligand predicted together, or an affinity estimate | Boltz-2 |
Pricing
A DiffDock job costs 50 credits. The price does not change with the number of poses, the diffusion steps, the trajectory option, the receptor size, or whether the receptor is a structure or a sequence. The exact quote is shown before submission.
Inputs
| Input | Accepted formats | Limits |
|---|---|---|
Protein (structure) | .pdb, .ent, or an RCSB PDB ID | Up to 3,000 protein residues (1,000 on the Free plan). Files up to 50 MB. |
Protein (sequence) | Pasted sequence, .fasta, .fa, or .txt | Folded with ESMFold inside DiffDock. Each FASTA record is one chain. |
Ligand | SMILES, .smiles, .sdf, .mol, .mol2, .pdb, .pdbqt, or a PubChem fetch | Up to 150 heavy (non-hydrogen) atoms per ligand. Files up to 10 MB. A multi-record SDF runs one job per record. |
The receptor file is used as submitted. DiffDock regenerates the ligand's 3D geometry for every input format. Each receptor chain can contain up to 1,022 residues, with at most 3,000 residues in total. ProteinIQ checks these limits before starting the job because DiffDock truncates the ESM-2 embeddings at 1,022 residues per chain.
ProteinIQ warns for ligands above 100 heavy atoms and rejects ligands above 150 before charging. This is a hosting limit, not a maximum defined by DiffDock. Large or flexible ligands may still fail during conformer preparation below this limit. Contact support to discuss larger ligands.
Settings
Defaults match DiffDock's default_inference_args.yaml.
Docking
| Parameter | Type | Default | Description |
|---|---|---|---|
Number of poses | integer | 10 | Poses sampled and ranked per job, from 1 to 40. |
Inference steps | integer | 20 | Length of the reverse diffusion schedule, from 10 to 30. |
Actual steps | integer | 19 | Schedule steps executed, from 8 to 30. Cannot exceed Inference steps. |
No final step noise | boolean | true | Removes noise from the last executed diffusion step. |
Save reverse-diffusion visualization | boolean | false | Writes a trajectory PDB file for each ranked pose. |
Advanced sampling
| Parameter | Type | Default | Description |
|---|---|---|---|
Start at a random residue | boolean | false | Places each initial ligand position at a random receptor residue instead of near the protein center. |
Initial noise proportion | number | 1.4601642460337794 | Scale of the initial translation noise, from −10 to 10. Negative values scale the model's maximum translation noise instead of the receptor radius. |
Sampling temperature (translation) | number | 1.170050527854316 | Sampling temperature for translation, from 0 to 20. |
Sampling temperature (rotation) | number | 2.06391612594481 | Sampling temperature for rotation, from 0 to 20. |
Sampling temperature (torsion) | number | 7.044261621607846 | Sampling temperature for torsion angles, from 0 to 20. |
Psi temperature (translation) | number | 0.727287304570729 | Psi temperature parameter for translation, from 0 to 10. |
Psi temperature (rotation) | number | 0.9022615585677628 | Psi temperature parameter for rotation, from 0 to 10. |
Psi temperature (torsion) | number | 0.5946212391366862 | Psi temperature parameter for torsion angles, from 0 to 10. |
Sigma data temperature (translation) | number | 0.9299802531572672 | Sigma data temperature parameter for translation, from 0.01 to 10. |
Sigma data temperature (rotation) | number | 0.7464326999906034 | Sigma data temperature parameter for rotation, from 0.01 to 10. |
Sigma data temperature (torsion) | number | 0.6943254174849822 | Sigma data temperature parameter for torsion angles, from 0.01 to 10. |
The advanced defaults are the values the DiffDock authors tuned for the DiffDock-L models.
Outputs
Results open in three views: Viewer shows the receptor with the selected pose, Data lists each pose with its Rank and Confidence, and Files lists every downloadable file.
| File | Description |
|---|---|
pose_rank01.sdf, pose_rank02.sdf, ... | Docked ligand poses in rank order, unchanged from DiffDock's rank{n}_confidence{c}.sdf files. |
protein.pdb | The submitted receptor, for structure inputs. |
complex_0_esmfold.pdb | The receptor ESMFold predicted, for sequence inputs. |
rank{n}_reverseprocess.pdb | Reverse diffusion trajectory for each ranked pose, when Save reverse-diffusion visualization is on. |
native/docking_arrays.npz | Unrounded ligand coordinates and confidence values for every sample. |
native/docking_arrays.index.json | Links each ranked pose file to its sample in the arrays. |
native/inference_args.yaml | The configuration file passed to DiffDock. |
native/inference_invocation.json | The resolved DiffDock arguments, source version, and model checksums. |
native/environment.lock.txt | The package versions of the DiffDock environment. |
native/run.log | The complete DiffDock log. |
The files under native/ record everything needed to describe and reproduce the conditions of a run.
Understanding results
Rankorders poses by confidence, with rank 1 the most confident.Confidenceestimates how likely a pose is to lie within 2 Å of the true binding pose. Higher is better. As a rough guide for the top pose, the DiffDock authors treat values above 0 as high, −1.5 to 0 as moderate, and below −1.5 as low confidence, with lower bands for large ligands, multichain proteins, and apo or predicted structures.- Confidence is not binding affinity and does not check pose geometry. Check selected poses with PoseBusters and rescore with a method such as GNINA when affinity matters.
Limitations
- The receptor is rigid, so induced fit is only captured if the input structure already shows it.
- Accuracy is highest for holo structures and drug-like ligands, and lower for apo, predicted, or very large systems.
- Poses can contain steric clashes or strained geometry even when confidence is high.
- Some rigid polycyclic ligands cannot be embedded by RDKit, and the job then reports that DiffDock could not construct a starting 3D geometry.
- DiffDock is designed for small molecules, not protein-protein or protein-nucleic acid docking.
Related tools
DynamicBind
Predict protein-ligand binding poses while modeling ligand-induced conformational changes.
SigmaDock
Fragment-based SE(3) equivariant diffusion docking for protein-ligand binding pose prediction
FlowDock
Geometric flow matching for generative protein-ligand docking and affinity prediction.
SurfDock
Surface-informed diffusion generative model for reliable and accurate protein-ligand complex prediction
AutoDock-GPU
Dock ligands with AutoDock4 scoring, CUDA acceleration, and flexible receptor sidechains.
AutoDock Vina
Dock ligands into protein structures and estimate binding modes, poses, and affinity scores.
GNINA
Dock small molecules into proteins using CNN scoring and physics-based pose optimization.
PandaDock
Physics-based molecular docking with CPU-optimized hierarchical algorithms
SMINA
Enhanced molecular docking with custom scoring functions and fast minimization
TEMPL Pipeline
Template-based protein-ligand pose prediction with MCS-guided conformer generation.