Skip to content

Code and data for "Artificial Design of Organic Emitters via a Genetic Algorithm Enhanced by a Deep Neural Network".

Notifications You must be signed in to change notification settings

aspuru-guzik-group/Artificial-Design-of-Organic-Emitters

Repository files navigation

Artificial Design of Organic Emitters via a Genetic Algorithm Enhanced by a Deep Neural Network

This repository contains code for the paper: Artificial Design of Organic Emitters via a Genetic Algorithm Enhanced by a Deep Neural Network. By: AkshatKumar Nigam, Robert Pollice, Pascal Friederich and Alán Aspuru-Guzik

Data Availability

The results of the high-throughput virtual screening of the subset of GDB-13 can be downloaded via this link. For a comprehensive description of the full GDB-13 dataset, please consult the original publication. For every artificial design experiment conducted, we have made the corresponding data sets available. This includes the SMILES strings, singlet-triplet gaps (STG), oscillator strengths (OS), vertical excitation energies (VEE), and optimized Cartesian coordinates of the molecules. Each of these is provided as a pickle file. Below are the respective links:

  1. Experiment 1: Methane Seed - Optimization of STG and OS
  2. Experiment 2: Optimization of STG and OS
  3. Experiment 3: Optimization of OS
  4. Experiment 4: Optimization of STG, OS, and VEE
  5. Experiment 5: Optimization of STG and OS
  6. Experiment 6: Optimization of STG and OS

The pickle files are structured as dictionaries, where the key-value pairs are formatted as: SMILES string -> [singlet_triplet_gap, oscillator_strength, excitation_energy, xyz_file].

For loading the data, the following code snippet can be utilized:

import pickle
with open("./collect_FINAL_EXP2.pickle", "rb") as input_file:
    data = pickle.load(input_file)  # Smiles -> [singlet_triplet_gap, oscillator_strength, excitation_energy, xyz_file]

Prerequisites:

The following are required for running the scripts:

File Navigator

For applying our genetic algorithm to other inverse molecular design tasks, we recommend using the most recent version of JANUS, which is available for installation through pip. You can find the code at JANUS Repository. For more detailed information, you can refer to our publication: JANUS Paper.

The codes in this repository are a development version of JANUS, which we used to generate molecules. Here is a breakdown of key files and their roles:

  • mutate.py: This script is used to generate a list of mutated (or altered) molecules, starting from a base set.
  • crossover.py: This script creates a list of molecules that embody characteristics from two parent molecules.
  • create_new_gen.py: This file facilitates the transition from generation 'x' to 'x+1' by invoking the mutation and crossover functions.
  • EXPERIMENTS/: This directory contains both the adjusted scripts (incorporating the relevant fitness functions) and the corresponding neural networks, organized based on the specific experiments conducted.
  • classification_models.zip: This archive contains the code for training classification models using Bayesian optimization, specifically tailored to individual experiments, and also includes the top-performing models observed across these experiments.
  • data/: This directory contains the results of the high-throughput virtual screening performed and of the validation.
  • inputs/: This directory contains the input files of the quantum chemical simulations carried out.
  • scripts/: This directory contains additional scripts relevant in our publication.

Questions, problems?

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, r[DOT]pollice[AT]rug[DOT]nl)

License

Apache License 2.0

DOI: DOI

About

Code and data for "Artificial Design of Organic Emitters via a Genetic Algorithm Enhanced by a Deep Neural Network".

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages