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)
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 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
# 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"
Commands below all assume esp-surface-generator
is available either on your PATH or as an alias (see above)
esp-surface-generator --help
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.
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
- A single line describing the polygon (always
This package uses multiple parts of NGL for parsing input and generating the surface.
Please open an issue or email "pli-at-astx-dot-com"