Skip to content

Molecular Design

This application is based on Molecular Design with Parsl.

Installation

This application has certain dependencies which require Conda to install. To get started, create a Conda environment, install the Conda dependencies, and then install the taps package into the Conda environment.

conda create --name taps-moldesign python=3.11
conda activate taps-moldesign
conda install -c conda-forge xtb-python==22.1
pip install -e .[moldesign]

Data

The data needs to be downloaded first.

curl -o data/moldesign/QM9-search.tsv --create-dirs https://raw.githubusercontent.com/ExaWorks/molecular-design-parsl-demo/main/data/QM9-search.tsv

Example

The following configuration will execute tasks with a process pool of four workers. An initial four simulations will be performed and the results of those simulations will train the initial model. Then, the application will iteratively submit new batches of simulations for the highest ranked molecules from the model inference. After the batch of simulations completes, the model is retrained and the cycle starts again until search_count molecules have been simulated.

python -m taps.run --app moldesign \
    --app.dataset data/moldesign/QM9-search.tsv \
    --app.initial-count 4 --app.batch-size 4 --app.search-count 16 \
    --engine.executor process-pool --engine.executor.max-processes 4

Additional parameters are available with python -m taps.run --app moldesign --help.

Warning

It may be necessary to set OMP_NUM_THREADS=1 with certain executors if the simulation task appear to be stuck.

After the application completes, a CSV file containing the simulation results and a PNG graph of the molecules found over time will be saved to the run directory.