「view this page in B3 βῆτα server」

Revisions №59825

branch: master 「№59825」
Commited by: Vikram K. Mulligan
GitHub commit link: 「d53348b0553018c1」 「№2675」
Difference from previous tested commit:  code diff
Commit date: 2017-10-28 15:37:30

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).