https://github.com/minkaixu/alidiff
NeurIPS24: Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization
https://github.com/minkaixu/alidiff
Last synced: 6 months ago
JSON representation
NeurIPS24: Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization
- Host: GitHub
- URL: https://github.com/minkaixu/alidiff
- Owner: MinkaiXu
- Created: 2024-10-14T03:53:01.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-11-12T22:22:51.000Z (7 months ago)
- Last Synced: 2024-11-12T23:24:23.477Z (7 months ago)
- Language: Python
- Size: 10.6 MB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization
This repository is the official implementation of Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization (NeuIPS 2024). [[PDF]](https://arxiv.org/pdf/2407.01648)
> [**Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization**](https://arxiv.org/abs/2407.01648)
>
Siyi Gu*, Minkai Xu*, Alexander Powers, Weili Nie, Tomas Geffner, Karsten Kreis, Jure Leskovec, Arash Vahdat, Stefano Ermon
>
Stanford University, NVIDIA
![]()
## Environment
```bash
conda create -n target python=3.8
conda activate target
conda install pytorch==2.0.1 pytorch-cuda=11.7 -c pytorch -c nvidia
conda install pyg -c pyg
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.0.0+cu117.html
conda install rdkit openbabel tensorboard pyyaml easydict python-lmdb -c conda-forge# For Vina Docking
pip install meeko==0.1.dev3 scipy pdb2pqr vina==1.2.2
python -m pip install git+https://github.com/Valdes-Tresanco-MS/AutoDockTools_py3
```-----
## Training from scratch### Data Generation
#### SFT Data
The data preparation follows (https://github.com/guanjq/targetdiff).#### Preference Data
```bash
python gen_data.py
```### Train
```bash
python scripts/train_ipo.py configs/training_ipo.yml
```## Sampling
```bash
python scripts/sample_diffusion.py configs/sampling.yml --data_id {i} # Replace {i} with the index of the data. i should be between 0 and 99 for the testset.
```### Sampling Results
https://drive.google.com/drive/folders/1Auvigp6FLgNKY0i8eVLQf5loFwrIdW0G?usp=sharing## Evaluation
### Evaluation from sampling results
```bash
python scripts/evaluate_diffusion.py {OUTPUT_DIR} --docking_mode vina_score --protein_root data/test_set
```
The docking mode can be chosen from {qvina, vina_score, vina_dock, none}### Evaluation results
https://drive.google.com/drive/folders/1eRCcALnBpuVgjUqqRucpZSTtF6oT9pX3?usp=sharing## Citation
```
@inproceedings{gu2024aligning,
title={Aligning Target-Aware Molecule Diffusion Models with Exact Energy Optimization},
author={Gu, Siyi and Xu, Minkai and Powers, Alexander and Nie, Weili and Geffner, Tomas and Kreis, Karsten and Leskovec, Jure and Vahdat, Arash and Ermon, Stefano},
booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
year={2024},
url={https://openreview.net/forum?id=EWcvxXtzNu}
}
```