Closed tmcgrath325 closed 1 month ago
There are further exclusions to the non-bonded list: vina excludes any pair of atoms for which the distance doesn't change. This includes any pair within a rigid group of atoms. for example, the following pairs in your example above would be excluded:
26-27
18-16
18-27
21-27
(these are just a few examples of pairs that vina excludes, there are more.
That did the trick, thanks @diogomart! 🎉 It makes a lot of sense that anything invariant to bond rotations is excluded from the score.
You are welcome!
Hi Autodock dev team and users,
Thanks for building and maintaining this fantastic tool, and thanks for taking the time to read this.
To make sure that I understand the Vina scoring function, I'm putting together a quick and dirty reimplementation of it based on the original paper to see if I can recalculate scores for particular poses. It seems like I'm able to match the intermolecular component of the score, but I'm getting a little tripped up by the intramolecular part.
Assuming that I'm correctly assigning atom types and calculating potentials appropriately for atom pairs, my guess is that my issues might be coming from choosing incorrect sets of atom pairs to be evaluated for the intramolecular score. Based on the paper and reading through some of the source code, my understanding of the choice of atom pairs is as follows:
For these atom pairs, potentials are calculated in the same was as ligand-protein ones.
Is that approach correct? When using atom pairs chosen in this way, I'm consistently getting getting higher scores for individual components of the scoring function, which might indicate that I'm keeping some pairs that should be excluded.
Here's a particular ligand I'm using for testing...
... for which I generated the following table of atom pairs, where each row represents all of the other atoms that interact with a particular atom:
Here's a plot of the ligand with bonds, for reference:
Do I have the right idea?
While it's not central to my question about atom pairs, I've included below what I've been using to check my understanding of the scoring against Vina itself:
Code snippet used to generate c_intra for each part of the scoring function
Output of the above, where each line is an unweighted component of the ligand's intra score (in the standard order):
Python script for recalculating components of c_intra
Output of the above script, where the entries are the recalculated scores:
Aside from the hydrogen bonding score of zero, the only score that seems to be roughly correct is the repulsion component.