Skill Tracer
Skills › Scientific Agent Skills › diffdock › parameters_reference.md

parameters_reference.md

81 lines · skills/diffdock/references/parameters_reference.md at 5f2bc03

Open on GitHub
1# DiffDock v1.1.3 inference contract
2
3Reviewed 2026-09-30 against released `inference.py`, its YAML, and current main
4(commit `85c49b60d3e0b0182a59ee43a34a6d7036981284`, same inference file).
5This covers user-complex inference, not `evaluate` or training.
6

DiffDock v1.1.3 inference contract

Reviewed 2026-09-30 against released inference.py, its YAML, and current main (commit 85c49b60d3e0b0182a59ee43a34a6d7036981284, same inference file). This covers user-complex inference, not evaluate or training.

Raw lines 1 to 6
7## Configuration wins over command line
8
9`main()` loads YAML **after** argparse and overwrites matching argument values.
10Therefore `--config default_inference_args.yaml --samples_per_complex 20` still
11uses the YAML value 10. Edit a copied YAML for any key present there. YAML accepts
12unknown keys without validating that inference uses them; acceptance is not support.
14The bundled `assets/custom_inference_config.yaml` retains the released numerical
15sampling defaults, contains only consumed inference settings, and explicitly uses
16`old_confidence_model`, the actual parser/model-construction name.
18| Option | Released effective default with default YAML | Meaning |
19| --- | --- | --- |
20| `model_dir` | `./workdir/v1.1/score_model` | Score model parameters/checkpoint |
21| `confidence_model_dir` | `./workdir/v1.1/confidence_model` | Confidence model parameters/checkpoint |
22| `ckpt` | `best_ema_inference_epoch_model.pt` | Score weights |
23| `confidence_ckpt` | `best_model_epoch75.pt` | Confidence weights; parser alone instead defaults to `best_model.pt` |
24| `old_score_model` | false | Architecture switch, requiring compatible weights; not a model downloader |
25| `old_confidence_model` | true | Confidence architecture switch |
26| `samples_per_complex` | 10 | Pose candidates per pair |
27| `batch_size` | 10 | Samples processed together within a complex; complexes iterate one at a time |
28| `inference_steps` | 20 | Construct the diffusion time schedule |
29| `actual_steps` | 19 | Number of sampling steps executed; keep consistent with schedule |
30| `no_final_step_noise` | true | Omit last-step stochastic noise |
31| `initial_noise_std_proportion` | 1.4601642460337794 | Initial translation noise setting |
32| `choose_residue` | false | Alternative initial positioning near sampled residue |
33| `save_visualisation` | false | Additional reverse-process PDB trajectory; pose SDFs always written |
34| `out_dir` | `results/user_inference` | Run-specific output directory |
35| `loglevel` | WARNING | `-l`, `--log`, or `--loglevel`; INFO includes successful-run summary |
37Temperature defaults (copy full precision from the asset): translation/rotation/
38torsion `temp_sampling` approximately 1.170/2.064/7.044, `temp_psi` 0.727/0.902/0.595,
39`temp_sigma_data` 0.930/0.746/0.694. Psi is a sampler weighting parameter, **not a
40protein psi dihedral**. These coupled settings are empirically tuned. Increasing one
41does not establish monotonic diversity or accuracy; no validated flexible/rigid presets
42are supplied. More candidates can improve search coverage, without guaranteeing success.

Configuration wins over command line

main() loads YAML after argparse and overwrites matching argument values. Therefore --config default_inference_args.yaml --samples_per_complex 20 still uses the YAML value 10. Edit a copied YAML for any key present there. YAML accepts unknown keys without validating that inference uses them; acceptance is not support.

The bundled assets/custom_inference_config.yaml retains the released numerical sampling defaults, contains only consumed inference settings, and explicitly uses old_confidence_model, the actual parser/model-construction name.

OptionReleased effective default with default YAMLMeaning
model_dir./workdir/v1.1/score_modelScore model parameters/checkpoint
confidence_model_dir./workdir/v1.1/confidence_modelConfidence model parameters/checkpoint
ckptbest_ema_inference_epoch_model.ptScore weights
confidence_ckptbest_model_epoch75.ptConfidence weights; parser alone instead defaults to best_model.pt
old_score_modelfalseArchitecture switch, requiring compatible weights; not a model downloader
old_confidence_modeltrueConfidence architecture switch
samples_per_complex10Pose candidates per pair
batch_size10Samples processed together within a complex; complexes iterate one at a time
inference_steps20Construct the diffusion time schedule
actual_steps19Number of sampling steps executed; keep consistent with schedule
no_final_step_noisetrueOmit last-step stochastic noise
initial_noise_std_proportion1.4601642460337794Initial translation noise setting
choose_residuefalseAlternative initial positioning near sampled residue
save_visualisationfalseAdditional reverse-process PDB trajectory; pose SDFs always written
out_dirresults/user_inferenceRun-specific output directory
loglevelWARNING-l, --log, or --loglevel; INFO includes successful-run summary

