Merge pull request #5060 from RosettaCommons/aleaverfay/hotfix_from_4924
Add a missing inclusion to fix release unit test build
I had a unit test that was not compiling in release mode due to undefined symbols not caught in debug mode
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5044 from RosettaCommons/vmullig/fix_multithreaded_ig_symm_test
Fix the multithreaded_ig_symm integration test and reinstate it
This PR aims to fix this previously permabroken test. Tasks:
- [x] PR #5043 must be merged before this one. (This branch is branched off of `roccomoretti/fix_tests`).
- [x] Revert 074fe9c78a2f157d245b1ed9cef9fd9e13d9487f to re-enable the test.
- [x] Confirm that it fails.
- [x] Find the problem --> threshold was just a bit too low.
- [x] Fix it --> threshold raised a bit.
- [x] Confirm that test passes on my machine.
- [x] Confirm that test passes on test server.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4924 from RosettaCommons/aleaverfay/dof_deriv_bugfix
Fix score/deriv mismatch w/ DOF derivs in cart min
Terms like RamaPrePro and Dunbrack and P_AA_PP are three body energies that masquerade as one- and two-body energies. Because they depend on both phi and psi, and phi extends into the previous residue and psi extends into the next restidue, they depend on the coordinates of three residues. The DOFs that they define, however, live within a single residue in the atom tree. The N atom's atom-tree torsion defines phi; the CA atom's atom-tree torsion defines psi. So we usually just call these terms one-body energies (or in RamaPrePro's case, a two-body energy).
When we run atom-tree minimization on residue i (and not residue i+1), then when residue i's DOF's change, residue i's energies are updated and residue i+1's energies are not. This is OK because residue i+1's DOFs are not changing, even though the coordinates for residue i are moving. When we run cartesian minimization on residue i (and not on residue i+1), however, then residue i+1's DOFs do change.
Until the introduction of RamaPrePro, cartesian minimization had a discrepancy between the score function that it was optimizing and the true score function for the structure, but did not have a derivative/score function discrepancy. The DOFs for residue i+1 were changing, but neither the score for residue i+1 nor the derivatives for those DOFs were evaluated. RamaPrePro, however, is a two-body energy. The energy for RamaPrePro is evaluated on edges in the minimization graph (e.g. the edge from i to i+1), but the DOF derivatives are evaluated for the lower residue. This meant, when residue i-1 was held fixed and residue i was allowed to move, that the changing score for the i/i+1 interaction was evaluated but the derivatives for this changing score were not.
The (fairly involved) solution for this bug is to have DOF-derivative-defining (DDD) energy methods report which atoms define the DOFs that they examine for a particular residue, and then activate energy methods for certain residues if these atoms are moving.
To report what atoms define a DOF off the edge of a residue, I have created a new class: the PartialAtomID, which can either refer to a particular atom, or to an atom defined relative to an inter-residue connection.
This code works properly now for my original test case that relied on cartesian minimization of a subset of the Pose (no more inaccurate G! messages), as well as (asymmetric) cartesian minimization unit tests, and new unit tests for symmetric cartesian minimization.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5043 from RosettaCommons/roccomoretti/fix_tests
Fix some tests broken in master.
* Fix crashes due to a bug introduced by PR #4986 in mover error handling
* Make the database_md5 test less noisy
* Disable (until fixed) the perma-broken multithreaded_interaction_graph_accuracy_symm
* Fix an issue with undefined behavior in RDKit which is showing in our tests.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5033 from RosettaCommons/roccomoretti/move_loop_relax
Move LoopRelaxMover to different library level.
PR #5028 has issues due to library levels.
This PR (being merged independently) should alleviate those issues by moving the LoopRelaxMover from protocols 5g to protocols 4. (into a new protocols/relax/loop directory). This also requires moving some utility functions from protocols/comparative_modeling/util.hh to protocols/loops/util.hh, but that's arguably the better place for them, anyway.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5038 from RosettaCommons/jkleman/SciBen_FlexPepDock
Jkleman/sci ben flex pep dock:
FlexPepDock: fixed the technical evaluation error - this test wasn't supposed to be passing according to what the readme said. Fixed the test, the RMSD cutoffs and adjusted the readme accordingly
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5035 from RosettaCommons/roccomoretti/fix_compile_noise
Fix deprecation warning issues with Boost update.
The recent update to Boost 1.74 has caused issues with some of the added deprecation warnings. Theoretically, these should just be warnings and not errors, as they happen in external headers (and we include them with -isystem), but there have been reports of Rosetta not compiling. (And they're just annoying/ugly.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4986 from RosettaCommons/roccomoretti/pp_sm_addition
Add the ability to run simple metrics directly from the PROTOCOLS section.
SimpleMetrics were slightly harder to use than Filters for reporting values, as you could not add them directly to the PROTOCOL section.
This adds the ability to add SimpleMetrics with the simple directive <Add metrics=(comma separated list)/>, which evaluates them at that point in the protocol, and then adds them to the pose to be output as scores (just like if you did a RunSimpleMetrics mover.)
By default, the metrics are labeled according to their names (the strings in the metrics= line.) You can change this with a labels=(comma separated list), which will allow you to provide particular values to be used for the output. If you use '-' (a single dash) as a label, the "normal" labeling will be used.
Examples from the integration test:
<Add metrics="L3_fa_rep" /> -- adds the L3_fa_rep metric under the label "L3_fa_rep"
<Add metrics="total_energy_pre,rmsd,sasa" labels="TotEnergy,my_rmsd,SaSa" /> -- adds the three metrics under the labels "TotEnergy" "my_rmsd" and "SaSa", respectively.
<Add metrics="L3_interactions,L3_no_sol" labels="-" /> -- Adds the L3_interactions metric to the output under it's default name with custom type, etc. (which happens to be "L1_interaction_energy" in the integration test case, and adds the L3_no_sol metric under the "L3_no_sol" name.
<Add metrics="L3_fa_rep,ss" labels="interact_rep" /> -- adds the L3_fa_rep metric under the "interact_rep" name, and the ss metric under the name "ss"
The relabeling should work with string, per-residue and composite metrics, with <Add metrics="hbond" labels="pr_hbond" /> (per residue metric) giving a number of pr_hbond_{resnum} entries, and <Add metrics="protocols" /> (composite string) giving a bunch of protocols_{label} entries.
The RunSimpleMetricsMover should still work as it has before, but potentially with a greater number of options.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5027 from RosettaCommons/vmullig/check_cterm_amidation_patch
Debug the Cterm_amidation patch
A few users have complained about this. Adding unit test for desired behaviour. Will debug if unit test fails.
EDIT: Yes, the patch was messed up. It's fixed now, and the unit test will ensure that it stays fixed.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #5020 from RosettaCommons/bcov/clang_code
Fixing clang code quality
Vikram K. Mulligan 4 years I'm queueing the valgrind_detailed unit tests so that we can track down the uninitialized variable that's creating a lot of red on the test server.
Vikram K. Mulligan 4 years (Note: this problem wasn't introduced with this PR.)
notify author
notify list [rosetta-logs@googlegroups.com]