Add restricted angle bending for Boresch restraint and automated restraint search#456
Merged
Conversation
351c907 to
d6cb589
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a
restricted_bendingoption for adjusting the form of the Boresch angle potential to avoid singularities at 0 and 180 degrees. The old form (still the default) is labelled asharmonic.The PR also adds a new
sire.restraints.boresch_searchfunction to automatically generate an appropriate Boresch restraint given a perturbable system containing a trajectory. This enables automated abfe setup for SOMD2. The restraint search supports the following algorithms:RXRX (default, protocol="rxrx")
A modified "Recursion" restraint search algorithm from Optimizing Absolute Binding Free Energy Calculations for Production Usage. It seeds candidate anchor atoms from protein-ligand hydrogen bonds observed over the trajectory (occupancy above a cutoff), maps each bonded protein residue to its Cα, restricts ligand anchors to non-terminal heavy atoms, filters candidates to a 45–135° angle window, breaks ties by proximity to the ligand's centre of mass, and scores survivors with a formula that explicitly penalises angles near the 0/180° singularities. Uses fixed protocol force constants (1 kcal mol⁻¹ Å⁻² for the distance, 80 kcal mol⁻¹ rad⁻² for angles/dihedrals).
Aldeghi (protocol="aldeghi")
A reference implementation of the
MDRestraintsGeneratorandBioSimSpace-style search, kept for comparison. Candidate sextuplets are generated from bulk ligand-receptor distance variance (rather than hydrogen bonds) within a distance cutoff, filtered to a wider 10–170° angle window, and scored by configurational volume (Boresch et al. 2003). Force constants are fitted per-DOF from trajectory variance via the equipartition theorem, unless overridden.Finally, the PR also adds a
restraint_leveroption toBoreschRestraintto allow the lever for the angle and dihedral terms to be "combined" or "split", the latter matching the approach used by Recursion in the RXRX ABFE protocol.develinto this branch before issuing this pull request (e.g. by runninggit pull origin devel): [y]