commit 808795efd9a378a1233cbf9ed9943049daa195ac Merge: 775ba71 c17cb49 Date: Thu May 23 10:26:15 2019 -0600 Merge pull request #3959 from RosettaCommons/sergey/binder Updating PyRosetta so it could be build with Python-3.7 on Mac commit 775ba71381a76771d7fe2734e2029348607891e3 Merge: d538b53 0c2f5af Date: Wed May 22 16:33:52 2019 -0600 Merge pull request #3970 from RosettaCommons/sergey/scientific Adding workaround for shebang line overflow. Minor fixes to scientific test template and already imlemented tests. commit d538b53cd960411c7b90aabe4eaa53fca8fd6c2f Merge: 3301854 9e00096 Date: Tue May 21 16:37:59 2019 -0400 Merge pull request #3969 from RosettaCommons/JWLabonte/PTMs/kinases2 Kinases: new kinase data This merge simply adds a single data file for a new kinase consensus sequence. All tests pass, except for the plethora of already-broken ones. commit 3301854f3b5524991b07e1cf8783857aa79d84b9 Merge: cb17a85 17cc780 Date: Tue May 21 10:40:01 2019 -0400 Merge pull request #3933 from RosettaCommons/JWLabonte/sugars/OGT Glycosylation: Adding EnzymaticMover for O-linked glycosylation This merge primarily adds an O-linking glycosyltransferase to the database for use with the `GlycosyltransferaseMover`. It also moves some testing apps to public, so that people can start using `EnzymaticMover`s more readily. It also allows an optional string `-` to be used to tell the `EnzymaticMover` system to modify at the default atom for a `ResidueType`. This is helpful for cases with ambiguous site modifications, such as either Ser or Thr, which each have a different name for their hydroxyl oxygen in their `.params` files. Finally, it fixes a bug in `GlycanTree`. Documentation for the two added apps is available on the documentation wiki. All unit tests pass. The two integration test changes are expected. commit cb17a85dd9b048bf486c657ba9ef02eec6ba769e Merge: 5f5eba0 72af47d Date: Sat May 18 08:07:35 2019 -0700 Merge pull request #3966 from RosettaCommons/smlewis/fix_NamedAtomPairConstraint_type overrides for some constraint classes. Fix NamedAtomPairConstraint's type() commit 5f5eba092eb978ce62ba80b58d7d04cf6a6f9727 Merge: 28fade4 701e947 Date: Wed May 15 16:01:08 2019 -0400 Merge pull request #3963 from RosettaCommons/JWLabonte/PTMs/kinases Kinases: Update GSK3B consensus sequence This merge simply updates a single consensus sequence used by the `EnzymeManager`. Database change only. commit 28fade44b2a1762ab56f3f5fcbb2432df90f54af Merge: 02291a3 0d17f2d Date: Tue May 14 11:52:52 2019 -0400 Merge pull request #3960 from RosettaCommons/rfalford12/fix-franklin2019-fprint-test Adding a flag to mute the franklin2019 integration test sha1 and date from output commit 02291a394cfd7c2e01e66c577db18b972ac8f068 Merge: 5adc612f 4ad12c9 Date: Fri May 10 15:53:40 2019 -0600 Merge pull request #3958 from RosettaCommons/sergey/binder updating version of Python-3.7 source file commit 5adc612fd9dee20f808a07e761610d95698b0f35 Merge: d41da48 8be19be Date: Fri May 10 09:04:00 2019 -0400 Merge pull request #3928 from RosettaCommons/lqtza/antibody_grafting_scientific_test Introduce scientific test for antibody grafting commit d41da48b4497daa40112db700a58b30159278fce Merge: 8b7ef15 dddff58 Date: Thu May 9 16:20:38 2019 -0500 Merge pull request #3955 from RosettaCommons/roccomoretti/fix_unit_timing Update timeout for certain unit tests 'on the edge'. There's certain unit tests which are just on the edge of their timeouts. Most of the time they're fine, but if the test server has a slow down, they fail. From the test history on the server, update those tests which have had such issues in the past. commit 8b7ef155363009ec0a01d65cfb1e4e182b06f06e Merge: 33e358d 43f2c3c Date: Thu May 9 13:14:57 2019 -0500 Merge pull request #3952 from RosettaCommons/roccomoretti/fix_stderr_redirect Fix stderr redirect issues. The order in which you put the "2>&1" stderr redirection matters. The shell parses output redirection from left to right, and the "2>&1" tells the shell to redirect stderr ("2") to the current location of stdout ("1"), not to make them match in perpetuity. So if you redirect output to a file, you need `> logfile 2>&1`, not `2>&1 > logfile`. As such, fix a number of locations (primarily in testing) which were putting things the wrong way around. commit 33e358d32e268bf5dcb6476bd4698a3b6886e6ee Merge: 6277228 f4cbf4b Date: Thu May 9 13:30:25 2019 -0400 Merge pull request #3953 from RosettaCommons/vmullig/bin_analysis_in_cluster_app Add bin string analysis to energy_based_clustering application This allows the number of unique ABOXYZ bin strings (with or without cyclic permutation, depending on whether cyclic permutations during clustering are allowed) to be counted. Completed tasks: - Add flag for this analysis. - Checks that this is only being applied to alpha-amino acids or to peptoids. - Add functions for computing bin strings. - Add counters for unique bin strings. - Add output: - Bin strings for every structure. - Bin strings for every cluster center. - Summary of number of unique bin strings (for structures and for cluster centers). - Summary of number of unique bin strings if strings and their mirror images are considered to be equivalent (for structures and for cluster centers). - Unit tests. - Beauty. - Documentation -- added to this page: https://www.rosettacommons.org/docs/latest/application_documentation/analysis/energy_based_clustering_application (though it may take a day or so to show up). - Integration test. commit 62772282c971ed9d858cd3f999b084afa1ad72cf Merge: d73d4f6 6d2cf30 Date: Thu May 9 10:27:02 2019 -0400 Merge pull request #3367 from RosettaCommons/rfalford12/implicit_lipid_membrane Implicit Lipid Membrane Energy Function A new all-atom, physics-based energy function for membrane protein modeling and design. The energy function captures the anisotropic structure and dimensions of phospholipid bilayers through parameterization from biophysical data and multi-scale computational modeling. We use an implicit representation inspired by the original Lazaridis Implicit Membrane Model. The key improvements are (1) polarity gradients derived from thermodynamically-rigorous transfer energy measurements, (2) membrane thickness parameters derived for different lipid compositions and (3) a continuous, differentiable aqueous pore/channel representation. All of this work is documented in: Alford RF, Fleming PJ, Fleming KG, Gray JJ (2019) "Protein structure prediction and design in a biologically-realistic implicit membrane" bioRxiv Link: https://www.biorxiv.org/content/10.1101/630715v1 The energy function is called `franklin2019`, named after Rosalind Franklin to honor the achievements of women in science. The energy function will be the **default** for applications using the RosettaMPFramework. To revert to the previous behavior, use the flag `-restore_imm_lazaridis_behavior` Below is a summary of the code captured by this branch: ## Additions & Changes to the source code #### Database _Deleted_ - membrane.mp - embeddings.mp _Added_ - `database/membrane/implicit_lipid_parameters.txt`: Parameters describing different membrane lipid compositions derived from a combination of all-atom molecular dynamics simulations and X-Ray/Neutron scattering measurements of planar phospholipid bilayers - `database/membrane/memb_fa_params_2019.txt`: Per-atom water-to-lipid transfer energies derived from Moon & Fleming, 2011 #### Applications _Added_ - `apps/pilot/ralford/mp_seqrecov.cc`: Calculates sequence recovery statistics dependent on the fractional hydration of side chains relative to the membrane environment. In addition to total, buried, and exposed sequence recovery, we also compute statistics for lipid-facing, aqueous-facing, and interfacial side chains. - `apps/pilot/ralford/color_by_lipid_type`: Fills the b-factor column with xyz-dependent fractional hydration values. Can be used to visualize the hydration in PyMOL _Made compatible with the membrane framework_ - `apps/pilot/frank/min_test.cc` - `apps/public/design/fixbb.cc` - `apps/public/backrub.cc` _Removed redundant mpframework calls_ - `apps/public/membrane/mp_lipid_acc.cc` #### Objects - `numeric/linear_algebra/EllipseParameters.*`: A class defining the shape of a two-dimensional rotated ellipse - `core/conformation/membrane/AqueousPoreParameters.*`: A class defining the shape of an aqueous pore which varies in the x-, y-, and z-dimensions - `core/conformation/membrane/ImplicitLipidInfo.*`: A class to define the physical and chemical properties of the implicit membrane environment. Currently, it is mainly used by the energy function and stores (1) parameters of the hydration function (.e.g thickness, rate of transition, pore size), (2) lipid composition details, (3) hydration function smoothing parameters, and (4) structure-based lipid accessibility information - `protocols/membrane/scoring/MEnvAtomParams.*`: A container class for atomic water-to-bilayer transfer energy parameters #### Algorithms - `numeric/linear_algebra/minimum_bounding_ellipse`: An implementation of the Khachiyan minimum-bounding ellipse algorithm #### Movers - `AqueousPoreFinder`: Calculates the parameters of an elliptical aqueous pore with varying cross section - `MembraneEnergyLandscapeSampler`: Map the energies to all possible orientations of single transmembrane peptides as a function of tilt angle and depth relative to the membrane normal and center. - `PeptideOrientationMover`: Calculate the energy of a peptide at a specific tilt angle and depth #### Energy Terms - `fa_water_to_bilayer`: Calculates the water-to-bilayer transfer energy of an atomic group given its identity and fractional hydration. This energy term is defined within `FaWaterToBilayerEnergy` in `protocols/membrane/scoring` #### Adjustments to the RosettaMP Framework - `MembraneInfo` now stores an ImplicitLipidInfo object - The hydrogen bonding energy correction is no longer the default, since it is not currently used by franklin2019. The user must pass the flag `-mp:scoring:hbond`. This has been adjusted in the older MP Framework integration tests. - `AddMembraneMover` includes three new steps in the default setup: (1) initialize per-atom lipid accessibility data (2) initialize lipid-specific parameters, and (3) initialize the dimensions of the aqueous pore by default. The prior behavior can be obtained by passing the flag `-restore_imm_lazaridis_behavior` - `MPLipidAccessibility`: Adjusted to store data so it can be passed to other classes. Also added an additional critera for being an alpha_helical memrbane protein, and updated the thickness to use ImplicitLipidInfo where appropriate - Updated the sub-class `SymmetricAddMembraneMover` so it still adheres to the class definition #### Options - `-restore_lazaridis_imm_behavior`: Restore default membrane energy function behavior to Lazaridis IMM1 - `-mp:lipids:composition`: Type of lipids to use in implicit model representation, default is DLPC - `-mp:lipids:temperature`: Temperature at which the lipid composition parameters were measured, default = 37.0 - `-mp:lipids:has_pore`: Manual override to not use pore estimation ## Additions & Changes to the tests #### Unit Tests _Added_ - test/core/conformation/membrane/ImplicitLipidInfo.cxxtest.hh - numeric/linear_algebra/minimum_bounding_ellipse.cxxtest.hh _Extended_ - protocols/membrane/AddMembraneMover.cxxtest.hh - protocols/membrane/AqueousPoreFinderTest.cxxtest.hh - protocols/membrane/MPLipidAccessibility.cxxtest.hh - test/protocols/membrane/MembraneUtil.cxxtest.hh #### Integration tests _Added_ - mpil_load_implicit_lipids - mpil_find_pore_ahelical - mpil_find_pore_bbarrel _Adjusted for compatibility_ - homodimer_fnd_ref2015_memb - mp_dock - mp_dock_prepack - mp_dock_setup - mp_domain_assembly - mp_domain_assembly_FtsQ - mp_find_interface - mp_interface_statistics - mp_mutate_relax - mp_mutate_repack - mp_quick_relax_ref2015_memb - mp_range_relax - mp_relax - mp_span_ang_ref2016_memb - mp_symdock - mp_transform_optimize - mp_vis_emb - res_lipo_ref2015_memb #### Score Function Fingerprint Tests _Added_ - franklin2019 _Adjusted for compatibility_ - membrane_fa_pH - membrane_fa_scorefxn - menv_smooth_sfxn - ref2015_memb - ref2015_on_memb commit d73d4f6c6c7f5f09bf3408669bdc2b283f3007dd Merge: bf3ab89 46c8606 Date: Wed May 8 08:44:05 2019 -0400 JD3 Checkpointing (#3939) Checkpoint progress in JD3 when using MPI. Currently works for multistage_rosetta_scripts. Checkpointing is a technique where the state of the system at a particular point in time is saved in a stable way (e.g. on disk) so that if the job dies or is killed, then the work up until the point of the checkpointing is not lost. Checkpointing in JD3 is managed by the JobDistributor. The other classes involved in the checkpointing (including the JobQueen) do not need to think about how checkpointing will work, but merely how to serialize and deserialize their data. (There is a notable exception here, discussed below). The user will tell the job distributor to checkpoint every certain number of minutes (flag `-jd3::checkpoint_period `), e.g. 30 minutes, and the job distributor on node 0 will look at the (wall) clock each time it can* and when 30 minutes have passed since the last checkpoint was made, it will ask the job distributors on the archive nodes (if any) to begin checkpointing, and it will serialize its data to disk. If the job should be killed before it completes, then the user can restart the job (taking care to use the same command-line flags as before) with the additional flag `-jd3::restore_from_checkpoint`. The JobDistributor on node 0 will deserialize the data in the checkpoint file and then resume execution of the jobs from that point where the checkpoint was taken. Some work would have been lost: the work that took place between the last checkpoint and the time the job died. (* The JobDistributor on node 0 spends most of its time in a while loop where it waits to hear from other MPI processes and then responds to their request. At the top of this while loop is a "receive mpi integer message from anyone" call which blocks until some node sends node 0 an integer. The JobDistributor on node 0 might wait inside this blocking receive call beyond the moment when the wall clock would say that a new checkpoint is due. The JobDistributor has to wait until someone sends it a message, then the JobDistributor will process that message. After it has processed the message, but before it re-invokes the blocking receive request, it will look at the clock and checkpoint if necessary. For this reason, the JobDistributor will not checkpoint at the exact moment it becomes possible to checkpoint. If you have a job that will be killed at exactly 1 hour, e.g., then you should not set the checkpoint interval to 59 minutes: the JobDistributor might not ever checkpoint before the job is killed.) Not all MPI Nodes serialize their data: only the master node and the archive nodes. The worker nodes do not need to store their data: they are presumed to have no significant state. One advantage of this system is that you can restore from a checkpoint with a different number of worker nodes. (You need to have the same number of archive nodes as the original job). The only JobQueen to be checkpointed is the JobQueen on the master node, (node 0, thus, we call this JobQueen JQ0). The job distributor makes this pledge: if the JobQueen delivered messages to the JobDistributor, then the JobDistributor is responsible for ensuring those messages are acted on. If the JobQueen delivers a LarvalJob to the JobDistributor, then the JobDistributor ensures those LarvalJobs get run. If the JobQueen delivers a JobOutputSpecification to the JobDistributor, the JobDistributor ensures that those outputs get written. The JobDistributor does not guarantee, however, that the JobQueen's discard messages are delivered. The idea is this: the discard messages are to remove lazily-loaded data from memory after that data are no longer needed. If the original process has died and the process re-launched, then the lazily-loaded data will not be in memory when the job starts again. Remember, the JQs on the worker nodes are not checkpointed. The exception to the idea that the JobQueen does not need to think about how checkpointing should work is that if she has any data that cannot / should not be serialized, then the JobQueen should gracefully handle events where that data is surprisingly absent. E.g., let's say the JobQueen has a pointer to a big blob of data, BBOD_OP. If the JQ doesn't serialize that data, then during the restore-from-checkpoint process, that BBOD_OP will not get set. In that case, the JobQueen should make sure to load that data before trying to use it. In this way, the JQ should be minimally aware of how checkpointing might work. What are examples of this kind of data? If the JobQueen holds a RosettaScriptsParserOP, e.g., that class is currently not serializable. (Let's assume that it could not be serializable, even if that might not be true of this class). In this case, the RosettaScriptsParser serves the purpose of storing the libxml2 objects defining the schema so that it does not need to be regenerated repeatedly (since this step can take ~10 seconds). One option for the `save`/`load` methods of the JobQueen would be to 1. not archive the RosettaScriptsParser in its `save` method, and 2. to create a new (empty) RosettaScriptsParser in its `load` method. This would guarantee that the RSPOP was never null. Alternatively, step 1 could remain the same, but for step 2, the JQ could set its RSPOP to null. Then the code that intends to use the RSPOP would have to surround its usage with an `if (rspop_ == nullptr ) { rspop_ = make_shared< RSP >(); }`. Probably the first option is better! Some points about restoring from a checkpoint * The number of archive nodes must be the same, but the total number of nodes can be different * It is possible to enable `-jd3::archive_on_disk` in the restored job even if that flag was not present on the command line for the first job (which might be useful if your job died the first time because it ran out of memory on the archive nodes!) * If you are writing pdbs to output silent files, then jobs that were output after the checkpoint was created might be written a second time to the same or different silent file when restoring from that checkpoint. * You cannot add a new option to Rosetta, recompile, and then try to restore a job from a previously generated checkpoint. This is due to the way the OptionCollection is created: each OptionKey is assigned an integer from a static counter at program load. If the integer assigned to a particular option key is different when trying to restore from a checkpoint, the OptionCollection will misbehave. (I can imagine a scenario in which an OptionCollection serializes itself as a string resembling the command-line that would generate the state of that OptionCollection and then deserialize itself by re-interpretting that string: this would fix this limitation. Studying the OptionCollection more closely just now, however, makes my imagination seem unrealistic. The OptionCollection and the OptionKey system is configured in a way so as to make a option-key-name-string-based serialization strategy impossible.). commit bf3ab89e25e2e732fcdd650ec92326e463c1fec4 Merge: d676716 0955d9a Date: Tue May 7 19:08:58 2019 -0700 Merge pull request #3948 from RosettaCommons/everyday847/new_rnadenovo_defaults Implement FARFAR2 defaults commit d676716e61d939fad3d6dc6edd6f8a3fc2e91e7c Merge: 76376fe 90fb06d Date: Tue May 7 09:35:12 2019 -0500 Merge pull request #3949 from RosettaCommons/roccomoretti/shorten_sewing_runs Shorten legacy sewing runs. A quick & dirty profile of the sewing integration tests indicates that a substantial amount of time is being spent in Model::model_end() calculations in the Hasher::transform_model() function. This is likely superflous recalculation, as it's only being used as a loop end condition. Fix the code to only calculate the end iterator once. It doesn't solve the integration test timeout issues, but it should reduce the runtime somewhat. commit 76376fe0d893974487d38754698ff72de59a747d Merge: 021d76c 6fc1aee Date: Mon May 6 16:49:48 2019 -0700 Merge pull request #3942 from RosettaCommons/bcov/SilentFilePDBInfoLabel PDBInfoLabels in silent files commit 021d76c14db5bf524f9fd2dffa6afc7033acce92 Merge: 9724904 87a1854 Date: Fri May 3 11:38:48 2019 -0400 Merge pull request #3945 from RosettaCommons/JackMaguire/FlatSetsAreNotSorted Small MC HBNet touch-ups - Addressing a flaw that @Haddox found in MC HBNet's saturation estimator for Nitrogen atoms. - see HBNet.cc line 4169 - Adding sanity checks in debug mode - see HBNet.cc line 3800 - Removing a small amount of redundant work in an inner loop - see HBNet.cc line 4001 All of the test failures seem to be timeouts. I don't think any are tied to this PR but I am willing to take a closer look if you think one is fishy. commit 9724904b947ec83ce86d7d168f1f28552e910c02 Merge: afa5e70 0d7f1e7 Date: Thu May 2 22:50:41 2019 -0600 Merge pull request #3944 from RosettaCommons/benchmark Adding util.apps test which will generate list of public/pilot apps for RosettaCloud UI commit afa5e7070602177fda1ffba62d1bcd4252285690 Merge: 51be6e3 010000f Date: Thu May 2 16:30:01 2019 -0700 Merge pull request #3935 from RosettaCommons/bcov/Jd2CurrentInputName Set current_input_name and current_output_name in jd2 parser commit 51be6e3f30dc5aac2153ac70743063b4ccdf5183 Merge: cd1195a b6eabad Date: Thu May 2 10:03:47 2019 -0700 Merge pull request #3941 from RosettaCommons/basantab/non_local_atom_contacts Adding new functionality to AtomicContactCount filter commit cd1195ab01f397ddbbf5d54ab15ec98e99f8b4b8 Merge: 7a92eb4 38b53b6 Date: Tue Apr 30 08:02:56 2019 -0400 Merge pull request #3923 from RosettaCommons/JackMaguire/FinallyFixAddsan Fixing Multistage Rosetta Scripts' failed addsan test. Thanks to @roccomoretti for the review! commit 7a92eb4fba1207a9ed382f38055953bd538640af Merge: f46cd15 b0561d4 Date: Mon Apr 29 11:54:19 2019 -0400 Merge pull request #3940 from RosettaCommons/everyday847/save_file_systems_from_me Update RNA_PartitionEnergy.cc commit f46cd154940cbf78efc32fb316f56f9cf7c99a30 Merge: 4933317 90fd6d9 Date: Sat Apr 27 15:45:49 2019 -0400 Merge pull request #3839 from RosettaCommons/lqtza/scs_blast_updates_for_auto_db Enable use of new antibody database (lives in additional_protocol_data). commit 49333172bb4614ce8226cce4e573ed7b0b4a79d0 Merge: 74cba0b bfdf077 Date: Fri Apr 26 17:45:18 2019 -0400 Merge pull request #3938 from RosettaCommons/vmullig/no_thread_local Replace an instance of thread_local with THREAD_LOCAL. The thread_local keyword is not supported by all compilers. We use a custom THREAD_LOCAL macro which is defined as thread_local in those compilation environments that support the keyword, and as nothing in those that do not. commit 74cba0b67deb889d2ae4e4cf519fba9ae9210cee Merge: c94678f fdf0e90 Date: Thu Apr 25 09:05:03 2019 -0700 Merge pull request #3934 from RosettaCommons/tjbrunette/mac_clang_junc_filter_fix fixes issue with mac clang test that wasn't tested by the standard tests commit c94678f4f166dadd6c1b695f12c401914abd7a3e Merge: fd683c3 9929b82 Date: Wed Apr 24 17:31:17 2019 -0600 Merge pull request #3931 from RosettaCommons/sergey/binder updating Binder submodule to latest Binder master commit fd683c3e83884a0c6115667d46783dd1aeed9323 Merge: 5dbd2f4 3b0ba30 Date: Wed Apr 24 13:49:29 2019 -0700 Merge pull request #3932 from RosettaCommons/tjbrunette/revert_junc_filter_revert_v2 Tjbrunette/revert junc filter re-reverts code that was previously committed a week ago. I fixed the RNA_design app that was commented out. I should have caught this during the first commit. commit 5dbd2f48f1740d0db28eac50a892921af6196174 Merge: 0832da0 d02372a Date: Wed Apr 24 11:56:09 2019 -0400 Merge pull request #3874 from RosettaCommons/JWLabonte/kinases/GSK3B Kinases: adding 1st example of a phosphorylating EnzymaticMover This merge adds a new EnzymaticMover to Rosetta to simulate phosphorylation of Poses. Theses changes also take better advantage of inheritance to simplify code further and set-up the EnzymaticMover framework to use the command-line options system and RosettaScripts. Full documentation of EnzymaticMovers is now posted here: https://www.rosettacommons.org/docs/wiki/rosetta_basics/structural_concepts/EnzymaticMover All unit tests pass. glycosylation integration test changes are expected. commit 0832da05091de231373d6b4479beb03e552315fb Merge: 2cb3f3a 3ae70d5 Date: Tue Apr 23 16:58:02 2019 -0500 Merge pull request #3914 from RosettaCommons/jadolfbr/rs_output_fix Enable a change to only have the ParsedProtocol mover of RosettaScripts rescore the pose at the end of a protocol only if the output tag instead of obliterating the energies entirely by default. After much discussion, the pose is only rescored if you tell it to. commit 2cb3f3aa09ca87198b19ae1feec77eeb30190a4b Merge: 39a6c32 8d6a378 Date: Tue Apr 23 15:41:16 2019 -0500 Merge pull request #3913 from RosettaCommons/jadolfbr/glycan_no_inner This merge holds a few changes and bug fixes for glycan modeling, antibody work, and simple metrics. Nothing too major. 1) Remove `AntibodyDesignProtocol`; make AntibodyDesignMover's parser interface more feature-complete with the command line. This simplifies the antibody design code into a single main mover, instead of two of them. Features from the protocol that were useful are added to the mover. Support for `get_additional_output` functionality is added. Removed some unused options. 2) Remove inner bb sampling from glycan modeling. This resulted in better energies, but reduced control of sampling time. Removing it. 3) Adding author tags to my parsable classes as we are moving towards full XSD documentation of most classes. 4) Make the `TotalEnergyMetric` work for different size reference poses as was originally intended. 5) Make a few carbohydrate tools into public apps as they are tested and now have public-facing documentation. 6) Simplify/Clean up Mover interface. No code changes, only the presentation and organization of Mover.hh as it was a mess. I can now read it. We really should remove the JD1 stuff from the base-class at some point. Perhaps through integrated DataMap functionality in the Mover base class? 7) Add better documentation for reference_pose XSD, instructing the user that this is created via a `SavePoseMover`. 8) Fix `RestrictToCDRsAndNeighbors` task op for camelid antibodies. Add unit tests for this and other antibody task ops for camelid antibodies. commit 39a6c320681c5347a88dc31316cab45b4c4d965f Merge: 0d2afa55 ed0a76a Date: Tue Apr 23 11:12:16 2019 -0400 Merge pull request #3925 from RosettaCommons/BYachnin/fix_buns_reporter_handling The documentation and code comments for the BuriedUnsatisfiedHBonds filter loudly state that if no reporter behaviours are selected, `report_all_heavy_atom_unsats` will be set to true by default. If we actually run it this way, though, it returns 911. I've changed the default behaviour in parse_my_tag, and also in the compute function, as a fallback for PyRosetta/C++, to act as though `report_all_heavy_atom_unsats` is set to true. The ppi_v3_suiteA tests will fail. These tests were using the BUnS filter using the default settings, and getting the "911" result for the error case of now reporters being set to true. This is now corrected, with a reasonable value being output as the BUnS result. Other test failures appear to be timeouts or unstable. commit 0d2afa55e6960caed9229bec58f3bc000f604a0b Merge: 208244f cb290a9 Date: Fri Apr 19 09:49:49 2019 -0700 Merge pull request #3924 from RosettaCommons/tjbrunette/junc_filter fix issue with rna_design uncommented. This code makes hbnet compatible with silent files. Thus the integration test change for hbnet. Also, this includes bug fixes for loop closure, and structProfile. commit 208244f3788c4f3c8cf8228cd01462b14d106d59 Merge: fae3354 0fdccb9 Date: Wed Apr 17 16:51:21 2019 -0400 Merge pull request #3902 from RosettaCommons/yingyue0414-patch-1 Carbohydrates: Adding all base aldopentopyranoses to database commit fae3354071a5097253c7fb8c72f64c30562bff29 Merge: 7c2ffde 674dc60 Date: Tue Apr 16 12:20:51 2019 -0700 Merge pull request #3920 from RosettaCommons/danpf/fix_sigmoidfwd Fix improper sigmoid function fwd file commit 7c2ffde2264607e3fe5ac9d6b5ad11b925b558f7 Merge: 6ff2da7 3c9de9f Date: Tue Apr 16 13:20:20 2019 -0400 Merge pull request #3921 from RosettaCommons/jkleman/SciBen_green4debug making sure debug versions pass, also in template commit 6ff2da754c54c1620c86824460af173961cb80fe Merge: 0abba38 17e21f3 Date: Sun Apr 14 08:35:51 2019 -0400 Merge pull request #3918 from RosettaCommons/lqtza/fix-some-plot-lhoc-assumptions minor fixes in LHOC plotting script commit 0abba38eaedc7d478270d9d41fdb69f44ad51a1e Merge: b30ab1b 5ddf47b Date: Sat Apr 13 08:32:53 2019 +0200 Merge pull request #3901 from RosettaCommons/jaumebonet/SSSE fixing SetSecStructEnergies parse_my_tag adding verbosity to NubInitioMover commit b30ab1b187951c48d39f006af8bf3a76d4b33220 Date: Thu Apr 11 21:59:56 2019 -0400 beautifying commit 3acf451a7646f7f51ca4f1be2f1fca5d6c462b45 Merge: d5377ee c4c2e1c Date: Thu Apr 11 15:06:29 2019 -0600 Merge pull request #3466 from RosettaCommons/sergey/scientific adding support for `debug` scientific tests commit d5377ee7951214865f9f1c834186e5a5c87d111b Merge: 7470db6 d58d247 Date: Thu Apr 11 14:03:29 2019 -0400 Merge pull request #3916 from RosettaCommons/vmullig/add_pack_tests_for_current_default_sfxn Add packing performance tests for the current default scorefunction. Currently, we have no way of knowing if changes to the current scorefunction hurt packing speed. commit 7470db6228781f59a93e65de4e1aa83cd4f98573 Merge: 6f89579 579cb6f Date: Wed Apr 10 13:18:57 2019 -0400 Merge pull request #3915 from RosettaCommons/jkleman/SciBen_lipid_acc mp_lipid_acc: setting default to failure if no output generated commit 6f895797231afabda06e80759f5b8653472d32ad Merge: ba273e3 5d6bb8a Date: Wed Apr 10 10:25:53 2019 -0500 Merge pull request #3908 from RosettaCommons/remotes/origin/shannontsmith/backrub_fix fix typo in "perserve_detailed_balance" to "preserve_detailed_balanceā€¦ commit ba273e391c38e606cf3d4d9cc9f3da654b069f2a Merge: 45d684c a2cae48 Date: Wed Apr 10 01:35:55 2019 -0400 Merge pull request #3911 from RosettaCommons/vmullig/no_strings_in_tight_inner_loops Remove a string-string comparison in a tight inner loop in the packer. commit 45d684cd82af6bf22c006738e29b46d019a71e81 Merge: 0121fdd 24bb35b Date: Tue Apr 9 13:45:10 2019 -0400 Merge pull request #3909 from RosettaCommons/vmullig/fix_pose_copy_error Fix a really stupid mistake that I introduced in packer cleanup with nondecomposible scoreterms. A cleanup function was receiving a copy of a pose instead of an instance of the pose to clean up. So it would nicely clean up the copy, then promptly delete it. commit 0121fdd68af9d279cac60e4f7d3eee1b16e368a8 Merge: 94033fd 20b2512 Date: Tue Apr 9 09:42:35 2019 -0700 Merge pull request #3906 from RosettaCommons/rhiju/build_a_fold hotfix to allow loop_close (6D) to be used along with -virtual_anchor_docking in rna_denovo + integration tests that change are expected (Due to update of RNA secondary structure) or timeout. + one set of unit tests (linux.clang.unit CyclicGeometry...) failed due to timeout on test server; presumably will be rescued upon merge to master as other unit test implementations like linux.gcc.unit worked fine. commit 94033fd487b55dbbb095d554ff4ccb51d3e23b53 Merge: dfe4ffc 089bfd8 Date: Sat Apr 6 21:56:29 2019 -0400 Merge pull request #3880 from RosettaCommons/vmullig/tensorflow_link Add ability to link Tensorflow's C libraries, to allow evaluation of feedforward neural networks on CPU or GPU Note that this is _not_ related to (or intended to compete with) the work being done to evaluate the Rosetta scoring function on the GPU using Torch. This is intended to allow evaluation within Rosetta of Tensorflow neural networks that were previously trained outside of Rosetta, for machine learning-related applications. Tasks: - [x] Add headers for C api, - [x] Add linker command for linking the prebuilt CPU or GPU Tensorflow binaries. - [x] Ensure that `extras=tensorflow` defines `USE_TENSORFLOW`. - ~~It might be good to _also_ have `extras=tensorflow` define `TENSORFLOW_CPU`, and `extras=tensorflow_gpu` define `TENSORFLOW_GPU`. I can conceive of situations in which a Rosetta developer might want to bundle work differently if it's going to be evaluated on a CPU _vs._ on a GPU.~~ --> There's not actually a good way to know which TensorFlow library is being linked. It just depends on the `LD_LIBRARY_PATH` environment variable. The API is the same for both versions. - [x] Add basic pilot app to test successful linking. - [x] Add pilot apps to test functionality. - [x] Integration test. - [x] Add tensorflow integration test flavour. - [x] Add build test for `extras=tensorflow`. (Note that `extras=tensorflow_gpu` will not be tested until we get GPU nodes on the test server.) - [x] refactoring `integration.py` and deprecate `--mpi-tests` in favor of more general `--suffix` option - [x] Switch pilot app output to use tracer. Down the road we'll add a good Rosetta-side interface for Tensorflow calculations, but first we want to do some experiments and see what works and what doesn't. So for now, our pilot apps will be making Tensorflow function calls directly. @lyskov @JackMaguire Note: I confirmed with Dennis Hanson at UW Comotion that this is kosher, given the Rosetta and Tensorflow licences.