Molecule Design using Monte Carlo Tree Search with Neural Rollout
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
RNN-model update Sep 1, 2017
data update Sep 1, 2017
train_RNN bugfix for SyntaxError Nov 5, 2017
.DS_Store Update May 9, 2018


Molecule Design using Monte Carlo Tree Search with Neural Rollout. ChemTS can design novel molecules with desired properties(such as, HOMO-LUMO gap, energy, logp..). Combining with rDock, ChemTS can design molecules active to target proteins. The ChemTS paper is available at . Also, we introduced the distributed parallel ChemTS that can accerlate molecular discovery. And the distributed parallel ChemTS is available at


  1. Python>=2.7
  2. Keras (version 2.0.5) If you installed the newest version of keras, some errors will show up. Please change it back to keras 2.0.5 by pip install keras==2.0.5.
  3. rdkit
  4. rDock

How to use ChemTS?

For usage, please refer the following instructions.  Currently, the package hasn't been finished very well... If you want to implement your own simulator, please check The full package will be updated later.

Train a RNN model for molecule generation

  1. cd train_RNN
  2. Run python to train the RNN model. GPU is highly recommended for reducing the training time.

Design materials with desired HOMO-LUMO and internal energy (coming soon)

Design molecules active to target proteins

  1. cd ligand_design
  2. Run python

MCTS for logP optimization

There are two versions of chemts for logP optimization. The search tree of the old version added all possible smiles symbols as children nodes. While the new version chemts only expands children nodes with high probabilities predicted by RNN.

  1. cd mcts_logp_improved_version
  2. Run python


This package is distributed under the MIT License.