DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking
Authors: Gabriele Corso, Hannes Stärk, Bowen Jing, Regina Barzilay, Tommi S. Jaakkola
ICLR 2023 | Conference PDF | Archive PDF | Plain Text | LLM Run Details
| Reproducibility Variable | Result | LLM Response |
|---|---|---|
| Research Type | Experimental | Empirically, DIFFDOCK obtains a 38% top-1 success rate (RMSD<2 A) on PDBBind, significantly outperforming the previous state-of-the-art of traditional docking (23%) and deep learning (20%) methods. Moreover, while previous methods are not able to dock on computationally folded structures (maximum accuracy 10.4%), DIFFDOCK maintains significantly higher precision (21.7%). Finally, DIFFDOCK has fast inference times and provides confidence estimates with high selective accuracy. |
| Researcher Affiliation | Academia | Gabriele Corso , Hannes St ark , Bowen Jing , Regina Barzilay & Tommi Jaakkola CSAIL, Massachusetts Institute of Technology |
| Pseudocode | Yes | Algorithm 1: Training procedure (single epoch)Input: Training pairs {(x , y)}, RDKit predictions {c}foreach c, x , y do Let x0 arg minx Mc RMSD(x , x ); Compute (r0, R0, θ0) A 1 c (x0); Sample t Uni([0, 1]); Sample r, R, θ from diffusion kernels ptr t ( | 0), prot t ( | 0), ptor t ( | 0); Set rt r0 + r; Set Rt ( R)R0; Set θt θ0 + θ mod 2π; Compute xt A((rt, Rt, θt), c); Predict scores α R3, β R3, γ Rm = s(xt, c, y, t) ; Take optimization step on loss L = ||α log ptr t ( r | 0)||2 + ||β log prot t ( R | 0)||2 + ||γ log ptor t ( θ | 0)||2 |
| Open Source Code | Yes | Extensive details about the experimental setup, data, baselines, and implementation are in Appendix D.4 and all code is available at https://github.com/gcorso/Diff Dock. |
| Open Datasets | Yes | We use the molecular complexes in PDBBind [Liu et al., 2017] that were extracted from the Protein Data Bank (PDB) [Berman et al., 2003]. |
| Dataset Splits | Yes | We employ the time-split of PDBBind proposed by St ark et al. [2022] with 17k complexes from 2018 or earlier for training/validation and 363 test structures from 2019 with no ligand overlap with the training complexes. |
| Hardware Specification | Yes | We trained our final score model on four 48GB RTX A6000 GPUs for 850 epochs (around 18 days). The confidence model is trained on a single 48GB GPU. For inference, only a single GPU is required. ... We measured the inference time when running on an RTX A100 40GB GPU when generating 10 samples. ... Predictions were run on 48GB A6000 GPUs, but for 12/361 complexes the prediction ran out of memory even when reducing the chunk size and were, therefore, discarded. |
| Software Dependencies | Yes | As summarized in Section 4.5, we use convolutional networks based on tensor products of irreducible representations (irreps) of SO(3) [Thomas et al., 2018] as architecture for both the score and confidence models. In particular, these are implemented using the e3nn library [Geiger et al., 2020]. ... For the receptor residues, we use the residue type as a feature as well as a language model embedding obtained from ESM2 [Lin et al., 2022]. ... We use Adam [Kingma & Ba, 2014] as optimizer for the diffusion and the confidence model. ... To evaluate the generated complexes, we compute the heavy-atom RMSD (permutation symmetry corrected) between the predicted and the crystal ligand when the protein structures are aligned. To account for permutation symmetries in the ligand, we use the symmetry-corrected RMSD of s Py RMSD [Meli & Biggin, 2020]. ... The structures were obtained running esmfold v1 ... We download the PDBBind data as it is provided by Equi Bind from https://zenodo.org/record/6408497. These files were preprocessed with Open Babel before adding any potentially missing hydrogens, correcting hydrogens, and correctly flipping histidines with the reduce library available at https://github.com/rlabduke/reduce. ... from scipy [Virtanen et al., 2020b] |
| Experiment Setup | Yes | We use Adam [Kingma & Ba, 2014] as optimizer for the diffusion and the confidence model. The diffusion model with which we run inference uses the exponential moving average of the weights during training, and we update the moving average after every optimization step with a decay factor of 0.999. The batch size is 16. We run inference with 20 denoising steps on 500 validation complexes every 5 epochs and use the set of weights with the highest percentage of RMSDs less than 2 A as the final diffusion model. We trained our final score model on four 48GB RTX A6000 GPUs for 850 epochs (around 18 days). |