Welcome to DASH. This repository is a collection of scripts, tools and other resources for partial charges in MD simulations.
It contains tools to generate partial charges for given molecules quickly, using the DASH-charge workflow and using openff to generate all other parameters. A pre computed DASH (Dynamic Attention-based Substructure Hierarchy) tree can be used to generate charges for a given molecule.
Additionally, this repository contains all tools and functions needed to generate a new decision tree for partial charge assignmend, based on the attention data of a graph neural network, cabable of predicting the partial charges of a molecule.
This repository contains code for the publication by M. Lehner et al. DOI: arXiv:2305.15981 and 10.1021/acs.jcim.3c00800
-
Data Preperation
- Select data from Database (ChEMBL)
- Generate diverse data set
- Generate feature vectors
-
Graph neural network
- Generate graph neural network (PyTorchGeometric)
- Train graph neural network
- Predict partial charges
- Attention Extraction (GNNExplainer)
-
DASH Tree
- Generate DASH tree (attention based)
- Tools for DASH tree
- file I/O
- pruning
- statistics
- assigning charges
- Normalization of charges
-
OpenFF plugin
- Add DASH tree to OpenFF charge assignment
-
OpenFF-Evaluator
- Tools for validation of the charges with OpenFF-Evaluator
-
Examples
- Examples for all important functions and tools
- A good starting point for new users
This repository comes with a conda environment file. To install the environment, run the following command in the root directory of this repository:
conda env create -f environment.yml
conda activate dash
python setup.py install
This will create a conda enviroment with the correct packages and install the openff plugin for partial charge assignment in openff. If you plan on only using the DASH tree and not developing new trees you can also use the file min_environment.yml
instead, which does not contain any pytorch and pytorch geometric libraries.