JANUS: Parallel Tempered Genetic Algorithm Guided by Deep Neural Networks for Inverse Molecular Design
This repository contains code for the paper: JANUS: Parallel Tempered Genetic Algorithm Guided by Deep Neural Networks for Inverse Molecular Design. By: AkshatKumar Nigam, Robert Pollice, Alán Aspuru-Guzik
The code can be run using:
python ./JANUS.py
Within params_init.py, a user has the option to provide:
- A function for calculting property values (see function calc_prop).
- Input parameters that are to be used by JANUS (see function generate_params). Initial parameters are provided. These are picked based on prior experience by the authors of the paper.
All results from running JANUS will be stored here. The following files will be created:
- fitness_explore.txt: Fitness values for all molecules from the exploration component of JANUS.
- fitness_local_search.txt: Fitness values for all molecules from the exploitation component of JANUS.
- generation_all_best.txt: Smiles and fitness value for the best molecule encountered in every generation (iteration).
- init_mols.txt: List of molecules used to initialte JANUS.
- population_explore.txt: SMILES for all molecules from the exploration component of JANUS.
- population_local_search.txt: SMILES for all molecules from the exploitation component of JANUS.
Our code and results for each experiment in the paper can be found here:
- Experiment 4.1: https://drive.google.com/file/d/1rscIyzpTvtyiEkoP1WsF-XtSHJGQStUU/view?usp=sharing
- Experiment 4.3: https://drive.google.com/file/d/1tlIdfSWwzVeJ5kZ98l8G6osE9zf9wP1f/view?usp=sharing
Make a github issue 😄. Please be as clear and descriptive as possible. Please feel free to reach out in person: (akshat[DOT]nigam[AT]mail[DOT]utoronto[DOT]ca, rob[DOT]pollice[AT]utoronto[DOT]ca)