gisttools
Post-processing of data generated by the GIST (Grid Inhomogeneous Solvation Theory) action in cpptraj
Grid Inhomogeneous Solvation Theory (GIST) is a method first devised by Gilson and coworkers, that calculates thermodynamic properties of hydration on a 3-dimensional grid, based on a Molecular Dynamics (MD) simulation of a restrained solute molecule in explicit solvent. GIST is implemented in the cpptraj program (AmberTools). The output of GIST is a table of thermodynamic quantities (e.g. enthalpic and entropic contributions to hydration) for each grid voxel.
This Python module is a collection of tools that are intended for easy handling and further post-processing of GIST output files. The core functionality has been repeatedly used in scientific work at the university of Innsbruck. However, the module is still quickly evolving and the user interface can (and will) change without warning! Also, notice that more specialized use cases might not have been tested.
Overview of functionality
- Load GIST output files in table format (using pandas) or .dx format (using gridDataFormats)
- Automatically subtract reference values for the solvent-solvent interaction enrgy and compute derived quantities such as the free energy.
- Project free energy contributions to atoms in a .pdb file. Two different methods (mean: compute the average in a sphere around each atom; nearest: assign every voxel within a certain distance of the solute to exactly one atom) are supported. Furthermore, a weighting of the voxel contributions based on the distance to an atom can be used.
- Integrate free energy contributions within a certain distance of the solute.
- Compute "rdfs", i.e., summations of the free energy contributions binned by the distance to the nearest atom. The resulting rdfs are reported per atom.
- The grid functionality can be used independently of the GIST post-processing. This can be quite handy. For instance, one can combine the grid functionality with a marching cubes algorithm (e.g., from skimage) to compute triangulated SASAs (solvent accessible surface areas).
Installation
This module depends on the following packages:
- mdtraj
- numpy
- scipy
- pandas
- numba
Optional dependencies (only for some functionality):
- nglview (for previewing datasets)
- gridDataFormats (for loading .dx files)
You should be able to install gisttools in a local environment using pip install .
. gisttools has been tested mainly on Pyton 3.7, but all versions >= 3.6 should work, so If you experience errors with any of those versions, feel free to contact me.
Examples
Load a GIST output file in table format and a PDB reference structure, and compute the average energy and entropy contribution per water molecule in the vicinity of each atom.
gist = gt.gist.load_gist_file("out.dat.gz", struct="benzene.pdb", eww_ref=-9.533)
gist.projection_mean(["Eall_dens", "dTSsix_dens"])
Recent changes
- Commit 280f39cb6806b0333bf86aa656cda90c97a1d378 introduced support for PME-GIST. Since old cpptraj versions did not split the energy into Esw and Eww, I opted to use the PME_ columns as Eww in gisttools, to ensure that the other gisttools functions work as expected. However, newer cpptraj versions do split the energy, so I undid this change in commit 2effd38b3ff6154b617b9d1cbb402404db630618. I recommend to use a new version of both cpptraj and gisttools, and use the Esw and Eww columns for GIST post-processing.