Merge pull request #5019 from RosettaCommons/vmullig/c2_crosslinkers
Add full support for 1,4-bis(bromomethyl)benzene to CrosslinkerMover and simple_cycpep_predict
This pull request adds full support for 1,4-bis(bromomethyl)benzene to the `CrosslinkerMover` and to `simple_cycpep_predict`. When used with the `CrosslinkerMover`, this crosslinker can be used to link two L- or D-cysteine residues in either an asymmetric or C2-symmetric pose, or an L- and a D-cysteine residue in an S2-symmetric pose (all of which are symmetries matching the crosslinker itself).
Tasks:
- [x] Add symmetric params file.
- [x] Add `CrosslinkerHelper` subclass for 1,4-bis(bromomethyl)benzene
- [x] Copy from 1,3,5-tris(bromomethyl)benzene case.
- [x] Update asymmetric case.
- [x] Update symmetric case.
- [x] Switch to using `CYS:SIDECHAIN_CONJUGATION` patch instead of `CYX`. `CYX` should eventually be deprecated.
- [x] For 1,3,5-tris(bromomethyl)benzene, too.
- [x] Check TBMB tests.
- [x] `CrosslinkerMover` integration tests:
- [x] C2 symmetry.
- [x] S2 symmetry.
- [x] No symmetry.
- [x] Add to `simple_cycpep_predict`.
- [x] Integration test.
- [x] Check integration test.
- [x] Beauty.
- [x] Documentation.
- [x] For `CrosslinkerMover`.
- [x] For `simple_cycpep_predict`.
- [x] Update to point at latest master for documentation submodule.
Tests pass. Integration test changes are all expected:
- simple_cycpep_predict_1_4_bbmb, crosslinkermover_1_4_bbmb_asymm, crosslinkermover_1_4_bbmb_c2_symmetry, and crosslinkermover_1_4_bbmb_s2_symm fail since they're newly added with this PR.
- database_md5 is picking up the new params file.
- simple_cycpep_predict_tbmb and threefoldlinkermover_tbmb_symmetric have small but expected trajectory changes resulting from the switch from CYX to CYS:Sidechain_Conjugation. Qualitatively, the output is the same.
![BBMB_render1](https://user-images.githubusercontent.com/4205776/95399812-0af8cb00-08d7-11eb-8b34-9953383ab1d7.png)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5024 from RosettaCommons/JackMaguire/HYP
Adding hydroxyproline to packer palette.
This is some good ole fashion test driven development. I'm adding one line that breaks a test for @vmullig and @everyday847 to fix.
The test I'm breaking is the ability for Rosetta to load hydroxyproline into a PackerPalette.
----------------
From @vmullig:
So this was a bit more involved than I had anticipated. The status quo in Rosetta was that hydroxyproline was a patched version of proline, with name "PRO:pro_hydroxylated_case1", 3-letter code "HYP", and 1-letter code "P". We wanted to be able to specify "HYP" (and "DHYP") in a PackerPalette, but this would require that the base name is "HYP" -- the CustomBaseTypePackerPalette matches on base name, not on three-letter code. We don't currently have the ability for patches other than the chirality-inverting patches to change the base name, and the chirality-inverting patches create a new base type when they do so -- we have some hard-coded stuff that requires on-the-fly patched types to retain the same base name, and which assumes that all unique base names are represented in the set of base residue types that are created at Rosetta initialization. It is convenient to create hydroxyproline by patching proline (ensuring that we're copying the proline geometry and properties and whatnot), but inconvenient to expect the user to know that that is what we're doing internally -- he/she should be able to work with HYP, not PRO:pro_hydroxylated_case1, and to have the full freedom of manipulating an independent residue type, not a type variant. So ultimately, the only feasible solution was:
- To generalize the logic for special patches that create new base types.
- To modify the pro_hydroxylated_case1 and pro_hydroxylated_case2 patches so that they both create new base types.
- To modify the PackerPalette so that it does not attempt to match on the hydroxyproline-specific variant types when setting up lists of designable types.
This works now, and I've confirmed that we can design with HYP sand DHYP simply by adding them in the list of allowed types in a CustomBaseTypePackerPalette. It also should be relatively easy to apply this to the small number of other special cases in which we would want a patch to create a new base type.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5074 from RosettaCommons/JackMaguire/InverseRotCst
Adding option to AddConstraintsToCurrentConformationMover for inverse rotamers
Adding the inverse rotamer equivalent of "bb only": "sc_tip_only". It only adds constraints to atoms impacted by the final chi angle.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5073 from RosettaCommons/bfrenz/interface-ddg-fixes
From Brandon (who also approved the itests changes as correct): This PR fixes some issues for how multi residue mutations are read in to the refactored version of the ddg code. It also adds interface optimization to the wild type scoring. As a result the code has also been cleaned up and chunks of it have been moved into independent functions.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5076 from RosettaCommons/JackMaguire/SmallVector
This is my humble attempt at getting boost::container::small_vector to be 1-indexed to be more of a drop-in replacement for utility::vector1.
notify author
notify list [rosetta-logs@googlegroups.com]