Skip to content

Add restricted angle bending for Boresch restraint and automated restraint search#456

Merged
lohedges merged 4 commits into
develfrom
feature_restricted_bending
Jul 2, 2026
Merged

Add restricted angle bending for Boresch restraint and automated restraint search#456
lohedges merged 4 commits into
develfrom
feature_restricted_bending

Conversation

@lohedges

@lohedges lohedges commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

This PR adds a restricted_bending option 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 as harmonic.

The PR also adds a new sire.restraints.boresch_search function 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 MDRestraintsGenerator and BioSimSpace-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_lever option to BoreschRestraint to 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.

  • I confirm that I have merged the latest version of devel into this branch before issuing this pull request (e.g. by running git pull origin devel): [y]
  • I confirm that I have added a test for any new functionality in this pull request: [y]
  • I confirm that I have added documentation (e.g. a new tutorial page or detailed guide) for any new functionality in this pull request: [y]
  • I confirm that I have added a changelog entry to the changelog (we will add a link to this PR as part of the review): [y]
  • I confirm that I have permission to release this code under the GPL3 license: [y]

@lohedges lohedges force-pushed the feature_restricted_bending branch from 351c907 to d6cb589 Compare July 2, 2026 14:01
@lohedges lohedges merged commit f3b7c04 into devel Jul 2, 2026
8 of 10 checks passed
@lohedges lohedges deleted the feature_restricted_bending branch July 2, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant