Merge pull request #5753 from RosettaCommons/vmullig/string_copy_issue
Fixing some strings that were passed by copy instead of by reference.
Strings are relatively heavy objects, and copying them just to pass them to a function is a waste of memory and clock cycles. These ones are in some utility functions. This is an easy issue for newer devs to review, and it's ready for review.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5748 from RosettaCommons/vmullig/fix_pnear_calculator_for_extreme_energies
Fix the PNear calculator for cases in which absolute values of energies are large.
The PNear calculator can encounter floating point range errors if energy values are either very positive or very negative. If all energies are very positive, the partition function, `Z = sum_i(exp(-E_i/kbt))`, ends up being zero, and this produces divide-by-zero errors. If the energies are very negative, then the same sum ends up being infinite. The correction for this is to subtract off the smallest energy before doing the sum. This requires slightly more memory (we need a vector of energy and RMSD values, instead of just accumulating values), but it's safer.
Tasks:
- [x] Check unit and integration tests.
- [x] Check simple_cycpep_predict and pnear_vs_ic50 scientific tests.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5581 from RosettaCommons/vmullig/lazily_load_scorefunctions
Ensure that scorefunctions are loaded from disk once, lazily, and in a threadsafe manner.
Currently, every time a scorefunction is requested by name, it's re-loaded from disk. This is inefficient. This implements scorefunction caching, and allows scorefunctions to be loaded once, on first demand (i.e. lazily), and in a threadsafe manner.
Because pull request #5573 generates a lot of extra chatter from extra loads of scorefunctions, this PR should be merged before that one.
This PR also updates the documents submodule to point to the latest master of the documents repo. It also fixes a bug in ExactOccludedHbondSolEnergy.cc: when a ScoreFunction was cloned, this energy method's EtableEvaluators were not deep-copied, since the EtableEvaluators lacked `clone()` methods. These have now been added and are invoked when the energy method is copy-constructed or cloned.
TODO:
- [x] Fix integration test failures with `shobuns` and `geometric_solvation`. The rest of the integration test changes appear to be expected cosmetic changes caused by scoring functions not being loaded over and over (so some repeated text disappears in the output log).
Note: Jack had a stale "changes requested" on this PR. I dismissed that after hearing verbally from Jack that he was satisfied following my changes and Steven's approval of the PR.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5700 from RosettaCommons/tjbrunette/loop_closure_chain_fix
fix for if resBeforeLoop_ and resAfterLoop_ are not on the same chain in NearNativeLoop closure
notify author
notify list [rosetta-logs@googlegroups.com]