Skip to content

Partial Charge assignment for Molecular Dynamics

License

Notifications You must be signed in to change notification settings

rinikerlab/DASH-tree

Repository files navigation

Welcome to DASH

CI pre-commit arXiv

Description

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

Content

  • 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

Installation

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.