Skip to content

Junction Tree Variational Autoencoder for Molecular Graph Generation (ICML 2018)

License

Notifications You must be signed in to change notification settings

PuncocharM/icml18-jtnn

 
 

Repository files navigation

Junction Tree Variational Autoencoder for Molecular Graph Generation

Official implementation of our Junction Tree Variational Autoencoder https://arxiv.org/abs/1802.04364

In this fork the code is updated to run with Pyhon 3 and a newer version of PyTorch.

Accelerated Version

We have accelerated our code! The new code is in fast_jtnn/, and the VAE training script is in fast_molvae/. Please refer to fast_molvae/README.md for details.

Requirements

  • Linux (We only tested on Ubuntu)
  • RDKit (version == 2017.09) ... with newer rdkit you need to recalculate the vocabulary and retrain the models
  • Python (version == 3.6)
  • PyTorch (version >= 1.3.1)
  • tqdm

To install RDKit, please follow the instructions here http://www.rdkit.org/docs/Install.html

We highly recommend you to use conda for package management.

Quick Start

The following directories contains the most up-to-date implementations of our model:

  • fast_jtnn/ contains codes for model implementation.
  • fast_molvae/ contains codes for VAE training. Please refer to fast_molvae/README.md for details.

The following directories provides scripts for the experiments in our original ICML paper:

  • bo/ includes scripts for Bayesian optimization experiments. Please read bo/README.md for details.
  • molvae/ includes scripts for training our VAE model only. Please read molvae/README.md for training our VAE model.
  • molopt/ includes scripts for jointly training our VAE and property predictors. Please read molopt/README.md for details.
  • jtnn/ contains codes for model formulation.

Contact

Wengong Jin (wengong@csail.mit.edu)

About

Junction Tree Variational Autoencoder for Molecular Graph Generation (ICML 2018)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%