Merge pull request #3157 from RosettaCommons/revert-3145-roccomoretti/centroid_autosetupmetal
Revert "Make auto_setup_metals work with centroid mode."
Reverting commit until I can figure out what I broke and why.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3149 from RosettaCommons/vmullig/buried_unsat_score_incremental_merge_5
Incremental merge 5: Another couple of small improvements to buried_unsatisfied_penalty efficiency
Reducing the amount of unnecessary copying of data during the packer run. Also, when packer trajectories alter multiple residues (_e.g._ when jumping back to a low-energy state), node substitutions are now automatically accepted to minimize the number of nodes that have to be updated with each packer step.
Tasks:
- [x] Eliminate direct storage of data in edges, and add an edge data class (pointers to which can be swapped out).
- [x] Benchmark.
- Packaging edge data in a special object and only swapping out the const smart pointer to the object results in about a 21% speedup. Not bad, but still not the dominant inefficiency.
- The speedup from updating nodes more efficiently is inconsistent from benchmark replicate to replicate, and probably negligible. So still not the dominant inefficiency.
- Final cost of `buried_unsatisfied_penalty`: 4.36x increase in packing time, for much better results, with these optimizations. Scaling is linear with pose size (with or without `buried_unsatisfied_penalty`, but intercept is negative (in both cases) -- so for small poses, the relationship is different and the cost might be more negligible.
- [x] Beauty.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3145 from RosettaCommons/roccomoretti/centroid_autosetupmetal
Make auto_setup_metals work with centroid mode.
Enable the relevant metapatches in centroid mode, as well as enabling the automatic centroid-mode residue type generation to work with connected residues. (Like sidechain-bound metalbinding residues.)
The established covalent connections and constraints from fullatom mode should transfer to centroid mode. For connections/constraints to sidechain atoms, a special all heavyatom-present residue will be created. While this allows maintaining and round-tripping the constraints/connections through centroid mode, there's limitations on scoring/sampling in centroid mode. For scoring,the lack of a CEN atom results in differences in how the residue is scored versus a non-sidechain-metalbinding residue. For sampling, the lack of sidechain flexibility in centroid mode protocols may result in rejection of otherwise-acceptable conformations, due to the presence of the inflexible metalbinding sidechain. (Both of these should be minimal if you're not sampling directly in the vicinity of the metalbinding atom.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3148 from RosettaCommons/vmullig/selection_counter
Add a SimpleMetric that counts the number of residues in a pose or selection
Requested by @srgerb.
Tasks:
- [x] Add the SimpleMetric.
- [x] Unit tests.
- [x] Documentation.
- [x] Move to core.
- [x] Integration test.
- [x] Change name to SelectedResidueCountMetric.
- [x] Documentation, too.
- [x] Beauty.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3144 from RosettaCommons/vmullig/buried_unsat_score_incremental_merge_4
Incremental merge 4: Efficiency improvements for the buried_unsatisfied_penalty scoreterm
OK, now that it works, let's make it fast. This should significantly speed up the calculation, especially for large poses or large rotamer sets.
Tasks:
- [x] Add logic to update only relevant nodes during packer run.
- [x] Beauty.
- [x] Benchmark speedup -- how much does this help?
- Ugh -- without optimizations, it was resulting in a 67-fold slowdown on a naïve PackRotamers run with all canonicals. (The scaling seems quadratic -- this is why I wasn't seeing much slowdown on my small test cases).
- With optimizations, it's a 6-fold slowdown. This scales linearly with pose size (_i.e._ it remains a 6-fold slowdown even for a large pose).
- There may be additional optimizations possible.
- [x] Double-check unit tests.
- [x] Double-check integration tests.
- [x] This pull request must be merged after #3143.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3143 from RosettaCommons/vmullig/buried_unsat_score_incremental_merge_3
Incremental merge 3: Add a visualizer for buried polar groups (for use with buried_unsatisfied_penalty)
Tasks:
- [x] Add the visualizer (a SimpleMetric).
- [x] Integration test.
- [x] For symmetry, too.
- [x] Debug integration test.
- [x] Beauty.
- [x] Make changes suggested by Jared.
- [x] Check tests on test server.
- [x] Documentation.
- [x] Pull request #3140 must be merged before this one.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #3140 from RosettaCommons/vmullig/buried_unsat_score_incremental_merge_2
Incremental merge 2: Add symmetry support to the buried_unsatisfied_penalty scoreterm
This pull request must be merged after pull request #3135. This adds symmetry support to the buried_unsatisfied_penalty scoreterm, plus unit and integration tests.
Tasks:
- [x] Symmetry support.
- [x] Remove error if used on a symmetric pose.
- [x] Documentation.
- [x] Beauty.
- [x] Unit tests.
- [x] Integration test.
@sboyken @JackMaguire @asford @bcov77
notify author
notify list [rosetta-logs@googlegroups.com]