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
Package Requirements:
Using The Code:
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.
Output Generation:
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.
Paper Results/Reproducibility:
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