Code Monkey home page Code Monkey logo

esp_dnn's Introduction

ESP-DNN: A Graph-Convolutional Deep Neural Network for predicting electrostatic potential surfaces

TOC
This repository contains the trained models and code for generating PQR files for ligands and proteins that allow creating near-DFT-quality molecular ESP surfaces. The PQR files generated by our models contain charges on atoms as well as off-centred charges on atomic features (e.g., lone pairs, sigma holes, p orbitals).

For generating ligand PQR files, a graph convolutional deep neural network (DNN) model, trained on ESP surfaces derived using DFT calculations for ~100,000 molecules, is used. For proteins, parametrized charges for amino acids are used, which are fully compatible with the ligand ESP surfaces generated using the DNN model.

The details about methods and validation can be cound in this paper

System requirements

This program will run only on 64 bit linux operating systems.

How to install

To run ESP-DNN, you need to:

  • Clone this repository
  • setup Python and third-party dependencies.
  • (optionally) install this package.

Cloning this repository

See "Clone" button on this page for further information

Setting up Python and third-party dependencies

Our package has been developed and tested using Python 2.7 and the following versions of the third-party packages:

  • rdkit==2018.09.3
  • keras==2.2.4
  • tensorflow==1.10.0
  • numpy==1.16.2

We recommend using Anaconda Python distribution for installing Python and the dependencies. Clone this repository and run the following commands:

conda env create -f environment.yml
source activate esp-dnn-env

(Optionally) installing this package

If you want to be able to run this program from any directory, you need to install this package. Otherwise, you should cd {THIS_REPOSITORY} before you use this program. For example, if you cloned this repository in /home/username directory, then you need to cd /home/username/ESP_DNN before running this program.

For installing the package, run the following commands.

conda activate esp-dnn-env
cd {THIS_REPOSITORY}
python setup.py install

Example runs

Note: You need to be running the following commands after you cd {THIS_REPOSITORY} if you have not installed this package.

To see the help on how to run the program run:

python -m esp_dnn.predict -h

This package contains example ligand and protein PDB files in the example directory. The output PQR files for each ligand and protein are also provided in the same directory for comparison.

Running prediction on ligand files:

python -m esp_dnn.predict -m ligand -i {THIS_REPOSITORY}/examples/ligands

Running prediction on protein files:

python -m esp_dnn.predict -m protein -i {THIS_REPOSITORY}/examples/proteins

Compare the PQR files generated using the above commands with the corresponding *.saved files in the example directory.

Visualizing ESP surfaces

We recommend using NGL viewer

  • Open the PQR file using the File menu
  • Add a surface representation using the three line menu icon on the side bar on the right
  • On the surface menu, set:
    • surfaceType = av
    • radiusType = explicit
    • colorScheme = electrostatic

You can also visualize the surface in a Jupyter Notebook using the nglview plugin:

  • Setup Jupyter and install the nglview package
  • Within a notebook
import nglview as nv

pqrPath = "/path/to/esp_dnn_output.pqr"
repr = [
    {"type": "licorice", "params": {}},
    {"type": "surface", "params":{
        "surfaceType": "av",
        "radiusType": "explicit",
        "colorScheme": "electrostatic",
        "scaleFactor": 4.0,
        "opacity": 0.5,
        "colorDomain": [-50, 50],   # potential range in kcal/mol
        "colorScale": 'rwb'         # Try 'rainbow', or any other scheme from ngl
    }}
]
view = nv.show_file(pqrPath)
view.representations = repr
view

nglview-example

Exporting Surfaces

The surface meshes generated by NGL (along with electrostatic potentials at each vertex) can be exported using the following NodeJS script. https://github.com/AstexUK/esp-surface-generator

Authors

  • Prakash Chandra Rathi
  • R. Frederick Ludlow
  • Marcel L. Verdonk


Astex Pharmaceuticals,
436 Cambridge Science Park
Milton Road
Cambridge CB4 0QA
United Kingdom

Publication

Practical High-Quality Electrostatic Potential Surfaces for Drug Discovery Using a Graph-Convolutional Deep Neural Network

Acknowledgements

This work was funded by a postdoctoral fellowship awarded to PCR under the “Sustaining Innovation Postdoctoral Training Program” at Astex Pharmaceuticals. We would like to thank Andreas Bender and Richard Lewis of the Chemistry Department at Cambridge University for getting us started with model training and helpful discussions. We thank the members of the computational chemistry and informatics department for helpful discussions. In particular we thank Gianni Chessari for discussions around XIAP SAR, Paul Mortenson for assisting us setting up Q-chem calculations, and Chris Murray and Richard Hall for useful feedback and for reading the manuscript.

Contact

For any suggestions, comments, issues, please contact us using "pli-at-astx-dot-com"

esp_dnn's People

Contributors

fredludlow avatar prakashrathi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.