Merge pull request #2680 from RosettaCommons/rfalford12/membrane-info-safeguard
Extra safeguard for accessing MembraneInfo
-------------
Adding two extra checks in src/core/conformation/Conformation.hh when accessing the MembraneInfo object. If membrane_info_ == nullptr, the program will exit with a message instead of returning a null pointer. The previous behavior led to lots of segfaults instead of informative error messages when a user forgot to initialize AddMembraneMover (including myself).
This shouldn't change any unit or integration tests. If it does, then I've only identified bugs in those unit tests.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2682 from RosettaCommons/sergey/binder
PyRosetta update. Updating Binder: disabling binding for variadic functions due to segfaults of Clang-4.0+ when trying to compile such bindings.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2677 from RosettaCommons/benchmark
Setting default for `run::version` option to false. This will produce change to all integration tests due to switch to less verbose option output.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2675 from RosettaCommons/vmullig/polymer_dependent_efficiency
Improving efficiency of function that determines whether atoms depend on polymeric connections
The question of whether an atom depends on a polymeric connection has an answer that doesn't change once a ResidueType is initialized, so repeatedly figuring this out on the fly -- using a recursive function, no less -- is unecessarily inefficient. This underlies the slowness in N-methyl amino acid design that was tripping up @gbhardwaj, and causes the slowness issue that @everyday847 was seeing in issue #2673. This pull request adds a little bit of data to the ResidueType, initialized in the finalize() function, so that we can rapidly look up whether an atom depends on a polymeric connection.
Tasks:
-- Add the data to ResidueType class.
-- Add getters.
-- Initialize it in ResidueType::finalize().
-- Remove existing recursiveness in Residue::atom_depends_on_lower() and Residue::atom_depends_on_upper().
-- Have these functions call the new lookups in ResidueType.
-- Check unit tests.
-- New unit test for N-methyl amino acids? --> No.
-- New unit test for peptoids? --> No.
-- It turns out that I already have exactly the two unit tests that I was going to add, so there's no need for new unit tests.
-- Check integration tests. (Should be no change, except for speed. There will be central_class_modification changes, though, and possibly trajectory changes in the flipping tests.)
-- Beauty.
@lyskov: All integration tests are now printing out the Git SHA and date, meaning that they all fail consistently. I think this might be related to your recent PyRosetta-related changes.
Filtering out this spurious noise, the only actual integration test failure that I saw when I ran this is in the `oop_design` integration test. The trajectory changes slightly, which is in hindsight to be expected, since polymer-dependent atoms for oops are now being rebuilt properly. Importantly, the `ncaa_fixbb` integration test does _not_ fail, which means that peptoids are still being handled the same (their side-chains were already treated as polymer-dependent, and still are).
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2660 from RosettaCommons/roccomoretti/integration_test_meta_flag
Add an "integration test" meta flag
To avoid issues where people forget certain flags which results in non-constant output in the integration test, and to make it more obvious to external users which flags they *shouldn't* be using, I've created a new -testing:INTEGRATION_TEST meta option which enables flags for integration test purposes. (Unless those options are explicitly disabled on the commandline)
notify author
notify list [rosetta-logs@googlegroups.com]
Reverting last. The passing by value instead of by reference really was deliberate, and the functionality breaks if this is changed. However, I have another solution that will address the efficiency issue that Andy is seeing, and am opening a pull request for this.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1771 from RosettaCommons/roccomoretti/specificer_patch
Add a "HasAtom" patch selector.
The patch interoperability logic can get a little cleaner if we can test for the presence/absence of particular atoms on which we're going to work. This merge adds such an HAS_ATOM patch selector, so you can test if the ResidueType you're attempting to remove the H atom from really does have that atom.
notify author
notify list [rosetta-logs@googlegroups.com]