Merge pull request #4260 from RosettaCommons/JackMaguire/BetterAnnealer
Expanding user interface to the SequenceSymmetricAnnealer
We're having a discussion on Slack about how the SequenceSymmetricAnnealer I added in #4117 could be used for a wider set of design cases. My goal in this PR is to provide a residue selector interface to the annealer so that the user can define regions that need to be sequence-symmetric.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4373 from RosettaCommons/jadolfbr/fix_symm_glycan_branches
The function `extract_asymmetric_unit` for symmetry previously would crash for any glycan branch residues. This PR special-cases branched carbohydrates and the protein-glycan branched connection. Thanks to @JWLabonte and @fdimaio with their guidance on this.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4369 from RosettaCommons/vmullig/fix_bad_unit_test
Fix a unit test that was invalidating the output of its own sub-tests.
The FA_ElecEnergy unit test suite's sub-tests were producing different results depending on whether they were run independently or as a suite. This was because the setup function called core_init(), while the first sub-test called core_init_with_additional_options( "-restore_pre_talaris_2013_behavior" ). Effectively, this meant that the sub-tests of the current defaults (which came later in the suite) were being performed against the -restore_pre_talaris_2013_behavior flag when the whole suite was run.
I'm correcting this by splitting the suite into two unit test suites with two different core_init() calls in the setup function. I'm also updating the expected values in the sub-tests that assumed that they were testing the current default scorefunction instead of the pre-Talaris 2013 scorefunction.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4017 from RosettaCommons/aleaverfay/matcher_bugfix_Jun2019
Aleaverfay/matcher bugfix jun2019
Belatedly fixing two bugs in the matcher brought to my attention by Indrek Kalvet.
1) When using ligand conformers, the "relevant atoms" (not the clearest of designations, tbh) needs to include not only the atoms that define the protein/ligand contact, but also the atoms that define the ligand's orientation -- the "orientation atoms" (oats). When these were not included in the list of relevant atoms by the MatcherTask, then two ligand conformers with very different locations for the protein-contacting atoms could be treated as equivalent. Once equivalent, then only the location of the oats is used to decide if the two conformers represent a match. This led to some pretty outrageous "matches" where the active site residues were ~8 A away from the Zn they were meant to be 2 A from.
2) When using the -dynamic_grid_refinement flag, it turned out that the process of estimating how many matches would be formed for a certain grid spacing was wicked slow. As a result, it was not really a time savings.
All of Indrek's test cases now look good.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4303 from RosettaCommons/roccomoretti/drug_design_background
Grab-bag of changes from my drug design branch.
This is a selection of changes from #1036 which touch existing code (Versus adding new classes/etc.) The changes all relate to things done with drug-design, but aren't dependent on the new stuff therein. (I apologize for the grab-bag nature of the changes. I didn't necessarily want to split things out further.)
A short summary of major changes:
* Permit the MonteCarlo object to manage a pose, but use a score which isn't the pose's total score.
* Change logic in Residue::orient_onto_residue() to better handle orienting non-related types.
* Don't assume the root atom is atom 1 in core::pack::scmin::ResidueAtomTreeCollection
* Better diagnostics for CompoundFilter
* For ligand docking FinalMinimizer, add option to remove the constraints which the mover adds
* For ligand docking FinalMinimizer, fix nonsensical backbone-minimization-without-chainbreak-term
* For ligand docking HighResDocker, remove the dihedral restraints added (just like we remove the ligand tethers)
* Update automatic neighbor atom finding for MutableResidueType change
* Additional formatting options in SDF residue type input/output (still not ready for prime-time)
* Various convenience functions added.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4361 from RosettaCommons/vmullig/clang_analysis_issues_again
Fixing a "not read" error flagged by clang analysis. I didn't hear back from @bioragul; will assume that this is fine.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4355 from RosettaCommons/vmullig/simplify_threadmanager_api
Reduce mutex contention a bit by reducing reliance on std::shared_ptr in RosettaThreadManager classes.
I was being overcautious with my ownership model, and unnecessarily using vectors of owning pointers of functions. This results in unnecessary locking of mutexes internal to `std::shared_ptr`, which can slow things down. Worse, I was _copying_ the owning pointers around, which results in new locking every time the reference count is incremented or decremented. (Even in the single-threaded build, unnecessarily passing around smart pointers is likely slowing things down a bit, since reference counts have to be incremented and decremented.)
The vector object owns its contents and controls their destruction, so a vector of objects controlled by owning pointers is really unnecessary. This pull request refactors a bit so that the `RosettaThreadManager` now accepts a vector of function objects instead of a vector of owning pointers to function objects.
TODO:
- [x] Also switch the RosettaThreadAssignmentInfo object to be a stack-allocated object passed by reference, rather than a heap-allocated object passed by owning pointer.
- [x] Check profile tests. Is there a performance benefit with packing in the single-threaded builds? (See the core_pack_pdig_current_default_sfxn performance test, which did show a slight drop in single-threaded execution when we switched to building a work vector and evaluating it). --> No big change. Maybe a small improvement.
- [x] Does this improve performance scaling for multi-threaded interaction graph calculation? --> Not really.
- [x] Does this rescue the scoring performance in the single-threaded build in PR #4342? --> No. Note, though, that the only slowdowns are with very fast-to-compute terms (_e.g._ chainbreak) or with an empty scorefunction. If there's any work to be done at all, the slowdown is negligible.
- [x] Does this improve performance scaling for multi-threaded scoring in PR #4342? --> Not really.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4354 from RosettaCommons/aleaverfay/forward_kwargs_to_maybe_init
Forward kwargs to maybe_init in pyrosertta distributed
In pyrosetta::distributed initialization, pass the keyword arguments through
to the maybe_init function.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4352 from RosettaCommons/vmullig/reduce_boost_dependency
Reduce dependencies on Boost by switching to STL functions where feasible.
Certain functions that were only defined in the Boost libraries are now part of the C++11 STL. These include `std::bind`, `std::function`, `std::cref`, and `std::ref`. This pull request aims to replace instances of `boost::bind`, `boost::function`, `boost::cref`, and `boost::ref` with their C++11 STL equivalents.
Vikram K. Mulligan 5 years Note: Sergey is working on a patch for the PyRosetta test failures introduced by this change. I have it from him that I shouldn't revert this right now.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4353 from RosettaCommons/JackMaguire/fix_INCLUDED_core_scoring_util_methods_DumpTrajectoryEnergy_hh
Fixing #ifdef and duplication
#3575 copied a file but didn't update the ifdef include guards. The duplicate_header_guards test failed but was ignored because it blended in with a lot of other failed integration tests (presumably expected failures).
This PR fixes the #ifdef duplication but there might be a bigger problem here. Was src/core/energy_methods/DumpTrajectoryEnergy.hh even supposed to make it into master? Its namespaces are incorrect and it's a perfect duplicate of src/core/scoring/util_methods/DumpTrajectoryEnergy.hh
Tagging @vmullig because it was his PR, and @bcov77 because github credits this file to him.
notify author
notify list [rosetta-logs@googlegroups.com]