commit 513cc22d17d203e95eda08f3e66a985d92be7bfe Merge: 65358bc 590cb82 Date: Fri Oct 4 11:07:07 2019 -0700 Merge pull request #4132 from RosettaCommons/bcov/super_bugfix Super bugfix and arbitrary mover change pr commit 65358bc47b75f39e59bc7c76d09b3441103dd923 Merge: 6516f65 8357824 Date: Thu Oct 3 11:24:05 2019 -0700 Merge pull request #4261 from RosettaCommons/dimaio/glycan_cart_bonded_fixes Dimaio/glycan cart bonded fixes commit 6516f65b1829359839af517b83db72807fc03417 Merge: 2fbc752 c5f1687 Date: Thu Oct 3 09:24:19 2019 -0700 Merge pull request #4239 from RosettaCommons/ajasja/ddg_ala_scan Ajasja/ddg ala scan commit 2fbc75295dca398147a7ddbe7dce14e6fa9b00f3 Merge: 6ba36f5 29ffdaa Date: Wed Oct 2 09:32:15 2019 -0500 Merge pull request #4256 from RosettaCommons/roccomoretti/Wsuggest_override Override Overdrive C++11 added the override keyword for virtual functions which are a re-implementation of a base class's virtual function. This is helpful, because the compiler can check to make sure that the function is actually overriding the base class's function, rather than defining a new function with a different interface. In fact, modern C++ recommended practice is to use virtual only for the original (base class) version of a virtual function, and any reimplementation of the function should be marked with override. This PR runs the clang-tidy modernize-use-override tool over the codebase to add override and convert virtual to override where warranted. After this, `virtual` should really only be on functions which are the initial declaration of a virtual function, and `override` should be on all declarations of virtual functions which are in a subsequent child class. commit 6ba36f5aa481c0b8f8355897ccb40c5206f9eaea Merge: 04b1de3 cbd4c31 Date: Wed Oct 2 14:48:33 2019 +0200 Merge pull request #4258 from RosettaCommons/lqtza/bump_4hpy_cutoff Update 4HPY (antibody h3) Conway discrimination cutoff for sci. bench. commit 04b1de3fcea62b2b04869e53167e1ee430a5b5e0 Merge: 453c034 9510e70 Date: Tue Oct 1 23:48:44 2019 -0400 Merge pull request #4259 from RosettaCommons/vmullig/fix_antibody_design_mover Removing an unused, uninitialized variable from AntibodyDesignMover which is causng stochastic failures of integration test. Note that, at some point, it would be good to switch to header-initialization and a default copy constructor for this mover. commit 453c0349c3bbd52ce4f48ee06b404feebe3745e3 Merge: e60f207 2ecc9e3 Date: Tue Oct 1 21:33:10 2019 -0600 Merge pull request #4150 from RosettaCommons/sergey/binder Updating PyRosetta.notebooks submodule. Updating `notebook` test, adding test time limit. commit e60f20795c0db6d523cfe93c1912296d3d56a6cb Merge: 839e65f d1de9c5 Date: Tue Oct 1 08:47:08 2019 -0400 Merge pull request #4237 from RosettaCommons/JackMaguire/StrongTypeAliases Adding Utility To Make C++'s Type System Help Us Catch Bugs We're having an issue in JD3 right now where we have a lot of Sizes and Reals floating around and we are forced to use variable/parameter names to make sure they line up correctly when calling functions. This is very bug prone because the compiler will not tell you if you pass the wrong arguments if all of them are the same type (`core::Size`, for example). This PR adds a theoretically zero-overhead way to assign different type names to different Sizes. See below for an example. I'm also adding a few use cases to the MC HBNet data structure to make sure this works and to make sure the HBNet profile test does not get worse. ```c++ //OLD: void draw_rectangle( int width, int height ); void foo( int h, int w ){ draw_rectangle( h, w ); //logic error, may not be caught at runtime draw_rectangle( w, h ); //correct } //NEW: using Width = utility::StrongSize< struct Width_ >; using Height = utility::StrongSize< struct Height_ >; void draw_rectangle( Width width, Height height ); void foo( Size h, Size w ){ draw_rectangle( h, w ); //compiler error draw_rectangle( w, h ); //compiler error draw_rectangle( Width( h ), Height( w ) ); //logic error, but the developer should be able to notice that this is wrong draw_rectangle( Width( w ), Height( h ) ); //correct } ``` Here's proof that this abstraction gets compiled away: https://godbolt.org/z/eWM_uJ commit 839e65fe1f9fe9fd48814320d3fd9e660fd3b6f7 Merge: 192b028 bef5820 Date: Mon Sep 30 11:08:55 2019 -0500 Merge pull request #4252 from RosettaCommons/roccomoretti/fix_d_aa_loading_issues Make DAAs and CCD components play more nicely together. There were issues with loading in D-SER while the PDB components files were active. This PR adds a unit test for D-SER loading, as well as a few changes to address warnings/errors which occur during the process. We also adjust the exclude_pdb_components.txt list for the three letter code translation functionality which is currently in -alternate_3_letter_codes default. commit 192b028ae487fbd6834ccf8a6416b0182bf423e0 Merge: ae7199d 8fe33af Date: Sat Sep 28 11:14:50 2019 -0700 Merge pull request #4211 from RosettaCommons/yhsia/ddg_debug ddG_filter residues not truncated in symmetry mode commit ae7199db0dcd95efa8cb7a4035ca74fa9e6712ed Date: Sat Sep 28 02:54:18 2019 -0400 beautifying commit 9a99040f0cda4fbf75fd38cfa222e9e2682c1e11 Merge: 035ea54 28bdbf9 Date: Fri Sep 27 23:51:10 2019 -0400 Merge pull request #4216 from RosettaCommons/vmullig/add_options_to_simple_cycpep_predict_incremental_merge1 Incremental merge #1 of improvements to simple_cycpep_predict. This adds support for automatically computing RMSD and PNear from the lowest-energy structure sampled rather than from a user-supplied native. This pull request should be merged before pull request #4197. commit 035ea544b36ce3f28396271390d2fa6a9febea41 Merge: 2713060 6ebeab0 Date: Fri Sep 27 16:34:19 2019 -0400 Merge pull request #4214 from RosettaCommons/jadolfbr/fix_rabd This PR fixes a major bug that caused the xml interface for RAbD to fail. This also adds a short integration test and an extra setter in the mover. commit 27130602f169674bae2d00871fcadd43ed09ccee Merge: 450f416 e8dea9e Date: Fri Sep 27 11:32:27 2019 -0400 Merge pull request #4031 from RosettaCommons/jingzhougithub/add_cst_to_snugdock enable constraints in snugdock commit 450f4168154cdd0488cf68aff323dd95d50f1645 Merge: 93456a5 a9b62de Date: Fri Sep 27 07:57:39 2019 +0200 Merge pull request #4249 from RosettaCommons/lqtza/add_core6_to_xcode_template Fix broken Xcode template commit 93456a567a8125cafdf7f8cb44400bc20b570d81 Merge: e2d67bf 843a634 Date: Thu Sep 26 14:24:44 2019 -0400 Merge pull request #4242 from RosettaCommons/JackMaguire/floats_core Revive extras=rosetta_float, part 2 Sequel to #4241 , partial replacement of #4240 Just modifying src/core in this PR commit e2d67bffe8a01fd1789480f4f83add1aa5590406 Merge: 22b523d a50a486 Date: Wed Sep 25 13:57:47 2019 -0400 Merge pull request #4247 from RosettaCommons/vmullig/fix_bind2nd_error Fix MacOS/clang compilation error due to deprecated std::bind2nd(). Dropping in the following as a replacement: ```c++ //std::bind2nd( &myfxn, old_parameter ); std::bind( &myfxn, std::placeholder::_1, old_parameter ); ``` commit 22b523d13be504fd124711c2789b922227afde7d Merge: 04d3e58 5b2a6b3 Date: Tue Sep 24 16:15:51 2019 -0700 Merge pull request #4212 from RosettaCommons/yhsia/asu_output -output_only_asymmetric_unit to preserve PDBInfoLabel and filter comments commit 04d3e581085629b0f0c46f1e1aef9e61978e0eeb Merge: dffa7ec 2fc86c0 Date: Tue Sep 24 10:07:52 2019 -0500 Merge pull request #3770 from RosettaCommons/roccomoretti/const_restype_split Split ResidueType into separate modifiable and "finalized" classes. Our current ResidueType layout leaves something to be desired. Right now we have an odd prefinalized/finalized state distinction in a single class, with a whole host of duplicated data which may-or-may not be valid based on the (semantic and non-queriable) state of ResidueType. To fix this, I'm splitting the ResidueType into two (three if you count the common base class). The vast majority of usage with be of the (always-finalized) plain ResidueType class, which has the conventional name-and-index implementation, with an internal struct-of-arrays layout. For most people, the interaction with ResidueTypes will be the same. What does change is the interface for people who are modifying ResidueTypes. These people don't work with the plain ResidueType class, but with a new ModResidueType class, which uses VD's (and names) as the primary accessor, with atomic information represented in a graph. (While there is an implicit atom order, accessing by index is highly discouraged in favor of the VD interface, as atoms could be added/deleted at any time, and there isn't necessarily the same bb/sc/hydro order that the plain ResidueType has.) The only way to make a (non-modifiable) ResidueType is through building and converting a ModResidueType. (You can also convert a plain ResidueType back to a ModResidueType for further alteration.) The ResidueType factory function/constructor takes over the function of the (now-removed) finalize() function. (A common base class which stores non-atom-dependent data simplifies things.) This should make working with (Mod)ResidueTypes in their modifiable form easier, as there's less redundant information, and all information there is should all be valid and up-to-date throughout the lifetime. (Versus some data/functions being contingent on being finalized.) A side effect should be that ResidueTypes become slightly smaller (as they no longer have redundant atom information), and that compilation times become shorter because ResidueType no longer has to include the highly-templated boost::graph headers. (These are limited to the ModResidueType class, which is included in many fewer compilation units.) commit dffa7ecdbaabcae82d973fde5623e2f066356563 Merge: bd4d9ac da0ca28 Date: Tue Sep 24 09:13:39 2019 -0500 Merge pull request #4246 from RosettaCommons/roccomoretti/silent_warning_update Update number-of-atoms-differ silent file message. Give better/additional information about potential causes. commit bd4d9acbca68f82784b463edaa0c82ab79db1acd Merge: 85b7e01 16cc132 Date: Mon Sep 23 09:23:11 2019 -0400 Merge pull request #4238 from RosettaCommons/aleaverfay/sjq_ilj_construction_bug Fixing bug w/ MSRS following JD3 refactor (Issue #4234). The MRSJobQueen had operated with the knowledge/assumption that the job_node index stored in the StandardInnerLarvalJob referred to the preliminary job node from which the later job node descended. The When the JD3 refactor went through back in January, the JobExtractor began using the job-node index stored in the InnerLarvalJob to record the node of origin for a job. The logic for when you declare one job node complete and move on to the next job node depended on the proper labeling of InnerLarvalJobs with their node of origin. However, multistage rosetta scripts was not labeling ILJ's with the job node but instead with the preliminary job node. This meant that multistage rosetta script jobs stopped working; it seems likely that everyone who has tried to use MSRS since January would have been unable to get it to run properly. (Thanks @odaunc for bringing this bug to Jack's and my attention!) It turns out that the integration tests for multistage_rosetta_scripts were not failing before because they were run using the VanillaJobDistributor, and the VanillaJobDistributor is so simple that it does not use the JobExtractor at all. In order to test JD3 applications in single threaded code, I'm making the VJD as similar as possible to the other JDs (Thanks for this suggestion, @JackMaguire ). It was a good thing I did this! It turns out that MRSJQ has/had a different idea of what the JobDAG would look like from the SJQ. The MRSJQ thinks that an n-stage protocol should have n nodes in the JobDAG. The SJQ thinks that if there are m input Poses, that the first m nodes in the JobDAG will represent one input Pose apiece. The VJD-version of the MRS integration test was exiting with an assertion failure. There's actually a one-line solution to this inconsistency/discrepancy, in job-dag philosophy, which is that when the MRSJQ calls the SJQ::create_and_init_inner_larval_job_from_prelim for the very first stage, the MRSJQ should pass "1" for the job-node index. (This "fix" is relative to earlier in this PR, because I am the one to have put the wrong value for this parameter.) This means that the InnerLarvalJobs that the SJQ constructs for the preliminary-job-node will have a different job-node index than the InnerLavalJobs that the MRSJQ constructs and that will actually be used to construct LarvalJobs. This discrepancy likely has no consequences, but should be noted. This PR causes several cosmetic integration test changes as all JD3 applications now will use the JobExtractor and the JobExtractor is more verbose in its interactions with the JobQueen. commit 85b7e01ca038e87aa1a3303c547bf000ec3e8751 Merge: b1784e3 9afedff Date: Sat Sep 21 09:23:56 2019 -0400 Merge pull request #4241 from RosettaCommons/JackMaguire/floats_protocols #4240 is a monster, so @lyskov had the great idea to divide it up into multiple merges. This PR only merges the code in src/protocols and a handful of upstream files in src/numeric. Here, we are replacing doubles with core::Reals and hoping no tests fail. commit b1784e3eb15f601cd0a91d904cb7aa84bd6362b0 Merge: f3cd88e 8d80bb5 Date: Fri Sep 20 11:10:55 2019 -0700 Merge pull request #4235 from RosettaCommons/psalveso/beta_phi_selector PhiSelector selects both alpha and beta AAs commit f3cd88e4837a35eba6d19fd9c30ebf5748c77cae Merge: be849b1 1783e4a Date: Wed Sep 18 23:40:11 2019 -0700 Merge pull request #4233 from RosettaCommons/danpf/fix_static_build update static builds to core.6 split commit be849b1d783d25781ccf1e80ffac1819668d21f1 Merge: 4a130c3 c4adf0d Date: Wed Sep 18 07:56:34 2019 -0700 Merge pull request #4230 from RosettaCommons/danpf/rosettaES_script_2to3 convert rosetta EnumerativeSampling script from python2 to python3 commit 4a130c306224cefe6dd05d8b3bf39aa7a4362ddf Merge: d6e940b 7862b0f Date: Wed Sep 18 10:38:26 2019 -0400 Merge pull request #4223 from RosettaCommons/zivba/FPD_scientific FlexPepDock scientific test from Ziv. Thanks, Ziv! commit d6e940ba64c067d947567ec79908b3d893f07f86 Merge: 2429ae1 a54fac2 Date: Wed Sep 18 02:15:56 2019 -0400 Merge pull request #4225 from RosettaCommons/vmullig/no_nbr_atom_error Adding check for NBR_ATOM and NBR_RADIUS lines in params files. Currently, a params file without a NBR_ATOM line results in a very cryptic error when you try to score a pose containing that residue. Since a params file is really a Rosetta input, and users might provide their own, this isn't ideal: we should have proper error-handling with an informative error message if badly-formatted or incomplete inputs are provided. This pull request adds an explicit check for NBR_ATOM and NBR_RADIUS lines on params file read. commit 2429ae1358bb1730ca5a4868c25d38c02746ea31 Merge: 29f1d04 3f31212 Date: Tue Sep 17 11:20:05 2019 -0400 Merge pull request #4226 from RosettaCommons/tigerous/update-loop-modeling-scientific-tests update readme file and cutoffs - thanks Phuong! commit 29f1d046a74a32ff8637a99a12f858cecf11d78c Merge: 9ae8bb9 25b7428 Date: Mon Sep 16 17:30:37 2019 -0500 Merge pull request #4224 from RosettaCommons/roccomoretti/fix_cppcheck_for_188 Fixes for cppcheck 1.88 Sergey's interested in updating the version of cppcheck on the test server to 1.88. This version is having issues with the testing scripts (as they changed how they handle certain options.) This PR updates the command for the cppcheck test, as well as copying more logging information into the test server info. This should still work for the current 1.63 version, until we switch things over. I've augmented the "historical" list with the new 1.88 issues, but at some point we should probably clean those up. commit 9ae8bb94f290405407ea3ab0b04d91832df83c14 Merge: 59bbbc0 94c7c7a Date: Sun Sep 15 19:32:48 2019 -0400 Merge pull request #4112 from RosettaCommons/ssrb19/scientific_tests_docking Scientific benchmark for protein-protein docking commit 59bbbc01e9f80046c8e8021592a4a57a19b4f7e3 Merge: 470fd09 9f0456a Date: Sat Sep 14 16:03:43 2019 -0400 Merge pull request #4221 from RosettaCommons/vmullig/why_the_hell_is_rosetta_still_defaulting_to_leaking_memory_when_every_developer_has_complained_about_this_at_one_point_or_another Switching default for -jd2:delete_old_poses to "true" There isn't really a reason for Rosetta to leak memory by default, to my mind. commit 470fd09fcd4f04d63e352b14fc54367ff36292d2 Merge: 52e9acc b96a71e Date: Sat Sep 14 13:01:10 2019 -0400 Merge pull request #4219 from RosettaCommons/everyday847/weitzner_h5py_stuff Changes to FragmentStore to patch pyrosetta functionality commit 52e9acc0f1fefe1bcc390c0fec46247f637a1e86 Merge: 5b299b8 7bc2767 Date: Fri Sep 13 17:43:39 2019 -0400 Merge pull request #4217 from RosettaCommons/frankdt/concatenate_poses Frankdt/concatenate poses commit 5b299b86543fe5b42b9b630e62edc7aae2d7131d Merge: 12de374 c065242 Date: Fri Sep 13 14:11:24 2019 -0700 Merge pull request #4133 from RosettaCommons/bcov/FixLKBallDiv0 Fixed a divide-by-zero bug in LK_Ball commit 12de374eaab52c7a4788eabbe883b742d1e937a5 Merge: f428f1b 86ecf8b Date: Thu Sep 12 15:43:55 2019 -0400 Merge pull request #4206 from RosettaCommons/BYachnin/mhc_epitope_scitest_readmefix Minor changes to README of mhc_epitope_energy scientific test. Thanks Brahm for making these! commit f428f1b5ca0ca54f41009f246c2dc419bf46580f Merge: 9d2563a 65fe9a4 Date: Thu Sep 12 15:20:54 2019 -0400 Merge pull request #4205 from RosettaCommons/rfalford12/sci-benchmark-revision Revisions to f19 scientific benchmarks Rebecca's addressed my requested revisions to the plots and readme's of some of the MP benchmarks commit 9d2563a9f074dc759d4ffa24bc9b430bae6cb0bb Merge: e1cd9f4 aeb1e71 Date: Tue Sep 10 14:15:42 2019 -0400 Merge pull request #4190 from RosettaCommons/vmullig/fix_intel_cray_build Fixing Cray/icc build. For some reason, an auto-generated operator= was tripping up the Intel/Cray build. Manually implementing this fixed the build. commit e1cd9f4a063d58c8e22187f97a292880c85665d5 Merge: 02c3c85 583d43c Date: Tue Sep 10 10:06:41 2019 +0200 Merge pull request #4196 from RosettaCommons/lqtza/various-sci-test-fixes Fixes ensuring antibody-associated scientific tests pass commit 02c3c852231bdf8a73986bd3aed6e12eb6584e98 Merge: 46df873 3dc7b53 Date: Mon Sep 9 09:51:31 2019 -0700 Merge pull request #4193 from RosettaCommons/guangfeng/galigdock_vs_merge Guangfeng/galigdock_vs_merge commit 46df873d8cd9d162e4d6a9fdcd83361527fbf152 Merge: 5e43d5b 27d78c5 Date: Sat Sep 7 11:26:09 2019 -0500 Merge pull request #4203 from RosettaCommons/roccomoretti/fix_integration_tests_valgrind_count Fix integration tests logfile issues (Valgrind) The Valgrind integration test has checks to make sure the number of expected logfiles match the number of observed logfiles. (To check that we aren't missing any Valgrind error output.) There are a number of integration tests which don't pass this check. This is mostly because of accidentally overwriting log files, or otherwise dumping/ignoring the output. This also includes some updates to the heuristics themselves, to better support some use cases (running programs from within a loop), as well as to permit the testing server to track the logfile failures on a subtest-by-subtest basis. commit 5e43d5bb192c2d80ac2f63513b422695e39abe27 Merge: 1a4cc71 83eefa0 Date: Sat Sep 7 08:42:06 2019 -0400 Merge pull request #4192 from RosettaCommons/JackMaguire/optE_fast_design sequel to #4184 This allows the user to pass a relax script via commandline to OptE commit 1a4cc71f63eedda50d52725b5e7d3cde6af3220c Merge: c5ce226 ae196dc Date: Fri Sep 6 12:57:07 2019 -0400 Merge pull request #4187 from RosettaCommons/JackMaguire/ResetReferences #4184 added the 'reset_reference' command to FastRelax's list of scripting commands. This PR ensures that the final round of reference weights match the "full" scorefunction that the user is trying to optimize. This is just a simple change to a few database files. Unit and integrations tests should be enough. commit c5ce2269a4789e965f3ace286acacdcf9569954b Merge: e392082 7daaaad Date: Thu Sep 5 20:57:03 2019 -0400 Merge pull request #3618 from RosettaCommons/vmullig/simple_cycpep_predict_sci_benchmark Add scientific tests for the simple_cycpep_predict application. It's an awful nice peptide structure prediction and design pipeline you've got there. Be a shame if something were to happen to it. Scientific tests make sure nothing happens to it. DONE: - [x] Add a peptide to test. - [x] Set up and test-run the test. - [x] Set suitable PNear cutoffs. - [x] Finish the description. - [x] Add extra option to docs for simple_cycpep_predict and for helical_bundle_predict. - [x] Note that pull request #4046 must be merged before this one. - [x] Pull request #3593 must be merged before this one. commit e3920821cd5a7fbec3eedbe9bcb41f351ad419f3 Merge: fb14b4b f50c828 Date: Thu Sep 5 15:19:42 2019 -0400 Merge pull request #4076 from RosettaCommons/everyday847/work_on_secstruct_finder_and_protein_erraser hotfix rna_design; other updates commit fb14b4ba111d12dc6a48ed8b7b51ba652b1efb28 Merge: 21343ac c6768c3 Date: Wed Sep 4 16:56:19 2019 -0400 Merge pull request #4202 from RosettaCommons/vmullig/add_symmetry_error_to_pruneburiedundats_taskop Add an error if someone tries to use the PruneBuriedUnsats task operation with a symmetric pose. This task operation currently does not support symmetry. commit 21343ac494f9dd67e84681d97547a22a5986fd6b Merge: b91fadf 7c87abe Date: Wed Sep 4 14:39:21 2019 -0400 Merge pull request #4165 from RosettaCommons/rfalford12/mini-fix-color-by-hyd Fixing a bug where the wrong hyd value is used in 'color-by-lipid-type' application commit b91fadfe54b42f1f28867a82e0eee1cd5a85c5f6 Merge: 827273b 4cab2ef Date: Wed Sep 4 08:30:38 2019 -0400 Merge pull request #4199 from RosettaCommons/JackMaguire/KillA2019IntTest Adding a new integration test for KillA2019 before I try to merge #4187 Thanks Vikram for the review! commit 827273b9298b034b945b85785a8599f429dabb25 Merge: 06747ab bf4139b Date: Tue Sep 3 15:09:35 2019 -0400 Merge pull request #4198 from RosettaCommons/vmullig/fix_helical_bundle_predict_output Add proper file output to non-MPI builds of helical_bundle_predict application. I forgot to write a proper file outputter for the helical_bundle_predict application in non-MPI mode. This should correct that, allowing Rosetta silent, PDB, CIF, or MMTF output. @cdbahl @everyday847 commit 06747ab19af36370e83dd6cc0d87b1e0763ca835 Merge: 3859807 1f47a0f Date: Tue Sep 3 14:25:21 2019 -0400 Merge pull request #4189 from RosettaCommons/everyday847/ui_hotfix Hotfix UI builds commit 38598073b153a823ed2e22d965437b52aa306c49 Merge: 7237e17 95ea497 Date: Tue Sep 3 13:10:41 2019 -0400 Merge pull request #4195 from RosettaCommons/vmullig/shush_helical_bundle_predict Prevent stochastic failures of the helical_bundle_predict integration test. Making the helical_bundle_predict test deterministic. Currently, it fails because different processes do different jobs. commit 7237e1729faa1b758d4bde291eefc2e5c8ce9cc7 Merge: c8e4076 d63aa91 Date: Mon Sep 2 01:32:23 2019 -0400 Merge pull request #4194 from RosettaCommons/hahnbeom/sfxntest_genpot_fix Fixing sfxn_fingerprint test for genpot_ncaa_hybrid commit c8e4076a15688a425601a41c7ec495e91a131a31 Merge: 680f2ab 5af33af Date: Sat Aug 31 08:31:50 2019 -0400 Merge pull request #4186 from RosettaCommons/JackMaguire/cleanup_FastRelax_apply Branching off of our discussion from #4184 FastRelax::apply is really long and messy so I'm just combing through and offloading conditional branches to their own methods. It's still pretty long but hopefully this makes it more readable Thanks to Vikram for the review! commit 680f2ab6b774f7c379633f177323150da674fc39 Merge: 0b67ec6 b546e3b Date: Fri Aug 30 12:07:09 2019 -0500 Merge pull request #4185 from RosettaCommons/roccomoretti/fix_enzdes_OVL2 Fix metapatch variant naming issues. The connect metapatches were confused about which variants they said they offered versus which ones they actually applied. Make sure that metapatches say they provide variants which are consistent with the in-code usage of the variants. Also fix up the issue where custom variant types aren't being properly added for metapatches. commit 0b67ec61699564035de0cde85e02559b21712899 Merge: 7d12688 2e6479d Date: Fri Aug 30 12:01:04 2019 -0500 Merge pull request #4188 from RosettaCommons/roccomoretti/fix_mmtf_failures Don't include versioning info in MMTF output for integration tests. PR #4066 added revision logging information to MMTF output which, while good, means that any integration test which has MMTF output has persistent changes. Suppress the inclusion of revision info if we're running under integration tests. commit 7d1268882a71357a770f97c8804c1d8ba23959ca Merge: b5ea6d6 c19f65f Date: Thu Aug 29 16:23:58 2019 -0500 Merge pull request #4173 from RosettaCommons/roccomoretti/fix_patch_dangling_conn_icoor Attempt to fix (some) issues with the dangling ICOOR connect. (Stopgap fix for issue #4153.) So Add something to SET_POLYMER_CONNECT patch operation to re-do the dangling connections based on ideal xyz geometry and other atoms in the residue type. To work best, this means that the SET_POLYMER_CONNECT should come after SET_ICOOR records in the patch file. This doesn't fix everything, and those patches with issues should probably still be fixed to give a proper ICOOR record. commit b5ea6d6d4c4e57283169565968a859ece083256a Merge: 7017cae 721eae4 Date: Thu Aug 29 15:22:21 2019 -0500 Merge pull request #4182 from RosettaCommons/roccomoretti/mmtf_integration_facilitate Add MMTF->JSON dumping facility to integration tests. If there's integration test changes to mmtf output, it's somewhat hard to debug. So - taking a cue from the SQLite tests - I'm adding a small utility script which can dump MMTF data into a JSON format. This requires the Python version of the MMTF reader to be installed to properly function, though there's a fall-back if it isn't. (We just don't dump the plaintext version.) commit 7017cae3a57e82d9b82ab0c6c5673f16378e3d1e Merge: ebee3a9 b660c22 Date: Wed Aug 28 22:40:29 2019 -0400 Merge pull request #4184 from RosettaCommons/JackMaguire/optE_fast_design Adding an option to run optE with FastDesign. Also adding a relaxscript command "reset_reference", which would be required for optE commit ebee3a9ac4bfcc07a1e146a48e709ca36adbda9a Merge: 1f82da1 0356d0f Date: Wed Aug 28 20:28:39 2019 -0400 Merge pull request #4183 from RosettaCommons/everyday847/update_VirtualRootMover Make VirtualRootMover FullModelInfo aware commit 1f82da148c7705f25995167208d872080aad6e81 Merge: 347fa30 98d8486 Date: Wed Aug 28 12:26:10 2019 -0700 Merge pull request #4167 from RosettaCommons/hahnbeom/genpot_ncaa_Apr2019 Extending genpot for peptides commit 347fa30dc7da81ef2cc8e5ba149850d459279734 Merge: 8df13b4 1a4dcab Date: Wed Aug 28 13:47:49 2019 -0400 Merge pull request #4095 from RosettaCommons/everyday847/segment_core3 Derived energy methods don't have to live in core.3 commit 8df13b42d067b8c9fca5636b792e67fb38fc11fd Merge: ef02c63 fa983e6 Date: Wed Aug 28 12:29:42 2019 -0400 Merge pull request #4175 from RosettaCommons/JWLabonte/sugars/database Carbohydrates: Adding patch for O6-acetylation modification for Pooja This merge will add a single patch file for acetylation of saccharide residues at the oxygen at position 6. All unit tests pass. carbohydrates integration test changes as expected. There is a known bug in regards to nomenclature that will be fixed in a later PR. It has no effect on results. commit ef02c639ad961543e4f7bee73796072cf620e58c Merge: e720988 3262fe9 Date: Tue Aug 27 18:33:38 2019 -0500 Merge pull request #4181 from RosettaCommons/roccomoretti/fix_ncbb Better error messages for non-canonical backbone types. With certain patches, it's assumed that residues come in pairs. If that isn't the case, one can get obtuse crashes (see, for example, https://www.rosettacommons.org/node/10602). Add better checking and error messages for these cases. commit e7209884267213089de8e6409f3e9554dfae0b3e Merge: 6ef1436 5587ed0 Date: Mon Aug 26 16:18:38 2019 -0700 Merge pull request #4179 from RosettaCommons/klimaj/init_distributed Adding a pyrosetta.distributed.init() function commit 6ef143648924b18aac756cf8684316885adef62e Date: Mon Aug 26 15:52:11 2019 -0500 Revert direct master push. commit 327760fec3aab49ca6fd2e50bcd532cfde5c36ca Date: Mon Aug 26 15:51:24 2019 -0500 Better error messages for non-canonical backbone types. With certain patches, it's assumed that residues come in pairs. If that isn't the case, one can get obtuse crashes. Add better checking and error messages for these cases. commit d4555eeac615c2c8010f76720ac490548e677bb2 Merge: 169f5fb e1b1e84 Date: Mon Aug 26 10:54:05 2019 -0700 Merge pull request #4177 from RosettaCommons/rdkibler/graft_switch_mover_fix Fixed small bug in graftswitchmover involving the wrong type for the burial_cutoff option (change Size to Real) commit 169f5fb70e690ee69574737602dd7f995a780d05 Merge: 011545c 2b49e16 Date: Mon Aug 26 11:40:25 2019 -0500 Merge pull request #4066 from RosettaCommons/jadolfbr/mmTF With Dan Farrell's gracious help, this PR allows extra data to be output and read back in for mmTF. For SimpleMetrics, this allows basic multi-run protocols to keep important data around (that could also be used for a subsequent jobs like filtering), and leads the way for a multistage implementation using mmTF. This PR includes a full round-trip unit test suite for the extra data. commit 011545c4e43f90b7b8a13173786a868c06647247 Merge: 010c62e 9b67042 Date: Sat Aug 24 14:43:22 2019 -0400 Merge pull request #4174 from RosettaCommons/everyday847/spring_cleaning Scientific test readme and bugfix update; IUPAC symbol respect in RNA design commit 010c62e53d1698138867069cdacd022403fb69e4 Merge: d6ec1a0 98528e0 Date: Sat Aug 24 11:18:29 2019 -0500 Merge pull request #4170 from RosettaCommons/roccomoretti/fix_broker_test Fix issue with silent file endianess flipping on Mac. The broker integration test was broken related to the fact that the input silent file was created on a big-endian system. Normally that should be fine, as the binary silent file reading code has checks to flip the endianness of the input when read on an alternate-endian system. However, it looks like those checks weren't working properly on the Mac/Clang test server system. Best I can tell, the Mac/Clang compiler isn't realizing that the bit twiddling we do to flip endianness will change the memory layout, and is effectively optimizing out the check. I'm not exactly sure why that is, but moving the code body from an inlined function to a cc function seems to fix the issue. commit d6ec1a00c4003460aa5c085f03210b3f8da36ae6 Merge: c28220b 94e97c4 Date: Sat Aug 24 03:18:45 2019 -0400 Merge pull request #4178 from RosettaCommons/vmullig/fix_minor_helical_bundle_predict_issues Fix minor issues with helical_bundle_predict application that were flagged by clang analysis Clang analysis complains if a variable is assigned a value on initialization if that value is never read. Personally, I think that this should be left to developer discretion. In performance-limiting contexts, this is a waste of a few clock cycles, it's true. In contexts that are _not_ performance-limiting, though, the slight inefficiency can be less important than the avoidance of uninitialized variable errors in the future, if someone adds a read of the variable in question between its declaration and the first assignment. Nevertheless, I'm taking out a couple of initializations that are never read, to keep the clang analysis test happy. (I'm also taking the opportunity to convert a few instances of `vect.push_back( MyClassOP( make_shared< MyClass >( ... ) ) )` into `vect.push_back( make_shared< MyClass >( ... ) )`. There's no need for the extra temporary `MyClassOP`, given that `make_shared` already returns a `MyClassOP`.) commit c28220b568966306ce96d912e4b2c9f16626419d Merge: 350c90e 1da519d Date: Fri Aug 23 16:03:43 2019 -0400 Merge pull request #4176 from RosettaCommons/sewing_scientific_benchmark_readme_update Updated readme of SEWING scientific benchmark test commit 350c90ea002146c35455d3b839fe022931628ad4 Merge: 77f5bcb 1d19f9b Date: Fri Aug 23 15:03:26 2019 -0400 Merge pull request #3593 from RosettaCommons/vmullig/bundle_struct_prediction Fragment-free structure prediction When designing proteins, we use _ab initio_ structure prediction as a final validation step. This is useful because it's a test with more false negatives than false positives: if we have 1000 designs, we might throw some away wrongly because Rosetta incorrectly predicts that they don't fold (or doesn't sample close to the designed state), but we tend not to accept a bad design wrongly. Rosetta's _ab initio_ algorithm is, however, dependent on fragments or proteins of known structure. We need an equivalent for heteropolymer design with noncanonical building blocks. When designing with noncanonicals, we can't use fragments: we don't have databases of folded noncanonical heteropolymers of known structure. We already have a solution for cyclic peptides (GeneralizedKIC / simple_cycpep_predict), but I want to be able to validate linear peptides, peptoids, _etc._ So I'm going to try to write a fragment-free structure predictor for linear structures. This is a first attempt at a helix-coil transition-based predictor. The idea is: - Sample random coil regions with a combination of the SmallMover and randomization biased by Ramachandran propensities. - Sample helical regions using parametric generators to alter helix curvature and curvature direction. - Allow nucleation, elongation (with possible merging of helices), and retraction/fraying moves with various probabilities to allow transitions from helix to coil and coil to helix. Allowed moves are shown here: ![samplingmoves](https://user-images.githubusercontent.com/4205776/47827196-b2b40880-dd52-11e8-899e-b30a77d17339.png) This doesn't have to be as good as fragment-based _ab initio_ (since some false negatives are okay, but false positives are not). Nevertheless, I'll try to optimize it first by getting it to predict proteins of known structure, then go on to try to validate my peptoid designs. Tasks: - [x] Add the app. - [x] Add the protocols-level implementation of the app. - [x] Have it do something. - [x] Integration test. - [x] Allow `in:file:fasta` or `sequence_file` for constructing the pose. - [x] Add a RandomizeBBByRamaPrePro mover -- we don't currently have this functionality. - [x] Unit test. - [x] Documentation. - [x] Add a simulated annealing temperature generator. - [x] Add a Monte Carlo move generator. - [x] Tie in to the parametric code to allow sampling helix curvature. - ~~Sensible FoldTree setup: if one or more fixed, folded protein domains are supplied on the command line, at least one should contain the root. (This should be applicable to the case of "enormous loop modeling problems", too: if you have a fixed hairpin with residues A:1-20 and A:481-500, you should be able to model the "middle bit" without either part of the "outside bit" moving.~~ --> For a future pull request. - ~~Generalize the bits that throw red warnings right now because they're hard-coded for proteins right now.~~ --> For a future pull request - [x] Add MPI support. - [x] Move most of the generic code from `SimpleCycpepPredictApplication_MPI` to a base class, and create subclass `HelicalBundlePredictApplication_MPI`. - [x] Check that I didn't break simple_cycpep_predict: **CREATE A SCIENTIFIC TEST FOR THIS BEFORE MERGING THIS PULL REQUEST**. - [x] Add multi-threading support. - [x] Benchmark on Blue Gene/Q. - [x] Tune the parameters for the temperature scheme and the rules for the Monte Carlo moves. - [x] Document the helix definitions file format. - [x] Documentation. --> Documentation is here: https://www.rosettacommons.org/docs/wiki/structure_prediction/helical-bundle-predict (or https://www.rosettacommons.org/docs/latest/structure_prediction/helical-bundle-predict). - [x] Beauty. - [x] Remove added line from VSCode configuration (defining `USEMPI` temporarily). @dougrenfrew @everyday847 @jameseastwood (Here's an early attempt at predicting the structure of one of @cdbahl's helical bundle mini-proteins:) ![attempt2](https://user-images.githubusercontent.com/4205776/47611648-e71c8180-da3f-11e8-8573-5578a6e744d7.gif) commit 77f5bcb4ff71bcffd4fb392931eacaa1de18b965 Merge: 767c1ea d88883f Date: Thu Aug 22 09:23:53 2019 -0400 Fix performance bug in the SmallMover (#4141) A large fraction of the SmallMover's running time was spent on creating a movemap so that it could look at one thing inside that move map, and then destroying the newly created movemap. Same thing in the ShearMover. Now, create the movemap once at the beginning of `setup_list` and use that movemap throughout its execution. Also, there's no need to call pose.energies().clear(); an @details has been adde to the Energies class to explain why the `clear` method would ever be necessary. Running time in a small-mover-only protocol drops 90%!