ReliaSolve / cctbx_project

Computational Crystallography Toolbox
https://cctbx.github.io
Other
0 stars 0 forks source link

Getting nonzero scores for single-hydrogen rotator that should have no contacts #251

Closed russell-taylor closed 1 year ago

russell-taylor commented 1 year ago

The HG1 THR A 28 rotatable atom has a very different orientation in Reduce2 than in Reduce, and Probe2 scores it much higher in this orientation. It appears to be on the symmetric other side of a nitrogen and further from a local hydrogen, but both should be considered to be bonded neighbors (they are four neighbors away). Indeed, the Kinemages associated with each of these outputs have no contacts between this hydrogen and anything else. The difference in score is due to all portions of the residue, not just the atoms in the Mover. The actual score difference in Reduce2 was 0.5 vs. an initial 0.06 (0.46 after coarse). Rerunning with just the Thr reproduced this orientation and reported internal scores.

russell-taylor commented 1 year ago

(done) Is the self._excludeDict up to date for the hydrogens? When printed within _scoreAtom(), each dictionary contained items so we're not missing all of them for the hydrogens. The HG1 has CB, OG1, CA, CG2, and HB on the list, so it can collide with H, H2, HG21, HG23 (which seems quite reasonable).

russell-taylor commented 1 year ago

(done) What is keeping the Kinemage from generating contacts between these hydrogens? The default excluded_bond_chain_length=4 should exclude the HG21 and HG23 atoms, which Reduce2 is not doing because it sets self._bondedNeighborDepth to 3. This also gets us contacts with the N, which is no longer excluded.

Modified the kinemage-generation code to use excluded_bond_chain_length=3 for the comparison code, both when scoring and when doing kinemage generation. This is expected to make the Reduce2 scores better and to show the proper set of interactions in the 1->2 direction. Indeed, it does make most of the Reduce2 results better than the Reduce results.

russell-taylor commented 1 year ago

So the result is that they SHOULD have contacts for the default bonded length of 3, and when we modify the diagnostic code to behave this way then things agree.