Temperature defaults (copy full precision from the asset): translation/rotation/ torsion temp_sampling approximately 1.170/2.064/7.044, temp_psi 0.727/0.902/0.595, temp_sigma_data 0.930/0.746/0.694. Psi is a sampler weighting parameter, not a protein psi dihedral. These coupled settings are empirically tuned. Increasing one does not establish monotonic diversity or accuracy; no validated flexible/rigid presets are supplied. More candidates can improve search coverage, without guaranteeing success.

Raw lines 7 to 43
44## Input options
46- `protein_ligand_csv`: columns `complex_name,protein_path,ligand_description,protein_sequence`.
47 Overrides single-complex inputs. Upstream fills blank names with `complex_<index>`;
48 the helper intentionally requires explicit safe unique names to avoid collisions.
49- Single pair: `complex_name`, `protein_path` or `protein_sequence`, and
50 `ligand_description`. Always use the full latter name; README's `--ligand` works
51 only as argparse's currently unambiguous abbreviation, not a registered alias.
52- Protein paths and ligand file paths resolve relative to **process CWD**, not CSV location.
53- Ligands: SMILES attempted first, then `.sdf`, `.mol2`, `.pdb`, `.pdbqt` readers.
54 Only the first SDF record is used. Input file conformers are removed and regenerated;
55 a supplied pose is not a starting-pose restraint. Preserve stereochemistry and IDs.

Input options

  • protein_ligand_csv: columns complex_name,protein_path,ligand_description,protein_sequence. Overrides single-complex inputs. Upstream fills blank names with complex_<index>; the helper intentionally requires explicit safe unique names to avoid collisions.
  • Single pair: complex_name, protein_path or protein_sequence, and ligand_description. Always use the full latter name; README's --ligand works only as argparse's currently unambiguous abbreviation, not a registered alias.
  • Protein paths and ligand file paths resolve relative to process CWD, not CSV location.
  • Ligands: SMILES attempted first, then .sdf, .mol2, .pdb, .pdbqt readers. Only the first SDF record is used. Input file conformers are removed and regenerated; a supplied pose is not a starting-pose restraint. Preserve stereochemistry and IDs.
Raw lines 44 to 56
57## Options that do not work as formerly documented
59`--esm_embeddings_path`, `--chain_cutoff`, `--split`, `--tqdm`, `--ode`, `--no_random`,
60`--no_model`, `--resample_rdkit`, and `--limit_failures` are not inference parser options.
61Some belong to evaluation/training. The released default YAML contains historical
62keys (`old_filtering_model`, `sigma_schedule`, `inf_sched_alpha/beta`, `no_random`,
63`no_random_pocket`, `resample_rdkit`, `ode`, `different_schedules`, `limit_failures`,
64`no_model`) which this inference path does not consume. Inference hard-codes the
65`expbeta` schedule. Do not present unused YAML values as operational controls.
67The parser also exposes `gnina_*` fields, but `main()` never passes them into the
68sampler's GNINA branch; use a separate verified GNINA invocation for refinement.
69Do not disable the confidence model: output writing indexes its scores.
71`datasets/esm_embedding_preparation.py` has `--dataset`, `--data_dir`, `--out_file`,
72not `--protein_ligand_csv`; it prepares FASTA (PDBBind) or sequence dictionaries
73(MOAD), not a `.pt` embedding tensor. Arbitrary user-complex inference generates
74ESM2 embeddings internally and has no public CLI embedding-cache flag.

Options that do not work as formerly documented

--esm_embeddings_path, --chain_cutoff, --split, --tqdm, --ode, --no_random, --no_model, --resample_rdkit, and --limit_failures are not inference parser options. Some belong to evaluation/training. The released default YAML contains historical keys (old_filtering_model, sigma_schedule, inf_sched_alpha/beta, no_random, no_random_pocket, resample_rdkit, ode, different_schedules, limit_failures, no_model) which this inference path does not consume. Inference hard-codes the expbeta schedule. Do not present unused YAML values as operational controls.

The parser also exposes gnina_* fields, but main() never passes them into the sampler's GNINA branch; use a separate verified GNINA invocation for refinement. Do not disable the confidence model: output writing indexes its scores.

datasets/esm_embedding_preparation.py has --dataset, --data_dir, --out_file, not --protein_ligand_csv; it prepares FASTA (PDBBind) or sequence dictionaries (MOAD), not a .pt embedding tensor. Arbitrary user-complex inference generates ESM2 embeddings internally and has no public CLI embedding-cache flag.

Raw lines 57 to 75
76## Sources
78- [Released inference parser, YAML merge, outputs](https://github.com/gcorso/DiffDock/blob/v1.1.3/inference.py)
79- [Released default settings](https://github.com/gcorso/DiffDock/blob/v1.1.3/default_inference_args.yaml)
80- [Input processing and ESM truncation](https://github.com/gcorso/DiffDock/blob/v1.1.3/utils/inference_utils.py)
81- [Dataset sequence preparation](https://github.com/gcorso/DiffDock/blob/v1.1.3/datasets/esm_embedding_preparation.py)