Travel Depth
I've been forwarding this email to various people, so I figured I should just put it here. This is documentation for the Travel Depth/CLIPPERS code developed in the Sharp lab.
http://crystal.med.upenn.edu/travel_distance.html
Publications:
- http://dx.doi.org/10.1021/ci900397t
- http://dx.doi.org/10.1002/prot.22558
- http://dx.doi.org/10.1529/biophysj.108.135970
- http://dx.doi.org/10.1016/j.jmb.2006.07.022
Pocket Examination
Here's the brief rundown
setenv TDHOME /raid1/people/rgc/Source/travel_distance_code_3
goes in your .cshrc/.login file (and you have to have python+numpy in your path)
Then with a pdb file you run:
$TDHOME/src/tstTravelDepth.py $prefix.pdb
(if you want a finer grid size you can specify it after the pdb file, the default is 1 angstrom/grid)
After this you'll have several new files, with which you can run the pocket mapping. There are 2 sets of files, one with cavities (completely separated from bulk solvent) and one where those have been removed.
$TDHOME/src/tstConvexHull.py $TDHOME/bin/qhull $prefix.cav.tst $TDHOME/src/tstPocketMap.py $prefix.cav.tst $prefix.cav.phi
for cavities or
$TDHOME/src/tstPocketMap.py $prefix.nocav.tst $prefix.nocav.phi
with no cavities.
The primary output of these files are $prefix.cav.tst.tree.tm3 files which have data about all the pockets. These are tab-delimited files you can load in excel/spreadsheet program.
To see the pockets/pick one manually, you can run the following script in pymol:
run ~rgc/Source/travel_distance_code_3/pymol/tstdisp.py
This gives you several new pymol commands to run. First
tstOpen $prefix.nocav.tst
and then:
tstDraw
which opens and draws the complete surface.
To change colors you can try for example:
tstDraw grad=mono
Now you can load a specific pocket by number (the first column in the $prefix.nocav.tst.tree.tm3 file), where X is your number:
tstDraw group=X
alternatively, you can run
tstDrawDeepest
which displays the deepest pocket (the pocket number is encoded as part of the pymol name, right after the name of the file). tstDrawParent goes up from the last drawn pocket, tstDrawParent N goes up the tree N times. When you're happy with the pocket, you can look at the $prefix.nocav.tst.tree.tm3 file and find that pocket id number and look up the various properties it reports.
If you have a list of residues in the binding site, you want to format it like this "ALA147A+GLY148A+HIS190A" or just "147A+148A+190A" or just "147+148+190". Chain numbers should be used if the original file had them, or left out if it didn't. Then you run
$TDHOME/src/tm3residues name ALA147+GLY148+HIS190 [any number of tm3 files]
or
$TDHOME/src/tm3residues num 147+148+190 [any number of tm3 files]
There will be a summary file name temp.output.txt which is basically the rows of the various tm3 files for the pockets that matched the best, with additional data about the overlap between them and the binding site (I think, it's been awhile since I ran this). Anyway, if you have problems, feel free to ask.
Ligand Volume/Surface Area
For those interested in finding the volume and surface area of ligands (or whole proteins, other macromolecules), this is easy by starting in a similar fashion (follow the first several steps above to get your environment setup correctly).
$TDHOME/src/tstTravelDepth.py $prefix.pdb
If you really have a ligand and want "more accurate" numbers, feel free to specify the grid spacing by:
$TDHOME/src/tstTravelDepth.py $prefix.pdb 0.5
where 0.5 is the number of Å per grid (lower is finer resolution). the next step is:
$TDHOME/src/tstSurfAreaVolume.py $prefix.nocav.tst [more *.nocav.tst files]
The output is a tab-delimited stream to standard out containing the volume and surface area of the entire molecule, be it ligand, protein, etc. The volume and surface area are based on the same radii definitions used in the surface generation, essentially Bondi radii (Bondi, A. (1964). van der Waals Volumes and Radii. J. Phys. Chem. 68, 441-451.), and due to this exotic radii may be missing and need to be added.
Pocket Picking
run
$TDHOME/src/tm3picker.py blah.tm3
to get a list of potential binding sites as one list of residues lining the active site per line.
$TDHOME/src/tm3pickerPdb.py blah.pdb blah.tm3
outputs one or more pdb files containing the residues in each pocket.