Welcome to DASH-Charge. 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
-
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 serenityff-charge
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.