Get started

This page discusses the prerequisites and outlines the installation procedure.

Requirements

This package is developed and tested on a Python 3.7.x version but any higher version should also work without any problems. The package requires installations of the following packages:

The packages should be installed in the order they are listed. Detailed installation instructions can be found in the next section.

Installation

Note

This installation guide uses the Python environment manager conda. If you are not familiar with conda you can familiarize yourself with it here.

  1. Start by creating a conda environment and activating it.

$ conda create -n pl-moga
$ conda activate pl-moga
  1. Next, we will install all prerequisites starting with molSimplify. For this we need to clone their repository and navigate to the projects root directory.

$ git clone https://github.com/hjkgrp/molSimplify.git
$ cd molSimplify
  1. Then we will install molSimplify’s prerequisites. The authors of the package provide a environment file that we can use to update our environment with all necessary dependencies. Afterwards we navigate back to our starting directory.

$ conda env update --file devtools/conda-envs/mols.yml
$ cd ..
  1. And install molSimplify itself.

$ pip install -e . --no-deps
  1. Then we install xTB with conda.

$ conda install -c conda-forge xtb
  1. Then we install uxtbpy with pip.

$ pip install git+https://github.com/hkneiding/uxtbpy
  1. Finally we clone the PL-MOGA repository and navigate to the projects root directory.

$ git clone https://github.com/hkneiding/PL-MOGA.git
$ cd PL-MOGA

The cloned repository is ready to be used as is and does not need to be installed.

Note

molSimplify has a lot of dependencies of its own and their installation can take a long time.

Adding ligands

In order to use molSimplify to build transition metal complexes during the execution of the genetic algorithm we need to add our own custom ligands to its internal library. For this we need their respective xyz structure and metal coordinating atom indices. All ligands utilized in the corresponding publication are stored in the ligands.xyz file in the ligands directory. The comment line of each xyz is structured as follows:

` <name> | charge: <charge> | conn atom: [<conn atoms lists>] `

In order to add them to molSimplify’s library you can use the add_ligands_to_molsimplify.py script as follows

$ python add_ligands_to_molsimplify.py ligands.xyz

Adding of the ligands can take some time. Once completed we are ready to setup runs in the chemical spaces introduced in the publication.

Note

While the ligands.xyz contains the ligands of all experiments in the associated publication, we also provide invidual files with the ligands of each of the different chemical spaces explored (1M, 1M_phosphine, 1B, 1B_rand).

Note

If you want to add your custom ligands to the library you should generate an xyz file with the same structure as in ligands.xyz and use the add_ligands_to_molsimplify.py script passing it as first argument.