plip
plip copied to clipboard
Water bridge water_angle
Version: 2.1.9, command line tool (with docker)
When using PLIP to look at a protein–ligand interaction where water-mediated hydrogen bonds (water bridges) are important, the expected water bridge is not detected.
I loosened the PLIP water bridge criteria significantly, with water_bridge_omega_min
set to 10 and water_bridge_omega_max set
to 170. This allows the water bridge of interest to be detected, and the water_angle was given as 48.06°. When I measure the angle (as acceptor O to water O to donor H) in pymol, it is 132°, so it should be detected by the defaults.
Looking at the code in plip/detection.py, it looks like the water angle is detected with:
w_angle = vecangle(vector(acc.a.coords, wl.oxy.coords), vector(wl.oxy.coords, don.h.coords))
– is this intentional, since this would give a smaller angle (180 minus water_angle, rather than the water_angle from Pymol)?
In contrast, the d_angle (which is 151° and matches what I expect it to be) is given by d_angle = vecangle(vector(don2.h.coords, don2.d.coords), vector(don2.h.coords, w.oxy.coords))
.
Thank you!
Thanks for the issue, we should investigate this. Would it be possible for you to provide the specific example PDB file, PLIP commands and PyMol commands that you used? It would be of great help to reproduce the issue and see whether we need to improve the water bridge detection routine.
Thanks for looking into it, I've attached a PDB file and a PSE file with the relevant angle annotated (I used the angle measurement tool in PyMOL to obtain the A–OW–DH angle).
The original command I used:
docker run --rm -v ${PWD}:/results -w /results pharmai/plip:latest -f *.pdb -xty --hbond_dist_max 3.5 --hbond_don_angle_min 150
The command I used to get PLIP to detect the water bridge:
docker run --rm -v ${PWD}:/results -w /results pharmai/plip:latest -f *.pdb -xty --hbond_dist_max 3.5 --hbond_don_angle_min 150 --water_bridge_omega_min 40 --water_bridge_omega_max 110
Thanks for detailing! We will consider this, but we are very limited in capacity, so any pull requests from your end are welcome :smiley: