Install any skill in seconds. Free to start, no credit card required.
Get Started Free →xuzhougeng/diffdock
Predict small-molecule binding poses with DiffDock-L (Corso et al. 2023/2024, github.com/gcorso/DiffDock) — blind diffusion docking that places a ligand into a protein pocket without a predefined search box and ranks the samples with a learned confidence model. Reach for this skill to dock a SMILES or SDF against a PDB, to generate ranked 3D poses for a small fragment library, or to get a starting pose for downstream rescoring. DiffDock predicts geometry, not affinity.
Passed 22 of 22 test cases with the skill, and 9 of 22 without it.
and 19 more in the full report
13 fixed9 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
Write the command line invocation to run batch pose predictions using `data/screening_list.csv` with outputs saved to `results/screen_out`.
| Checked | Without skill | With skill |
|---|---|---|
| Includes python3 -m inference. | Missed | Passed |
| Includes --protein_ligand_csv data/screening_list.csv and --out_dir results/screen_out. | Passed | Passed |
The instructions your model reads when the skill loads.
DiffDock-L is a blind pose predictor: given a protein structure and a ligand,
it samples ligand placements over the whole surface with a diffusion model and
ranks them with a separately trained confidence head. The confidence score
correlates with pose correctness, not with binding free energy — DiffDock does
not predict whether or how tightly the ligand binds, so for hit triage you
still pair it with a scorer (GNINA, MM-GBSA) or with boltz's affinity head.
For protein–protein and nucleic-acid co-folding, route to boltz or chai1.
Code and weights are MIT (github.com/gcorso/DiffDock).
cd $DIFFDOCK_REPO # a clone of github.com/gcorso/DiffDock
python3 -m inference \
--config default_inference_args.yaml \
--protein_path target.pdb \
--ligand_description "COc1ccc(C#N)cc1" \
--out_dir out
For more than one complex, give --protein_ligand_csv batch.csv instead of the
two single-complex flags; the CSV has four columns — complex_name,
protein_path, ligand_description (SMILES or an .sdf/.mol2 path), and
protein_sequence. Leave protein_path empty and fill protein_sequence to
have DiffDock fold the receptor with ESMFold first; that path and a
larger-library screening recipe are in references/workflows.md.
Under --out_dir/<complex_name>/ each sample is written as
rank{N}_confidence{score}.sdf, plus a copy of rank1.sdf for convenience.
The confidence value in the filename is a logit, so it is unbounded and can be
negative; among samples for the same complex higher is better, but values are
not comparable across different complexes or ligands.
inference.py loads --config default_inference_args.yaml after argparse
and replaces every key it finds, so passing --samples_per_complex 40 or
--model_dir ... on the command line is silently ignored if the same key sits
test cases passed, vs 9 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.