This repository contains the code used to generate the results reported in the paper: Conditional Constrained Graph Variational Autoencoders for Molecule Design.
@article{rigoni2020conditional,
title={Conditional Constrained Graph Variational Autoencoders for Molecule Design},
author={Rigoni, Davide and Navarin, Nicol{\`o} and Sperduti, Alessandro},
journal={arXiv preprint arXiv:2009.00725},
year={2020}
}
All the files related to the CCGVAE model will be uploaded soon.
This project uses the conda
environment.
In the root
folder you can find, for each model, the .yml
file for the configuration of the conda
environment and also the .txt
files for the pip
environment.
Note that some versions of the dependencies can generate problems in the configuration of the environment. For this reason, although the setup.bash
file is present for the configuration of each project, it is better to configure them manually.
The project is structured as follows:
data
: contains the code to execute to make the dataset;results
: contains the checkpoints and the results;model
: contains the code about the model;utils
: contains all the utility code;histogramAnalysis
: contains all the code necessary to print the images about the histogram distribution.
First you need to download the necessary files and configuring the environment by running the following commands:
sh setup.bash install
conda activate givae
In order to make de datasets type the following commands:
cd data
python make_dataset.py --dataset [dataset]
Where dataset can be:
- qm9
- zinc
In order to train the model use:
python CCGVAE.py --dataset [dataset] --config '{"generation":0, "log_dir":"./results", "use_mask":false}'
In order to generate new molecules:
python CCGVAE.py --dataset [dataset] --restore results/[checkpoint].pickle --config '{"generation":1, "log_dir":"./results", "use_mask":false}'
While, in order to reconstruct the molecules:
python CCGVAE.py --dataset [dataset] --restore results/[checkpoint].pickle --config '{"generation":2, "log_dir":"./results", "use_mask":true}'
In order to analyze the results, we used the following environmet: ComparisonsDGM.
For any questions and comments, contact Davide Rigoni.
NOTE: Some functions are extracted from the following source code.
MIT