The task of designing organic photovoltaics and emitters will require the use of XTB, a program package of semi-empirical quantum mechanical methods, and CREST, a utility of xtb used to sample molecular conformers.
The binaries are provided in here. Place in home directory, and the software can be sourced using
export XTBHOME=${HOME}/xtb
export PATH=${PATH}:${XTBHOME}/bin
export XTBPATH=${XTBHOME}/share/xtb:${XTBHOME}:${HOME}
export MANPATH=${MANPATH}:${XTBHOME}/share/man
The task of designing molecules that dock to proteins requires the use of SMINA, a method for calcualte docking scores of ligands onto solved structures (proteins).
All datasets are found in the datasets directory.
Task | Dataset name | Number of smiles | Columns in file | ||||
---|---|---|---|---|---|---|---|
Designing OPV | hce.csv |
24,953 | HOMO-LUMO gap (↑) | LUMO (↓) | Dipole (↑) | Combined objective (↑) | |
Designing OPV | unbiased_hce.csv |
1,000 | HOMO-LUMO gap (↑) | LUMO (↓) | Dipole (↑) | Combined objective (↑) | |
Designing emitters | gdb13.csv |
403,947 | Singlet-triplet gap (↓) | Oscillator strength (↑) | Multi-objective (↑) | Time (s) | |
Designing drugs | docking.csv |
152,296 | 1SYH (↓) | 6Y2F (↑) | 4LDE (↑) | Time (s) | |
Designing drugs | reactivity.csv |
60,828 |
To use the evaluation function, load either the full xtb calculation from the pce
module, or use the surrogate model, with pretrained weights.
import pandas as pd
data = pd.read_csv('./datasets/hce.csv') # or ./dataset/unbiased_hce.csv
smiles = data['smiles'].tolist()
smi = smiles[0]
## use full xtb calculation in hce module
from tartarus import pce
dipole, hl_gap, lumo, combined, pce_1, pce_2, sas = pce.get_properties(smi)
## use pretrained surrogate model
dipole, hl_gap, lumo, combined = pce.get_surrogate_properties(smi)
import pandas as pd
data = pd.read_csv('./datasets/gdb13.csv') # or ./dataset/unbiased_hce.csv
smiles = data['smiles'].tolist()
smi = smiles[0]
## use full xtb calculation in hce module
from tartarus import tadf
st, osc, combined = tadf.get_properties(smi)
import pandas as pd
data = pd.read_csv('./datasets/docking.csv') # or ./dataset/unbiased_hce.csv
smiles = data['smiles'].tolist()
smi = smiles[0]
## Design of Protein Ligands
from tartarus import docking
st, osc, combined = docking.get_1syh_score(smi)
st, osc, combined = docking.get_6y2f_score(smi)
st, osc, combined = docking.get_4lde_score(smi)
import pandas as pd
data = pd.read_csv('./datasets/reactivity.csv') # or ./dataset/unbiased_hce.csv
smiles = data['smiles'].tolist()
smi = smiles[0]
## calculating binding affinity for each protein
from tartarus import reactivity
activation_energy, reaction_energy, sa_score = reactivity.get_properties(smi)