Skip to content
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

Update helix optimization tools #154

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Conversation

cwalker7
Copy link
Contributor

@cwalker7 cwalker7 commented Nov 2, 2022

Description

Adds lots of new functionality for optimizing 1sc, 2sc, and 3sc helices:

  • 1sc helices nonbonded optimization: we can now set any combination of bb-sc and bb-bb bonds, and any not specified will be included in the optimization
  • 2sc helices: there are now two different sidechain schemes - 1) 'center' alignment, in which the center of the sc1-sc2 bond is normal to the backbone bead, and 2) 'first' alignment, in which the first bead (sc1) is normal to backbone, and the second bead contacts the backbone bead at equilibrium LJ distance. In each case, the sidechains can rotate about the axis extending normal to the backbone bead.
  • 3sc helices: similarly we can set 1) 'center' alignment, in which the triangle center is normal to the backbone, or 2) 'first' alignment, in which the first bead is normal to the sidechain and the other 2 contact the backbone. The linear constraints for the different sigma and bond lengths for 'first' alignment are not quite right, so may not work for all combinations of radius/pitch.
  • For 2sc and 3sc helices, the number of rotational degrees of freedom can also be specified. For example, if n_rotation_angles=2, odd and even residue sidechain groups can rotate independently. Or, set n_rotation_angles=n_residues for each residue rotating independently. In most cases, just 1 rotational degree of freedom is sufficient.

Also adds a new function for mapping native sequences to optimal sequences with an arbitrary alphabet size:

  • Unlike residue types get (1-kappa) LJ scaling, and like residue types can full LJ weight.
  • Brute force sequence scan is used with precomputed native distances and energies, but can fix the beginning of longer sequences in place by passing in a tuple.
  • Speed is roughly ~1000-2000 sequences/second.
  • Outputs the value of (U_native-U_nonnative)/(U_native+U_nonnative), in which a perfect Go model gives a value of 1. Also outputs the raw native and nonnative energies for each sequence.

TODOS

  • Add tests for the new 1sc functionality
  • Add tests for the new 2sc functionality
  • Add tests for the new 3sc functionality
  • Add tests for Go sequence mapping

Status

  • Ready to go

@codecov
Copy link

codecov bot commented Dec 6, 2022

Codecov Report

Merging #154 (0851734) into go_model_energy_matching (d55131b) will decrease coverage by 4.89%.
The diff coverage is 44.98%.

@cwalker7 cwalker7 changed the base branch from go_model_energy_matching to master December 9, 2022 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant