Note: POVME3 does not have a regular maintainer. POVME2.X continues under active development at the Durrant Lab.
We present a substantial update to the open-source POVME binding pocket analysis software. New capabilities of POVME 3.0 include a flexible chemical coloring scheme for feature identification, post-analysis tools for comparing large ensembles of pockets (e.g., from molecular dynamics simulations), and the introduction of scripts and methods that facilitate binding pocket comparison and analysis. We envision the use of this software for visualization of binding pocket dynamics, selection of representative structures for ensemble docking, and incorporation of molecular dynamics results into ligand design efforts.
A publication associated with this software is at https://doi.org/10.1021/acs.jctc.7b00500. It showcases several capabilities of POVME 3.0, and performs a simple benchmark of grid-based binding pocket similarity analysis.
This document is specific to POVME 3.0. Users interested in POVME 2.0 will find resources here(more up to date)
(old POVME2 link, may be deprecated)
If POVME2 is installed on your system, we recommend making a separate python environment. We normally install POVME3.0 using miniconda:
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
bash Miniconda2-latest-Linux-x86_64.sh -b -p miniconda2
. miniconda2/etc/profile.d/conda.sh
conda activate base
pip install povme
wget https://repo.continuum.io/miniconda/Miniconda2-latest-MacOSX-x86_64.sh
bash Miniconda2-latest-MacOSX-x86_64.sh -b -p miniconda2
. miniconda2/etc/profile.d/conda.sh
conda activate base
pip install povme
Note that this method will create a separate python build. To access this in subsequent terminal sessions, you will need to run
. miniconda2/etc/profile.d/conda.sh
conda activate base
The POVME Git repository comes with examples and test cases which are not included in the pip install.
git clone https://github.com/POVME/POVME.git
cd POVME/POVME/examples/
cd basic_example
POVME3.py sample_input.ini
This example shows the "classic" operation of POVME, using a geometrically-defined inclusion sphere. If you open the "sample_input.ini" text file, you will find the operating parameters. The minimum input required for POVME to run is the input trajectory name and inclusion region.
Once this runs, you will have an output directory named POVME_test_run
.
We recommend that you visualize the results using VMD. Open the POVME output using VMD with the following command:
vmd -m POVME_test_run/example_volume_trajectory.pdb 4NSS.pdb
Under the Graphics-->Representations menu in VMD, show the 0: POVME_volume_trajectory.pdb
molecule using the Drawing Method "VDW" (and consider reducing the Sphere Scale
value to something like 0.3
). Now press the play button in the bottom right corner of the VMD Main window to watch the pocket trajectory (For this short trajectory, it is probably better to advance manually through the frames).
cd ligand_example/
POVME3.py sample_POVME_input.ini
To visualize:
vmd -m POVME_test_run/POVME_volume_trajectory.pdb 1BYQ_every250.pdb
POVME 3.0 now allows users to define the inclusion region of a pocket using a ligand residue name. The pocket will then be defined in all grid points within 3 Angstroms of the ligand atoms in the loaded PDB trajectory. Note that this residue name must match the one given in the input PDB trajectory.
cd analysis_workflow_example/
source runWorkflow.sh
The bulk of the new capabilities of POVME 3.0 are in separate scripts. Three of these are showcased in the analysis workflow example.
This example runs POVME on 5 trajectories taken from the POVME 3.0 paper's HSP90 simulations. Each of these trajectory PDB files has 5 frames, and has had the ligand removed. After running POVME on these trajectories, three post-processing scripts are run:
- binding_site_overlap.py calculates the similarity of all of the analyzed frames
- cluster.py processes the binding_site_overlap matrix and performs hierarchical clustering
- This example is programmed to yield five clusters, as specified in the "-n" argument to cluster.py
- A heatmap showing which frames belong to which cluster is displayed when cluster.py finishes running
- Combined and individual-simulation transition maps are displayed
- The most representative frames from each cluster are output in the
3-post_analysis/ALL/cluster#
subdirectories - The average pocket shape of each cluster can be visualized in vmd by running
vmd -e visualizeAll.vmd
in the3-post_analysis/ALL
subdirectory, and showing the second representation in each loaded object - Text files of the cluster members and representatives are written, with each line corresponding to one cluster
- pocketPointsPca.py runs principal component analysis of the pocket points in the frames
- Scatterplots of each simulations position in PC space are shown
- A plot of the explained variance for each PC is shown
- The first 10 principal components can be visualized by running
vmd -e loadAllPcs.vmd
Peel
, heavily based on Binana (by Jacob Durrant), enables the coloring of binding sites with relevant chemical features, such as hydrogen bond donors/acceptors, potential pi-stacking interactions, and hydrophobic pockets. This is a standalone library that will eventually be broken out into its own package. Peel
contains the Algebra
class, which enables comparisons of and mathematical operations on binding pocket shapes. The coloring scheme is intended to be for visualization only, and has not been validated for any quantitative purpose.
Clustering
is a package that ensembles of binding site shapes and perform clustering and principal component analysis on them. Clustering can be used to find metastable binding site shapes; principal component analysis can be used to find correlated subpockets in binding sites.
PyMolecule
(by Jacob Durrant) is a lightweight class to read PDB files.