/esp-surface-generator

Generate electrostatic potential surfaces using the output from Astex's ESP_DNN method

Primary LanguageJavaScriptApache License 2.0Apache-2.0

ESP Surface Generation

This program is intended to be used with the PQR files generated by Astex's ESP_DNN model.

Given a molecule it will calculate the Connolly surface and export it in a simple triangle mesh (tmesh) format. It will also evaluate the electrostatic potential at each point on the surface based on either:

  • Point charges (e.g. as generated by ESP_DNN and provided in the PQR file)
  • An electostatic grid (e.g. from a QM calculation)

Installation

This is a javascript (node) package, and requires nodejs 10.0 or greater.

So far it has only been tested on Linux. It should be possible to run on Windows or MacOS with minimal changes.

Installing globally in npm

Installing globally allows adds an executable to your PATH, esp-surface-generator, that can be called from anywhere

sudo npm install -g AstexUK/esp-surface-generator
# To run the program
esp-surface-generator input.pqr output.tmesh

If you don't have sudo but want to install 'globally for a single user' then see here

Non-global installation

# Clone this repo:
git clone https://github.com/AstexUK/esp-surface-generator.git
cd esp-surface-generator
npm install
# To run the progrma 
./cli.js input.pqr output.tmesh

You may want to add an alias to the cli.js executable. E.g. in bash:

alias esp-surface-generator="/path/to/esp-surface-generator/cli.js"

Running

Commands below all assume esp-surface-generator is available either on your PATH or as an alias (see above)

Getting Help

esp-surface-generator --help

Example Data

Example input is available in the examples directory for two small molecules

# Generate a tmesh from the PQR file generated by ESP_DNN
cd examples/paracetamol # In your git clone or downloaded from github
esp-surface-generator ligand_ai_charges.pqr output.tmesh -v esp.dx.gz --vscale 630.0

The above will generate a Connolly surface using the radii in ligand_ai_charges.pqr.

The u column will have ESP values calculated from the partial charges in the PQR file (units of kcal/mol).

The v column will have ESP values interpolated from the electrostatic potental (calculated by QChem in this example) in esp.dx.gz The --vscale 630.0 is the scaling factor between QChem's atomic units (Hartrees) and kcal/mol.

The output file should be identical to expected.tmesh file in the same directory.

Output format

The tmesh output format describes a triangle mesh and contains:

  • One line with the number of vertices (n_vertices)

  • n_vertices lines describing the position (x,y,z), normals (nx, ny, nz), status, u and v values of the vertices as labelled below

    x        y       z       nx      ny      nz      s u       v
    -1.50007 0.40302 0.24956 0.00000 0.00000 0.00000 0 3.57847 4.65729
    

    For this program, the normals (nx, ny, nz) are not determined and the status (s) is always 0

  • One line with the number of triangles (n_triangles)

  • 4*n_triangles lines describing the triangles consiting of:

    • A single line describing the polygon (always 3 0 here => triangle)
    • 3 lines with a sigle vertex index (zero-based)

    For example, the triangle connecting vertices 0, 2 1 (counter-clockwise) is described by the following 4 lines in this section:

    3 0
    0
    2
    1
    

Acknowledgements

This package uses multiple parts of NGL for parsing input and generating the surface.

Support

Please open an issue or email "pli-at-astx-dot-com"