Skip to content

chopralab/Paddy_Manuscript_Repo

Repository files navigation

Paddy-Arche

Paddy is a Python package developed as an extension of the Paddy Field Algorithm (PFA), a genetic global optimization algorithm proposed by Premaratne et al. (2009). This work contains the first showcasings of the modifications and extended formulations of the PFA, developed by members of Chopra-Lab. Experiments consist of numeric optimization, hyperparameter optimization of a multilayer perceptron, and targeted molecule generation via the junction tree variational autoencoder developed by Jaakkola et al. (2019).

This repo contains both the source code for Paddy and experiments used for benchmarking.

Use of Conda and Dependencies

Note that Conda environments were tested on a CentOS Linux, Version 7 (Core) machine, while using Conda 4.6.11 build version 3.17.9. These requirement files should work for linux-64 distributions running Conda. Additional information regarding use of Conda can be found here.

Conda environments can be created by the command:

conda env create -f name.yml

Where 'name' is the name of the requirement file. All yml's are in the "Requirements" folder.

Downloading Paddy

Paddy and the rest of this repository can be donwloaded via the commands:

git clone https://github.com/chopralab/Paddy_Manuscript_Repo
git submodule init
git submodule update

Experiments

All pathing has been done such that scripts should be run from the 'Paddy_Manuscript_Repo' root directory.

Comands for running Paddy experiments are listed bellow, and can be used inpart for benchmarking with Hyperopt and random sampling. This can be done by switching the prefix of the experiment script:

Paddy:

python MinMax/Paddy_MinMax.py

Hyperopt

python MinMax/Hyperopt_MinMax.py

Results from experiments will be saved to the root directory by default.

MinMax

Should be run using a conda env made from 'paddy.yml' using the commmand:

python MinMax/Paddy_MinMax.py

Interpolation

Should be run using a conda env made from 'paddy.yml' using the command:

python Interpolation/Paddy_Interp.py

MLP Hyperparameter Optimization

Should be run using a conda environment made from 'MLP.yml' in isolation mode using the command:

python -I MLP_Hyperparameter_Optimization/Paddy_Solv.py > YourPath/YourFileName.txt 

JTVAE

Should be run using a conda environment made from 'JTVAE.yml'. Directories for Hyperopt, Paddy, and Random are named as such, with an example command with pathing being:

python JTVAE/Paddy/Paddy_Tversky_Gen.py

Results Visualization

Results can be plotted using scripts provided in the 'Plotting' directory. Data generated for the Paddy manuscript are provided as default. We suggest keeping file names for data generated by users to remain the same, and simply replacing the original ones if one wishes to visualize their own experiments. Experiments run with the scripts provided would require variables, such as changing of random seed numbers or PFARunner Parameters.

For plotting, users should change their working directory to that which contains the plotting script desired for use.

i.e.

cd Plotting/MinMax/
python Bimodal_Plotter.py

MinMax

Results for MinMax optimization can be visualized and plotted with the following comands:

cd Plotting/MinMax/
python Bimodal_Plotter.py

The resulting output should be hpf2.svg and paddyf2.svg.

Interpolation

Placeholding text

MLP Hyperparameter Optimization

Placeholding text

JTVAE

A 3-D scatter plot of sampling space can be plotted using the 'UMAP.yml' environment.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages