-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Addition of Waterbridge
interactions
#219
Comments
Currently ProLIF expects all interactions to be between 2 residues (one on the "ligand" side and one of the "protein" side). Because this bridged interaction would require a 3rd residue to work (a water "residue"), there's a bit of an incompatibility with the above expectation. Before discussing the implementation of the interaction, I'm trying to think of the best way to circumvent this problem without refactoring the entire library. One way could be to pass a water There's also the fact that we have to deal with both MD trajectories and PDB/docking inputs, and for the latter we'd probably need a way to "extract" the water molecules from the protein structure since this is more convenient than requiring a separate |
Hm sounds complicated 🤔 for the inteeraction between two residues restriction, would it be possible to go around it through looking separatly at the interactions between the ligand and water and then water and residue separatly and if it is possible to pinpoint the exact water molecule via the So in parallel with the case that it uses the original Hm, it should be doable to extract from PDB/docking inputs, probably need to check that we cover all of the water name options that would be in the PDB or other formats if you want to directly get them from there :) |
So doing it in 2 times as you suggest is kind of a workaround that would work for now I guess, something like fp1 = plf.Fingerprint(["WaterBridge"]).run(u.trajectory, ligand_selection, water_selection)
fp2 = plf.Fingerprint(["WaterBridge"]).run(u.trajectory, protein_selection, water_selection) And then you'd do an inner-join of the resulting
That's the thing I'm worried about essentially if we go for the solution I proposed in my first answer.
I wouldn't even worry about covering all the water names that much, it can always be a parameter that users change. Something else to tackle (yay) would be visualisation, especially the 3D one. But we can do this incrementally, no need to tackle all in one PR. |
Waterbridges would be an benefitial interaction addition to
ProLIF
:)From the first glance we could use
class HBAcceptor
as an template for creating the interaction recognition. The idea that I would have would be to calculate the distances and angles from the ligand to the water, which we can also specify viaSMARTS
patterns and then calculate from that water the distance/angle to the protein.For the
SMARTS
patterns we can check if we want to differentiate between the Ligand being anWaterbridge Donor/Acceptor
and from the patterns I would assume theWaterbridge
patterns would be a combination ofAcceptor/Anion
for one andDonor/Cation
for the other.The text was updated successfully, but these errors were encountered: