commit 4d8c8074e4eab340e5d26c0069d807aa5a8d6978 Merge: 664c7d2 fdd717a Date: Fri Feb 8 09:17:52 2019 -0600 Merge pull request #3799 from RosettaCommons/jadolfbr/iam_bugfix General bug fix from an email - IAM is now chain order independent as of sometime not too long ago. This is now reflected in both `RosettaAntibodyDesign` and Antibody Modeling to protect against failures arising from chain order. commit 664c7d28d7cb2c69ca2b4e6c4ffb8880a6444981 Merge: ae40b61 9965f4b Date: Thu Feb 7 14:40:15 2019 -0500 Merge pull request #3789 from RosettaCommons/JackMaguire/HBNetFlatSet Replacing HBNet's sorted vectors with boost flat_sets One of the messiest things I added to HBNet was sorted vectors. They helped with performance but littered the code with `std::lower_bound` and `std::binary_search`. I'm going through and replacing them with boost's flat containers (ordered sets and maps that are built on top of vectors) to keep the performance benefits without all the mess. Thanks to Brian for the review! commit ae40b61100c506a2c030fa25adb410e700732b68 Merge: deb67c2 24f84e8 Date: Wed Feb 6 15:40:45 2019 -0800 Merge pull request #3793 from RosettaCommons/vmullig/enforce_generating_function_privacy Trying to prevent some initialization functions for static const global data from being called from outside the intended context. Currently, a developer could call these functions from anywhere. This causes two problems. First, it duplicates data that have already been generated and are available globally. Second, it creates possible memory leaks, since the data are allocated on the heap by raw pointer, and a developer will probably not think to call `delete[]` on them after finishing with his or her local copy. By making the initialization functions into ordinary functions with no prototype outside of the context in which they are used, these functions can't be used for anything but initializing the static const data that they're supposed to initialize. Edit: This pull request also fixes a memory leak in the ResidueCountFilter, caused by improperly calling one of the initialization functions. Before merging, I need to do the following: - [x] Check that the functions to get properties from strings and strings from properties are unit-tested. - [x] Add some comments to those functions explaining how to use them. commit deb67c2455d7c401e039977805bb032dc3610e53 Merge: 6a3f7ed a065dfb Date: Tue Feb 5 13:22:19 2019 -0600 Merge pull request #3796 from RosettaCommons/roccomoretti/reb_lr_fix Fix behavior of residue_energy_breakdown w/r/t long range energies. The residue_energy_breakdown application was accumulating the unweighted energies for long range energy terms, despite accumulating the weighted energies for the one-body and the short-range terms. commit 6a3f7ed7ca19d08773113d33ad8991fcf93244f4 Merge: 50d068b 524144b Date: Tue Feb 5 10:43:22 2019 -0600 Merge pull request #3784 from RosettaCommons/jadolfbr/residue_property_selector Add a `ResiduePropertySelector` that selects based off of the ResidueProperty of a residue_type. Can set multiple properties and select and/or logic to simplify complex queries. Unit test suite for both code-level and rosetta_scripts based interfaces to the class. commit 50d068be8c5104e9231a989916d59d9696321b79 Merge: 57d23a2 280418f Date: Thu Jan 31 12:34:09 2019 -0800 Merge pull request #3764 from RosettaCommons/bcov/ReadResfileFromDbSelector Adding a ResidueSelector to ReadResfileFromDB and a few bug fixes commit 57d23a298cef198e29438342e49ee392a82a0b06 Merge: 95d4d5c 7cb8d7b Date: Thu Jan 31 12:33:53 2019 -0800 Merge pull request #3624 from RosettaCommons/bcov/DontFilterReport Add option to skip filter reports commit 95d4d5c4f8c3c09c2ad3ddcfa6f96f2a183c42f8 Merge: a380c06 1000fbf Date: Thu Jan 31 08:13:24 2019 -0500 Merge pull request #3788 from RosettaCommons/JackMaguire/Allocations There was a needless Residue copy in the inner loop of the FixbbSimAnnealer. It accounted for 54% of all heap allocations and 2% of total runtime (25% of total runtime according to the benchmark server). Thanks to Vikram for the review! commit a380c0640211d08e4e8053c393b3b5a49373bedf Date: Wed Jan 30 18:21:21 2019 -0500 RosettaAI: Setting rosetta_scripts_scripts submodule to latest origin/master version. commit 8e9940c32d62464b0d303e1706faa0cdf22218a9 Merge: 32f14c85 2998e48 Date: Wed Jan 30 12:03:31 2019 -0700 Merge pull request #3781 from RosettaCommons/sergey/binder updating Binder submodule to latest version commit 32f14c85c3c7190c6ce1874d7c6a1e9db6f525af Merge: 99b981a adcbe48 Date: Tue Jan 29 14:46:46 2019 -0800 Merge pull request #3760 from RosettaCommons/bcov/ElectrostaticComplementarity Adding ElectrostaticComplementarityMetric commit 99b981ae91195a54fdbe9745dc44cbd4629b8f6a Merge: 5c57ffb 7feea9c Date: Tue Jan 29 13:44:34 2019 -0700 Merge pull request #3782 from RosettaCommons/sergey/f Updating `beautify` test logic so it does not mess-up Git submodules. Thanks to @roccomoretti for valuable feedback! commit 5c57ffbadabc03c3f425591a3b285f0da5acec6e Merge: 483fcf5 fbb0dbe Date: Tue Jan 29 11:31:41 2019 -0500 Merge pull request #3783 from RosettaCommons/vmullig/fix_octahedral_metal_test Fix the simple_cycpep_predict_octahedral_metal integration test. This is unfortunately testing something that has an inherently low success rate. I'm tweaking the test to "cheat" as much as possible, to bias the results to a success. commit 483fcf5cee84a82e49dd7585ca788ee66efb193c Date: Mon Jan 28 13:34:51 2019 -0500 RosettaAI: Setting pyrosetta_scripts submodule to latest origin/master version. commit c5a26194b18ef0ce85c9b068021b3ba5e0f83234 Merge: 366d666 8709a85 Date: Sun Jan 27 22:40:03 2019 -0800 Merge pull request #3765 from RosettaCommons/longxing/upweighter Add skip loop option to the ProteinProteinInterfaceUpweighter task operation commit 366d66620bf130f5a8a57fdc2248ecf49efa2a03 Date: Sat Jan 26 21:51:09 2019 -0500 updating Binder submodule commit ed2d08dea3bfadd0b0735c448c986b140b7ae850 Date: Sat Jan 26 19:06:14 2019 -0500 fixing Binder submodule (got broken by https://benchmark.graylab.jhu.edu/revision?branch=master&id=60598) commit 60d3fe8b4d2d9372d8d8826192a564cca8029700 Merge: 8e4c256 a2e30be Date: Sat Jan 26 11:08:58 2019 -0600 Merge pull request #3779 from RosettaCommons/roccomoretti/change_position_of_atom_on_ring Fix for position_of_atom_on_ring() There was some confusion on the behavior of position_of_atom_on_ring() in the case when an atom is part of the ring. The documentation was unclear, and the actual implementation was highly dependent on the atom ordering of get_adjacent_heavy_atoms(). This PR changes things such that atoms on the ring get a return value of 0, just like atoms which aren't directly connected to the ring. commit 8e4c256954f8db1d496ba7df19262783c614f431 Merge: ec19188 c7e21e7 Date: Sat Jan 26 05:22:39 2019 -0800 Merge pull request #2999 from RosettaCommons/sergey/f enabling STL debug mode We've done it! Let me know if you'd like to put in some effort to make your favorite integration/unit test faster, either for its own sake or so that it can be reactivated in release_debug mode. (There are only a handful affected.) commit ec19188ee3791de9fecd9d148263bba795accb18 Merge: fd66691 06e1703 Date: Thu Jan 24 15:15:37 2019 -0600 Merge pull request #3776 from RosettaCommons/roccomoretti/upper_atom_selector Convert UPPER_POSITION patch selector to UPPER_ATOM selector. The UPPER_POSITION patch selector currently has a dependency on the CarbohydrateInfo object. This makes the selector not as general as it could be. I've changed this to an UPPER_ATOM selector, which cues based on the atom name of the atom connected to the UPPER connection, rather than the mainchain position setting in the CarbohydrateInfo object. commit fd666910a5edac957383b32b3b4c9d10020f34c1 Merge: 2787c92 2b67001 Date: Tue Jan 22 15:55:37 2019 -0500 Merge pull request #3771 from RosettaCommons/vmullig/fix_xcode_yet_again Fixing a few more xcode build errors. (Same thing: missing ampersands.) commit 2787c928a326c3bde61104726b0aeabdae3f72e3 Merge: 228f5dc c37d651 Date: Tue Jan 22 15:46:32 2019 -0500 Merge pull request #3773 from RosettaCommons/vmullig/debug_mode_mathvector_overruns Correct bounds-checking on MathVectors MathVectors are zero-based, not one-based, but the bounds checking on the class assumes that indices 0 through (size) are valid. This corrects that. This turns out to be exactly what was wrong with my PolycubicSpline unit tests, too. This pull request corrects the indexing in the MathVector that I use in that test, so that I don't write past the end of an array. Finally, the bounds check was being performed in release and debug modes. This adds an #ifdef to ensure that the bounds check only happens in debug mode, for speed. commit 228f5dcc86e55ec9f1d0c10d039c7eb7bfb7d5af Merge: 90b0b9f db7cc45 Date: Tue Jan 22 15:45:18 2019 -0500 Merge pull request #3769 from RosettaCommons/aleaverfay/slim_lkball2 ifndef-wrap a unit test which relies on a debug-mode assertion failure This PR fixes a currently-failing release-mode unit test that I added in the last PR (#3729) commit 90b0b9f2010f8dd424a9db98257521740706e962 Merge: bd73437 5c5dc93 Date: Mon Jan 21 04:07:56 2019 -0500 Merge pull request #3767 from RosettaCommons/vmullig/fix_spline_tests Trying to fix PolycubicSplineTest intermittent failure on Mac/clang build commit bd734379f5721f3cc1b0e6d3dc5b8c8155dfb1f8 Merge: 81a573a e70c73d Date: Sun Jan 20 19:55:23 2019 -0500 Merge pull request #3768 from RosettaCommons/vmullig/fix_xcode_build_after_jd3 Trying to fix xcode build after JD3 refactor. Xcode flags cases in which `auto` is misused, causing objects to be copied inadvertently. For example: `for ( auto const larvaljob: larvaljobs_ ) { ... }` This should be `auto const & larvaljob`. commit 81a573a47f791407a44442795a7eb35e42b5b23b Merge: 06851be e5d725a Date: Fri Jan 18 10:21:39 2019 -0500 Merge pull request #3761 from RosettaCommons/dougrenfrew/restore_oop_design This PR adds back a mc->recover_low( pose ) that was accidentally removed in 67479d1. The removal resulted in identical poses being output for each nstruct. It was found by an external user who contacted the original author @ksdrew . commit 06851be071db102764c1853d48d673ddb8415456 Merge: 8442bff 145541d Date: Fri Jan 18 07:34:23 2019 -0500 Merge pull request #3759 from RosettaCommons/JackMaguire/FastDesignScriptsInDatabase Fixing Tests That I Broke Rocco noticed that the changes I made to FastRelax broke integration tests that used custom scorefxn weight files. This PR adds a patch that handles that case. Sorry for not noticing the failed tests! Not sure why it gave me a green checkmark. commit 8442bff4fb7bf2ccb44655e8d15276c9bccfbbd0 Merge: b562f8b 92047d9 Date: Thu Jan 17 20:09:48 2019 -0500 Merge pull request #3709 from RosettaCommons/jadolfbr/jd3_updates JD3 Simplification/Refactor Code Changes: ===== - Code templates have been added for common JD3 classes. - Transferred `StandardInnerLarvalJob`s use of `prelim_job_node` as` job_node` into the `InnerLarvalJob`. Since the ILJ is passed with the LarvalJob, this makes every function in the SJQ easier to use as you know which job_node you have - and this is not limited to `PreliminaryLarvalJobs`. - - This makes the StandardInnerLarvalJob obsolete as that was the only extra thing about it. It has been removed and classes refactored to call the InnerLarvalJob. - Moved `PreliminaryLarvalJob` to its own file in `jd3/standard`, changed it to a struct as per conventions, as everything was public. - Added the `PreliminaryLarvalJobTracker`, which the SJQ now uses to track the progress of the PJNs. This is a full class, with private data and initialization methods and is in `jd3/standard` - Added the `JobTracker` class. This class tracks completed and assigned jobs in the SJQ. This JobTracker is now updated by the JQ base class - through a wrapper/decorator function that is called by the JD. This means that SJQ developers can be ensured that the `JobTracker` is up to date and they are not responsible for updating it. Protected accessor methods have been added. - The JQ now holds an OP to the `JobDigraph`. This OP is stored during the JQs version of `initial_job_digraph`, which is a wrapper/decorator to derived class functions - ensuring that the SJQ developer is not responsible for setting it, and protected accessor methods have been added. - `JobNode `now has an optional variable, job_label - this is to better delineate how jobs are constructed. We can now ask the `JobDigraph` which job_label a particular job_node is for - IE this is useful for multiple stages, such as if all Prelim jobs undergo some stage 1, and all jobs from global index i -> j undergo job_type "2". This reduces the amount of logging needed so we do not have to track all the global index ranges to simply start a job of some type. - `EnergyJobSummary` is now in its own file, and the **4?** places where it was copied have been removed! - Add a new `StandardPoseJobSummary`, which is a JobSummary that extracts the Energy and SimpleMetricData from a pose. This should cover Most data needed for a summary ;) - `MoverAndPoseJob` has now been changed to `MoverJob`. The `pose` part of the job is inferred - no need to add that to the name. The `MoverJob` has been expanded to use the `StandardPoseJobSummary` and run a set of optional simple metrics on the final pose before returning the `PoseJobResult` and `StandardPoseJobSummary` pair. MoverJob is now aware of a SequenceMover to make it easier to either set a mover or add movers (which is extremely common). - `InputSource` pose_id variable and function are now source_id to go with the more generalized interface. General SJQ Edits ============= - The SJQ header interface is completely re-organized to have typical derived functions at the top, and mainly unused/specialized functions at the bottom. - Move some SJQ function bulk out of the SJQ and into JD3 util files. - **The number of SJQ private variables has been reduced from 50 members to 32 members** !! - All function briefs in the SJQ have been updated to separate briefs from details (almost all of it was details before). The descriptions have been updated/simplified where possible, and instructions for override behavior or gotchas have been added. Tests ==== A full suite of unit tests have been added for the new main classes, the SJQ tests have been updated to fully test the `JobTracker` and the `PreliminaryLarvalJobTracker`. commit b562f8be42fa979f702f70a199dd05cf62a95a72 Merge: 87eed42 7f8b870 Date: Thu Jan 17 12:26:41 2019 -0800 Merge pull request #3737 from CyrusBiotechnology/bfrenz/fix_pro_terminal_ddg fix to prolines near an internal breakpoint commit 87eed4233e420312270a51e9f7bc00b8b6fdba7c Merge: b5398dc 35815ba Date: Thu Jan 17 13:00:49 2019 -0500 Merge pull request #3754 from RosettaCommons/vmullig/splinetests Add unit test to determine whether polycubic interpolation of symmetric points is symmetric for N>2 commit b5398dc5ab66499796be71ef200259a03aea18ad Merge: 110da19 984d3c7 Date: Thu Jan 17 09:47:01 2019 -0800 Merge pull request #3755 from CyrusBiotechnology/bfrenz/hybrid_add_hetatm_setter Bfrenz/hybrid add hetatm setter commit 110da19b7a79148777738d3e166357f3850afc2d Merge: eea2a5b 242279a Date: Tue Jan 15 17:26:09 2019 -0500 Merge pull request #3662 from RosettaCommons/JackMaguire/FastDesignScriptsInDatabase Adding new non-default FastDesign scripts. Update to the docs wiki coming soon to describe them. Thanks to Vikram for the review. commit eea2a5b248f13479710959c3cceaedc8d0ca9d1a Merge: 1811839 51ebd94 Date: Mon Jan 14 18:26:57 2019 -0500 Merge pull request #3753 from RosettaCommons/JackMaguire/ExFlagProfileTest2 This corrects behavior from #3745 I added a very short profile test that was intended to track memory usage and not focus on speed. Turns out that it is too short for the benchmark server and now it always fails with the warning "Execution time is below 128s, marking test as failed!". This PR increases the nstruct of that test so that it takes longer (still only a few minutes). commit 18118395c4bb9152fc9e70a2b0a46941c1b33604 Merge: 449d338 c475df9 Date: Fri Jan 11 15:33:07 2019 -0500 Merge pull request #3736 from RosettaCommons/dougrenfrew/conf_residue_full_to_fwd_header Convert some full headers to forward headers. May improve compile times slightly. commit 449d3383852c468b14b4e6b5f9c6db02cd81cfc3 Merge: bf29ea8 5d257e0 Date: Fri Jan 11 15:00:05 2019 -0500 Merge aleaverfay/slim_lkball2 (PR #3729) @JackMaguire noticed that the per-residue memory use has increased substantially and tracked it down to the arrays used to store the water coordinates and water-derivative matrices in the Residue data cache for the LK_BallEnergy. Previously the coordinates were held in natoms x max_waters_per_atom x 3 arrays, and the derivative matrices in three natoms x max_waters_per_atom x 3 x 3 arrays. In the case of TRP, this was nearly 15KB per Residue. This memory allocation is 100% my fault from a few years back when trying to make LK_Ball faster, which it did, but not in the most space efficient format. The new code allocates the coordinates in nwaters_actual x 3 arrays, and the derivative matrices in nwaters_actual x 3 x 3 arrays and only when derivatives are actually being calculated. The memory use is now ~200 bytes per Residue in the context of the packer and ~2KB per Residue in the context of the minimizer. Integration tests are clean except for one cosmetic test change. commit bf29ea89714ac6802d708e4eecc13187304cc4da Merge: 3a3dbbe ed5e47f Date: Fri Jan 11 11:21:20 2019 -0500 Merge pull request #3745 from RosettaCommons/JackMaguire/ExFlagProfileTest Andrew's PR #3729 fixes an issue that increases Rosetta's memory usage by a factor of 4*. This issue doesn't stand out on the testing server because our test cases tend to be small enough to run quickly (this issue only presents itself when memory usage is dominated by Residue objects). This PR adds a profile test that sets up to perform a large packing run but stops after the setup. All of the Residue objects get made but no sampling takes place. Only takes a few seconds. *when packing with linmem_ig Thanks Steven and Sergey for reviewing! commit 3a3dbbebb3111579773fc1962cfbe7799db4e1af Merge: 81dca65 7697ef6 Date: Thu Jan 10 17:36:04 2019 -0500 Merge pull request #3725 from RosettaCommons/JackMaguire/Inlining2 Continuation of #3670 @dougrenfrew measured a 5% speed increase by compiling with link-time-optimization. The main benefit of LTO is inlining simple functions defined in .cc files. I profiled Rosetta and found a handful of getter-functions that accounted for roughly 0.5% of Rosetta's runtime each. This PR moves those functions to the corresponding .hh file with the hopes of seeing a speed increase. I also moved neighboring functions if it looked like the bundle should be kept together.