DiffDock-L
v1.1.3Predict protein-ligand binding poses and confidence scores without a predefined binding site.
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. The ligand can be a SMILES string or a structure file, and no binding box is needed.
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.
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.
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 |
| You need to dock two proteins to each other | DiffDock-PP |
The methods also combine well. DiffDock can propose the site on a protein whose pocket is unknown, and AutoDock Vina or GNINA then docks and scores the ligand in that pocket. fpocket gives an independent list of candidate pockets to compare with where the DiffDock poses land.
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.
| 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.
The receptor conformation matters more than any setting. A holo structure, solved with a ligand in the same pocket or bound to a close homologue, gives the best chance of a correct pose. On receptors predicted with ESMFold, the original DiffDock still beat earlier methods, but its top-1 success rate fell to 21.7% (Corso et al., 2023).
Chain order matters for multichain receptors. DiffDock assigns ESM-2 features chain by chain in sorted order of the chain IDs, but reads coordinates in file order. In a file that lists chain B before chain A, residues can receive features computed for another chain. Save multichain receptors with their chains in alphabetical order.
Alternate locations, missing atoms, and nonstandard residues are not repaired. Fix any that affect the pocket first, for example with PDB Fixer, and trim large structures to the chains or domain around the site.
DiffDock keeps the stereochemistry, formal charges, and protonation implied by the ligand input and discards its coordinates. Check those three before submitting, because uploading prepared 3D coordinates does not change the pose. SDF and MOL2 carry bond orders and charges more reliably than PDB or PDBQT. DiffDock was trained on drug-like small molecules; long peptides, nucleic acids, and very large, highly flexible ligands are outside its design.
Defaults match DiffDock's default_inference_args.yaml.
| 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. |
The defaults are the right starting point. Raise Number of poses to 20 or 40 for large proteins or when the pocket is unknown, since each extra sample is another independent starting position around the protein. Keep the step settings at their defaults unless you are comparing protocols.
| 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. Changing them changes the method, so they are controls for method experiments rather than ways to raise accuracy on a single job.
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. DiffDock has no seed, so these files, not a rerun, are the record of a result; keep them with any pose you report.
Rank orders poses by confidence, with rank 1 the most confident.Confidence estimates how likely a pose is to lie within 2 Å RMSD of the true binding pose. Higher is better, and the scale has no fixed bounds.The DiffDock authors give a rough guide for reading the top pose (DiffDock v1.1.3 README):
Top-pose Confidence | Interpretation |
|---|---|
| Above 0 | High confidence |
| −1.5 to 0 | Moderate confidence |
| Below −1.5 | Low confidence |
These bands assume a drug-like ligand and a medium-sized protein with one or two chains in a conformation close to the bound one. For large ligands, large complexes, and apo or predicted receptors, the authors shift the bands down. A negative top score is therefore common and does not by itself mean the run failed.
Confidence works best for ranking poses within one job and for comparing similar jobs on the same receptor. Across different proteins, or across conformations of one protein, the same number means much less. Repeat runs give different values because each run starts from new random poses.
Rank 1 is the model's best guess, not a guarantee. Compare the top three to five poses in Viewer. When several high-ranked poses sit in one pocket with a similar orientation, that agreement is stronger evidence than the top score alone. When they scatter across the protein, treat the site as unresolved and try more poses or a holo structure.
Confidence is not binding affinity, IC50, or Kd. A non-binder rarely gets a confident pose, so the score carries some signal, but it does not rank ligands by strength. For an affinity estimate, rescore the pose with GNINA or AutoDock Vina, whose Vina score is an empirical estimate in kcal/mol, or use MM/GBSA or free energy calculations.
The DiffDock repository includes thrombin structure 1A46 with its bound inhibitor among its example inputs. The receptor has a 26-residue light chain and a 250-residue heavy chain, and the ligand is a large peptide-like inhibitor supplied as SDF. A ProteinIQ run with default settings returned 10 poses with confidence from about −2.4 at rank 1 to about −4.4 at rank 10.
By the rough bands that is low confidence, even though the ligand comes from a crystal structure of this very complex. It is also the situation in which the authors say to shift the bands down: a large, flexible ligand docked into a two-chain receptor. Read confidence relative to the system being docked.
A confident pose is likely to be near the right place, but its geometry is never checked. In the PoseBusters benchmark, the original DiffDock placed 72% of Astex Diverse ligands within 2 Å, yet only 47% were both within 2 Å and physically valid. AutoDock Vina, given a box around the crystal ligand, reached 56% on the combined test (Buttenschoen et al., 2024).
Before relying on a pose, run it with the receptor through PoseBusters to catch clashes, distorted bonds, and other invalid geometry. List its contacts with PLIP or ProLIF and check that the key interactions make chemical sense. Redocking a ligand with a known pose into the same receptor shows whether DiffDock finds the right site on that target.
Refining or rescoring the pose with AutoDock Vina or GNINA gives a physics-based second opinion. When the methods disagree on the site or orientation, treat the pose as uncertain; consensus docking turns that comparison into a selection rule.
A multi-record SDF runs one DiffDock job per molecule against the same receptor, each at 50 credits. DiffDock works better as the pose generator in a screen than as the ranking function, since confidence compares poses of one ligand more reliably than different ligands. A practical virtual screening pass keeps compounds whose top poses agree on the intended pocket, checks them with PoseBusters, and rescores the survivors with GNINA or AutoDock Vina.
DiffDock reports most failures in its log rather than by crashing. The job error quotes DiffDock's own reason, and the complete log is in native/run.log.
| Job error | Cause | What to do |
|---|---|---|
DiffDock could not construct a starting 3D geometry for this ligand. | RDKit could not embed the ligand in 3D (Bad Conformer Id in the log), which affects some rigid polycyclic molecules. | Uploading the same molecule as SDF or MOL does not help. Use a method that keeps a prepared 3D ligand, such as GNINA or AutoDock Vina. |
DiffDock could not read the ligand: ... | DiffDock could not parse the SMILES or ligand file (Failed to read molecule in the log). | Check the SMILES string or file against the reason given after the colon. |
DiffDock could not build the protein-ligand graph: ... | DiffDock skipped the complex (Skipping complex_0 because of the error in the log), usually because of a receptor problem. | Read the reason after the colon, then check the receptor file. |
DiffDock could not read protein residues from the receptor: ... | No readable protein residues, for example in a file whose fixed-width columns were collapsed by a text editor. | Re-export the structure as a standard PDB file, or repair it with PDB Fixer. |
Two problems produce results rather than errors. If the top poses land outside the expected pocket, the pocket may be small, partly closed, or only formed in another conformation; try a holo structure, raise Number of poses, or dock into the known site with AutoDock Vina. If a multichain receptor gives unexpectedly poor results, check that its chains are in alphabetical order, as described under preparing the receptor.
Predict protein-ligand binding poses while modeling ligand-induced conformational changes.
Fragment-based SE(3) equivariant diffusion docking for protein-ligand binding pose prediction
Geometric flow matching for generative protein-ligand docking and affinity prediction.
Surface-informed diffusion generative model for reliable and accurate protein-ligand complex prediction
Dock ligands with AutoDock4 scoring, CUDA acceleration, and flexible receptor sidechains.
Dock ligands into protein structures and estimate binding modes, poses, and affinity scores.
Dock small molecules into proteins using CNN scoring and physics-based pose optimization.
Physics-based molecular docking with CPU-optimized hierarchical algorithms
Enhanced molecular docking with custom scoring functions and fast minimization
Template-based protein-ligand pose prediction with MCS-guided conformer generation.