-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d9d3fa8
commit b595ce7
Showing
3 changed files
with
285 additions
and
239 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,267 +1,80 @@ | ||
# POVME 2.2.2 | ||
<h1 align="center">POVME</h1> | ||
|
||
## 0. License: GNU General Public License version 3 | ||
<h4 align="center">Detect and characterize pockets from molecular simulations.</h4> | ||
|
||
This program is free software: you can redistribute it and/or modify it under | ||
the terms of the GNU General Public License as published by the Free Software | ||
Foundation, either version 3 of the License, or (at your option) any later | ||
version. | ||
<p align="center"> | ||
<a href="https://github.com/durrantlab/POVME/actions/workflows/tests.yml"> | ||
<img src="https://github.com/durrantlab/POVME/actions/workflows/tests.yml/badge.svg" alt="Build Status "> | ||
</a> | ||
<a href="https://codecov.io/gh/durrantlab/POVME"> | ||
<img src="https://codecov.io/gh/durrantlab/POVME/branch/main/graph/badge.svg" alt="codecov"> | ||
</a> | ||
<a href="https://github.com/durrantlab/POVME/blob/main/LICENSE.md" target="_blank"> | ||
<img src="https://img.shields.io/github/license/durrantlab/POVME" alt="License"> | ||
</a> | ||
<a href="https://github.com/durrantlab/POVME/" target="_blank"> | ||
<img src="https://img.shields.io/github/repo-size/durrantlab/POVME" alt="GitHub repo size"> | ||
</a> | ||
</p> | ||
|
||
This program is distributed in the hope that it will be useful, but WITHOUT | ||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | ||
details. | ||
POVME (POcket Volume MEasurer) is an open-source tool designed for detailed analysis of ligand-binding pocket shapes and volumes in proteins. | ||
Initially developed to support structure-guided drug discovery, POVME has been widely adopted for its simplicity, speed, and flexibility. | ||
|
||
You should have received a copy of the GNU General Public License along with | ||
this program. If not, see | ||
[https://www.gnu.org/licenses/](https://www.gnu.org/licenses/). | ||
## Why binding pocket analysis? | ||
|
||
## 1. Download POVME 2.2.2 | ||
Binding pockets are critical for understanding protein-ligand interactions, a central theme in rational drug design. | ||
Pocket shape and volume influence ligand binding, specificity, and the dynamics of molecular recognition. | ||
By enabling precise volume and flexibility measurements, POVME has become an essential tool for characterizing these properties in applications such as: | ||
|
||
Begin by downloading POVME 2.2.2. An example input file is included with the | ||
download (in the 'povme/examples/' directory). This input file is heavily | ||
commented and may be even more useful that the information provided on this | ||
website. | ||
- Identifying and analyzing transient binding pockets. | ||
- Supporting virtual screening and druggability predictions. | ||
- Comparing conformational ensembles from molecular dynamics simulations. | ||
|
||
POVME is released under the GNU General Public License. If you have any | ||
questions, comments, or suggestions, please don't hesitate to contact me, | ||
[Jacob Durrant](http://durrantlab.com), at durrantj [at] pitt [dot] edu. | ||
## Development | ||
|
||
If you use POVME in your work, please cite: | ||
|
||
1. Durrant, J. D., C. A. de Oliveira, et al. (2011). "POVME: An algorithm for | ||
measuring binding-pocket volumes." J Mol Graph Model 29(5): 773-776. | ||
2. Durrant, J.D., L. Votapka, J. Sørensen, and R. E. Amaro (2014). "POVME 2.0: | ||
An Enhanced Tool for Determining Pocket Shape and Volume Characteristics." | ||
J. Chem. Theory Comput. 10(11):5047-5056. | ||
|
||
## 2. Align a PDB-formatted trajectory | ||
|
||
POVME accepts a multi-frame PDB (Protein Data Bank) file as input. The | ||
computer program [Visual Molecular Dynamics | ||
(VMD)](http://www.ks.uiuc.edu/Research/vmd/) is useful for aligning | ||
trajectories and converting files to the PDB format. Alignment is necessary | ||
because the POVME algorithm assumes the pocket being measured does not | ||
translate or rotate in space. We note also that single-frame PDB files can | ||
likewise serve as POVME input if the user wishes only to measure the volume of | ||
a single pocket. | ||
|
||
## 3. Define an inclusion region | ||
|
||
The user must define an "inclusion" region. This region is constructed from a | ||
combination of user-specified spheres and rectangular prisms. The required | ||
inclusion region should entirely encompass all the binding-pocket | ||
conformations of the trajectory. Specify the spheres and rectangular prisms of | ||
the inclusion region in a text-based POVME input file (e.g., "POVME.in"): | ||
We use [pixi](https://pixi.sh/latest/) to manage Python environments and simplify the developer workflow. | ||
Once you have [pixi](https://pixi.sh/latest/) installed, move into `POVME` directory (e.g., `cd POVME`) and install the environment using the command | ||
|
||
```text | ||
PointsInclusionSphere -7.12 2.60 -4.67 6.0 | ||
PointsInclusionSphere -2.0 -2.0 -4.0 5.0 | ||
PointsInclusionBox -5.0 -7.0 2.0 10.0 10.0 10.0 | ||
PointsInclusionBox -2.0 -9.0 -3.0 10.0 5.0 10.0 | ||
```bash | ||
pixi install | ||
``` | ||
|
||
Note that for the spheres, the first three parameters are coordinates, and the | ||
fourth parameter is a radius. For the rectangular prisms (i.e. "boxes"), the | ||
first three parameters are coordinates, and the last three are the dimensions | ||
of the box in the X, Y, and Z directions. | ||
Now you can activate the new virtual environment using | ||
|
||
## 4. Define an exclusion region | ||
|
||
An optional exclusion region defines portions of the inclusion region that | ||
should be ignored, perhaps because they are not truly associated with the | ||
pocket. It is similarly constructed from spheres and boxes: | ||
|
||
```text | ||
PointsExclusionSphere -2.0 -2.0 -4.0 5.0 | ||
PointsExclusionBox -5.0 -7.0 2.0 10.0 10.0 10.0 | ||
```sh | ||
pixi shell | ||
``` | ||
|
||
## 5. Create a field of equidistant points | ||
|
||
To generate a field of equidistant points that encompasses all the | ||
binding-pocket conformations of the trajectory, POVME first floods the | ||
user-specified inclusion region with points and then removes any points also | ||
contained in the optional exclusion region. You need to specify the distance | ||
separating each of these equidistant points: | ||
|
||
```text | ||
GridSpacing 1.0 | ||
``` | ||
|
||
## 6. How to choose the inclusion and exclusion regions | ||
|
||
As you can imagine, identifying just the right set of inclusion and exclusion | ||
spheres and boxes to encompass the binding pocket is challenging. One approach | ||
is to define an initial geometry, visualize that geometry together with the | ||
receptor using a program like VMD, and then iteratively add new inclusion and | ||
exclusion regions as required. You can optionally save the point field to a | ||
file called point_field.pdb for visualization: | ||
|
||
```text | ||
SavePoints true | ||
``` | ||
|
||
## 7. Specify the location of the receptor PDB file to analyze | ||
|
||
Once you've properly generated a pocket-encompassing point field, you're ready | ||
to use that point field to calculate pocket volumes. Here's how to specify the | ||
location of the PDB receptor file that has the pocket you wish to analyze: | ||
|
||
```PDBFileName my_receptor.pdb``` | ||
|
||
Note that this file can be a trajectory containing multiple frames. | ||
|
||
## 8. Remove points that are near receptor atoms | ||
|
||
As the purpose of POVME is to measure the volume of a binding-pocket cavity, | ||
the program next removes any points that are close to receptor atoms, leaving | ||
only those points that are likely to be located within the binding pocket | ||
itself. To specify how close the points can come to the van der Waal's surface | ||
of the receptor before being removed: | ||
## Installation | ||
|
||
```DistanceCutoff 1.09``` | ||
Clone the [repository](https://github.com/durrantlab/POVME): | ||
|
||
Note that if the receptor PDB file contains multiple frames, this will be done | ||
on a frame-by-frame basis. | ||
|
||
## 9. Remove points outside the receptor's convex hull | ||
|
||
POVME 2.0 introduced an optional new feature for removing points that lie | ||
entirely outside the binding pocket. Specifically, the gift-wrapping algorithm | ||
is used in combination with the Akl-Toussaint heuristic to define the convex | ||
hull of receptor atoms near the user-defined inclusion region. Any points that | ||
fall outside the convex hull are removed. This feature is particularly useful | ||
when the user defines an inclusion region that protrudes into the surrounding | ||
solvent-occupying space. To activate the convex-hull feature: | ||
|
||
```ConvexHullExclusion true``` | ||
|
||
## 10. Remove points that are not contiguous with the primary pocket | ||
|
||
Like the original POVME program, version 2.2.2 retains the optional ability to | ||
remove isolated patches of points that are not contiguous with the primary | ||
binding pocket. POVME perfoms this task in two steps. | ||
|
||
First, POVME applys a low-pass filter to check the connectedness of the | ||
remaining pocket-occupying points. It retains only those points that have at | ||
least X neighboring points, where X is defined: | ||
|
||
```text | ||
ContiguousPointsCriteria 3 | ||
```bash | ||
git clone https://github.com/durrantlab/POVME | ||
``` | ||
|
||
(Note that points that are "kitty-corner" from each other count as neighbors.) | ||
|
||
Second, POVME identifies which of the remaining connected points are also | ||
connected to a user-defined contiguous pocket seed volume (e.g., located at | ||
the center of the traditionally defined pocket), where the seed volume is | ||
defined: | ||
Install `povme` using `pip` after moving into the directory. | ||
|
||
```text | ||
ContiguousPocketSeedSphere 67.0 102.0 57.0 4.0 | ||
ContiguousPocketSeedBox 50.0 50.0 50.0 10.0 10.0 10.0 | ||
```sh | ||
pip install . | ||
``` | ||
|
||
All pocket-occupying points contiguous (or connected) to this region are | ||
retained, but isolated patches of points that are not directly connected are | ||
deleted. | ||
|
||
## 11. Additional POVME parameters | ||
|
||
Here are some additional POVME parameters you might find helpful: | ||
|
||
```text | ||
# Tell POVME how to perform the calculations. | ||
This will install all dependencies and `povme` into your current Python environment. | ||
|
||
NumProcessors 12 # POVME can use multiple processors on | ||
# Unix-based systems. | ||
## Cite | ||
|
||
UseDiskNotMemory false # In some cases, your PDB trajectory may | ||
# be so large that the resulting POVME | ||
# analysis cannot be easily stored in | ||
# your computer's memory. If | ||
# UseDiskNotMemory is set to true, POVME | ||
# will rely more on your disk space than | ||
# on memory/RAM. | ||
# Tell POVME how to save the output | ||
OutputFilenamePrefix ./POVME_test_run/POVME_ # All the files POVME outputs will start | ||
# with this prefix. POVME automatically | ||
# creates any required directory | ||
# (./POVME_test_run/ in this case). | ||
SaveIndividualPocketVolumes true # If true, POVME saves the pocket-volume | ||
# points of each frame to a separate PDB | ||
# file. The file names will be like | ||
# {PREFIX}frame_X.pdb. | ||
SavePocketVolumesTrajectory true # If true, POVME saves all the pocket- | ||
# volume points of each frame to a single | ||
# PDB trajectory file. The individual | ||
# frames are separated by END cards. The | ||
# file name will be | ||
# {PREFIX}volume_trajectory.pdb. | ||
OutputEqualNumPointsPerFrame true # Some visualization programs (e.g. VMD) | ||
# are only compatible with trajectories | ||
# that have the same number of atoms in | ||
# each frame. If EqualNumAtomsPerFrame is | ||
# true, POVME adds extra points at the | ||
# origin (0.0, 0.0, 0.0) to satisfy this | ||
# requirement. This affects files created | ||
# with both SaveIndividualPocketVolumes | ||
# and SavePocketVolumesTrajectory but | ||
# does not alter the volume calculation | ||
# itself. | ||
SaveTabbedVolumeFile true # If true, POVME saves the calculated | ||
# volumes to a file in a simple tabular | ||
# format that can be easily pasted into | ||
# popular spreadsheet programs like | ||
# Microsoft Excel. The file is named | ||
# {PREFIX}volumes.tabbed.txt | ||
SaveVolumetricDensityMap true # If true, POVME saves a volumetric | ||
# density map in the DX format. A | ||
# volumetric density value is associated | ||
# with each of the pocket-occupying | ||
# points by calculating the fraction of | ||
# all trajectory pocket volumes that | ||
# include the given point. The file is | ||
# named {PREFIX}volumetric_density.dx. | ||
CompressOutput true # If you're short on disk space, POVME | ||
# can automatically compress all output | ||
# files using gz compression. | ||
``` | ||
If you use POVME in your work, please cite: | ||
|
||
## 12. POVME output | ||
1. Durrant, J.D., L. Votapka, J. Sørensen, and R. E. Amaro (2014). "POVME 2.0: An Enhanced Tool for Determining Pocket Shape and Volume Characteristics." J. Chem. Theory Comput. 10(11):5047-5056. | ||
2. Durrant, J. D., C. A. de Oliveira, et al. (2011). "POVME: An algorithm for measuring binding-pocket volumes." J Mol Graph Model 29(5): 773-776. | ||
|
||
By default, POVME writes a number of files to the disk. The calculated pocket | ||
volumes, as well as user-defined parameters and progress messages, are saved | ||
to a simple text-based log file. POVME can also be instructed to save the | ||
volume measurements to a second file in a simple tabular format that can be | ||
easily pasted into popular spreadsheet programs. Pocket-occupying points are | ||
equidistant (1.0 Å by default), so each point is associated with an identical | ||
cubical volume (e.g. 1.0 Å3). The volume of a whole pocket is calculated by | ||
simply summing the individual volumes associated with each unique point. | ||
## License | ||
|
||
POVME also optionally saves the pocket-occupying points of each frame to PDB | ||
file(s) on this disk. The user can instruct the program to save these points | ||
to separate files and/or to a single PDB trajectory. Some visualization | ||
programs (e.g. VMD) are only compatible with trajectories that have the same | ||
number of atoms in each frame. POVME can optionally write extra points to the | ||
origin (0.0, 0.0, 0.0) on a frame-by-frame basis to satisfy this requirement. | ||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. | ||
|
||
Finally, POVME also optionally saves a volumetric density map in the Data | ||
Explorer (DX) format. A volumetric density value is associated with each of | ||
the pocket-occupying points by calculating the fraction of all trajectory | ||
pocket volumes that include the given point. If the density map is displayed | ||
as an isosurface, the value of the isosurface expresses the fraction of time | ||
(e.g. over the course of the simulation) that the pocket included the | ||
displayed volume. | ||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | ||
FOR A PARTICULAR PURPOSE. | ||
See the GNU General Public License for more details. | ||
|
||
(README.md adapted from [this | ||
website](http://rocce-vm0.ucsd.edu/data/sw/hosted/POVME/).) | ||
You should have received a copy of the GNU General Public License along with this program. | ||
If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
nav: | ||
- Home: index.md | ||
- Monolith docs: mono-docs.md | ||
- API: api |
Oops, something went wrong.