commit 7984dbe8f2d8944cc7af321c625dd9f256ab1598 Merge: 9b9aec9 c0b4534 Date: Sat Dec 30 15:38:20 2017 -0600 Merge pull request #2815 from RosettaCommons/roccomoretti/PDB_components_reloading Fix issue with re-reading of entries from PDB components. There's apparently multiple definitions of 'base name' -- select whichever ones work. commit 9b9aec98288b2a45901dafc58bcbdec5d8d41178 Merge: 5385b4d 2f9acde Date: Thu Dec 28 13:29:25 2017 -0800 Merge pull request #2832 from RosettaCommons/vmullig/beautify_carbohydrates_util Beautifying unbeautified file in master. commit 5385b4d95ff17bd55e06dc3610abf82cf327b27f Merge: 7ce3600 c2d83cd Date: Thu Dec 28 13:02:56 2017 -0600 Merge pull request #2824 from RosettaCommons/jadolfbr/glycosylation_pdbinfo Keep input PDB numbering post-glycosylation This PR finally fixes pose glycosylation to keep the input PDBInfo in tact and create sensible PDBInfo records for the new glycan. The new glycan is now part of the Protein chain it was added to. The resulting Pose has the same numbering as before. This will streamline the use of the `SimpleGlycosylateMover` and glycosylation code for structure solutions, especially for EM density. This is on by default, but can be turned off. All integration tests that glycosylate and output PDBs will change. commit 7ce3600945394f54d3c50d5b12d91dde35bfa0b1 Merge: 82d0697 38c4935 Date: Thu Dec 28 00:31:01 2017 -0800 Merge pull request #2755 from RosettaCommons/vmullig/voids_penalty Add a guidance function to promote voids-free packing Natural proteins have few to no voids in their cores. The packer, however, often produces solutions with voids. I think that there are often situations in which a better solution exists, albeit one that requires a little bit of minimization to relieve minor clashes (which is why the packer avoids these solutions). Our usual solution is to produce a _lot_ of designs and to filter based on holes, throwing away most of the designs due to buried voids. This, of course, is inefficient. To try to coax the packer towards better-packed solutions, I'm adding a design-centric score term to penalize deviation from solutions in which the total buried rotamer volume differs significantly from the total volume that one is trying to fill. I think I have a way to do this that moves most of the cost to a precomputation, so that the cost during the simulated annealing search is negligible, but I want to try this out to be sure. Merge approved by TJ Brunette. @asford Tasks: - [x] Add `VoidsPenaltyEnergy` (copy from `NetChargeEnergy`). - [x] Register energy appropriately. - [x] Write precomputation: - [x] Class for voxel grid. - [x] Set up voxel grid. - [x] Identify buried voxels (using sidechain cones method). - Note that this is a good task for a GPU... Hmm... - ~~Figure out how to make this faster. (Can probably do a low-res pass first to figure out the relevant cones for each group of voxels).~~ --> Doesn't need to be faster. This isn't rate-limiting. - [x] Set up rotamers. For each rotamer, compute volume lying in buried volume (by counting buried voxels that the rotamer overlaps). - Also a good task for a GPU. Hmm... - I'll do this in a SLIGHTLY imprecise way: - For each atom in rotamer, ask whether the atom centre is in a buried voxel. - If it is, add the atom to a list of buried atoms for the rotamer. - Sum the volume of the buried atoms for the rotamer (4/3*Pi\*r^3 for each atom), then subtract the overlap integrals of every pair of atoms. - Assumption: adding back the overlap triples isn't worth it because they contribute negligibly. - Assumption2: if the atom centre is buried, the whole atom is probably buried, while if the atom centre is not buried, the whole atom is probably not buried (a good enough approximation for grids with large voxels). - [x] Unit test for the rotamer setup. - [x] Fix this unit test's failure. - [x] Prune voxels that no rotamer touches, and calculate total buried packable volume. - [x] Write computation performed during simulated annealing search: - [x] For each step, impose a quadratically-ramping penalty based on the square of the difference between the total volume and the sum of the current rotamer volumes. - [x] Unit test: pack with this alone, and check that small volume deviations are achievable. - [x] Make the values that I initially hard-coded in `VoidsPenaltyVoxelGrid::is_buried()` into ones that can be configured _via_ the options system (with proper options objects -- not global reads). - [x] Add to `EnergyMethodOptions`, have the `VoidsPenaltyEnergy` read from an `EnergyMethodOptions` object, and configure the internal `VoidsPenaltyVoxelGrid` when it creates that object. - [x] The number of cones in which a voxel must be found to be considered buried is still hard-coded (at "6"). This should also be added to `EnergyMethodOptions` and `ScoreFunctionLoader`. - [x] Prune voxels of residues that are fixed during packing. - [x] Disable during minimization -- too expensive. - ~~Hmm. I'm still seeing calls during minimization. Track down and figure out how to disable.~~ --> These are calls to basic scoring peripheral to minimization in the `FastDesign` protocol. Maybe I'll add an option for disabling scoring outright except during packing. - [x] Option for disabling scoring outright except during packing. - ~~Might as well apply this to `aa_composition`, `hbnet`, and `netscore` terms, too. They don't need to be evaluated during minimization trajectories.~~ --> For a future pull request. - [x] Figure out a good way to do this for once-off scoring. - [x] Oh crap -- symmetry. - [x] Make the system work with symmetry. - [x] Unit tests for VoidsPenaltyEnergy with symmetry. - [x] Symmetric integration test. - [x] Unit tests. - [x] Integration test. - [x] Shorten integration tests a bit. - [x] Beauty. - [x] Documentation. - [x] Benchmark: calculate buried voids after design with and without this term, for many sampled backbones. - [x] Figure out largest voxel size that still produces good behaviour, and make this default. - Seems like 0.5 A is pretty good. This produces a 60% slowdown during packing of a 100-residue pose, but still creates much better-packed solutions. - Eliminating unnecessary `voids_penalty` evaluation during scoring steps in between packer steps in FastDesign, the slowdown drops to a 23% slowdown when designing the core and boundary of a 100-residue pose. - [x] Figure out time cost for this term. Also: - [x] Update function signature in ResidueArrayAnnealableEnergy for setting up for packing. (Allow rotamer sets to be passed to energy method during setup.) - [x] Update ResidueArrayAnnealableEnergy derived classes to use the C++11 `override` keyword correctly. commit 82d06974aef0ddb4fff968b37cb3312c7de11094 Merge: 411eb64 143d942 Date: Mon Dec 25 06:44:45 2017 -0800 Merge pull request #2828 from RosettaCommons/vmullig/fix_rama_sampling_issue Fix a bug in RamaPrePro that was preventing sampling/scoring for residues with BACKBONE_AA. commit 411eb647fab69af11c2778f649fba52a5663b426 Merge: 7a3d114 3622c8b Date: Sat Dec 23 09:28:56 2017 -0500 Merge pull request #2830 from RosettaCommons/everyday847/fuzzy_fragments Optionally fuzz fragments used in FARFAR commit 7a3d11464e3a5d7b69ba1edd8d60d68763523ef7 Merge: 9ec75b1 2f3d7b4 Date: Fri Dec 22 14:55:47 2017 -0500 Merge pull request #2813 from RosettaCommons/JackMaguire/BuriedUnsatHbondFilter2_fix3 Bug in BuriedUnsatHBondFilter2 XML Schema commit 9ec75b13030b2490f86e0c599e7e1ae5315dda93 Merge: 5b61e32 05546a6 Date: Fri Dec 22 14:55:03 2017 -0500 Merge pull request #2777 from RosettaCommons/JackMaguire/HBondGraph_small_bug_fixes Bug Fixes related to HBondGraph commit 5b61e323b44a55fcc9e4b5ecf68cdf37348d991c Merge: 282291f 27fe32d Date: Fri Dec 22 14:10:32 2017 -0500 Merge pull request #2308 from RosettaCommons/xrw_dunbrack_unification Generalize the Rotamer Library Code commit 282291fe383d6b6b2181fafa0ced49f83841cd14 Merge: 65863c6 d80ac39 Date: Fri Dec 22 11:18:31 2017 -0600 Merge pull request #2817 from RosettaCommons/jadolfbr/fix_ff_from_loops Fix DihedralConstraintGenerator XSD and add option to FoldTreeFromLoopsWrapper to add cutpoint variants for the proper use of the chain break term. commit 65863c6abbb18f542e75f5190b9ab9009b3fb783 Merge: dc09fde d6e8df5 Date: Fri Dec 22 09:21:17 2017 -0700 Merge pull request #2827 from RosettaCommons/sergey/ui Adding rna_denovo and parametric_design apps into release list commit dc09fde158c81535ab83ca1eeeee798e27e87470 Merge: 78aa0aa a6faf3f Date: Thu Dec 21 19:58:06 2017 -0800 Merge pull request #2822 from RosettaCommons/egurapha/remodel_stable Egurapha/remodel stable commit 78aa0aa3befb16a054114c1514eb4ba09c4475ed Merge: 0326e24 4bff7b0 Date: Thu Dec 21 12:50:44 2017 -0500 Merge pull request #2792 from CyrusBiotechnology/smlewis/commons/json_utils_sqtest_2 nlohmann::json extraction utilities From Steven Lewis: This is a set of functions with type-checking and bounds-checking for getting values out of nlohmann::json (the one added to the external libs). This gives us Rosetta-style error behavior in error cases instead of either nlohmann-style or uninterpretable-style. This addresses #2763 for Commons, and lets me reduce a lot of boilerplate on the Cyrus side. (Replying to @asford 's comment in #2763 : json-schema is absolutely a good way to address this, but it doesn't work for initial writing/debugging stages of the code - plus we're already using it, and I want a second layer of checking for a comfy security blanket!) I chose to make all the functions have the same signature - return by reference - for consistency. It's inconvenient for bool/Real. This PR will also give us a "real test" for @lyskov 's tweaks to see if we can test cross-fork merges properly. commit 0326e240fab161203917e3f5cff086bd67fcc622 Merge: 990eb68 fe285fa Date: Thu Dec 21 09:02:35 2017 -0800 Merge pull request #2821 from RosettaCommons/weitzner/pyrosetta-convenience-binding HBond vector accessor in HBSet commit 990eb68077444cc2ab10c09a7875ce647be4a3a8 Merge: 7d25cb7 3365552 Date: Wed Dec 20 15:56:59 2017 -0800 Merge pull request #2823 from RosettaCommons/dimaio/fix_xtal_build Fix extras=python build used for Phenix/Rosetta integration commit 7d25cb70d04d80c047a88f308c7f2d7ff4bb4dd7 Merge: be99c35 b22328a Date: Wed Dec 20 07:47:09 2017 -0800 Merge pull request #2786 from RosettaCommons/bfrenz/carbohydrate_bondlengthsAndAngles Bfrenz/carbohydrate bondlengths and angles commit be99c35d611df37b5cb675f4e71a131978a339b3 Merge: 75039b7 67ccaaa Date: Tue Dec 19 19:14:23 2017 -0500 Merge pull request #1550 from RosettaCommons/everyday847/additional_rna_params RNA params that cover the whole PDB commit 75039b75111b4c5d8931070e73b25f3396c61ba6 Merge: 8d102889 114e71e Date: Tue Dec 19 15:42:57 2017 -0800 Merge pull request #2818 from RosettaCommons/egurapha/remodel_stable Egurapha/remodel stable Fixing errors in two_chain_tree, and insert_segment_from_pdb flags in remodel. commit 8d1028891036eacf3fdd7346e23aa1b03ec6d11a Merge: fb3d5ac 347bb61 Date: Tue Dec 19 15:36:07 2017 -0800 Merge pull request #2773 from RosettaCommons/vmullig/fix_ncaa_rotlibs Fix major bug in noncanonical rotamer library scoring. Currently, non-canonical rotamer libraries do not score or minimize properly with `fa_dun`. This pull request aims to find and fix the problem. Tasks: - [x] Add unit test for scoring (comparing Leu loaded as a canonical rotamer library _vs._ Leu loaded as a non-canonical rotamer library). - [x] Correct path to canonical library. - [x] Add unit test for minimizing (comparing Leu loaded as a canonical rotamer library _vs._ Leu loaded as a non-canonical rotamer library). - [x] Find the problem. (Nice work, Andy and Adam!) - [x] Fix it. (Nice work, Andy!) - [x] Beauty. @atom-moyer @everyday847 @twcraven commit fb3d5ac3e95057e9c0052891f75bdd771f9dada3 Merge: 3bae75b 4452734 Date: Tue Dec 19 08:01:39 2017 -0800 Merge pull request #2411 from RosettaCommons/sboyken/buns4 Updating BuriedUnsatHbondsFilter; details can be found here: https://www.rosettacommons.org/docs/wiki/scripting_documentation/RosettaScripts/Filters/filter_pages/BuriedUnsatHbondsFilter commit 3bae75bdbfd8efb1face8f4e7e8a1e6b06835a91 Merge: e927778 9b54ec7 Date: Mon Dec 18 17:45:24 2017 -0700 Merge pull request #2806 from RosettaCommons/sergey/ui Adding UI release scripts commit e927778a5f92d1d89167682a17a808785c3ecdd9 Merge: 6f96d35 659b42f Date: Mon Dec 18 16:14:05 2017 -0700 Merge pull request #2810 from RosettaCommons/sergey/binder updating build script, making machine-name calculation more stable commit 6f96d35b3ca02742d5814117f5e78e123983443a Merge: 447ea5f 1141b49 Date: Mon Dec 18 17:07:11 2017 +0100 Merge pull request #2807 from RosettaCommons/roccomoretti/option_tracer_issue Fix issue with Tracers and options which aren't found. With the recent tracer re-org, an unknown option results in an error from the Tracer system, as you attempt to use a tracer that hasn't been initialized from options yet. This PR fixes the double-error that occurrs, by merely printing a warning for uninitialized Tracers, rather than dying. commit 447ea5f8ceff42dc473559d88ac05a73d754a1bd Merge: c500a55 3583aa2 Date: Sat Dec 16 09:39:29 2017 -0800 Merge pull request #2779 from RosettaCommons/davidekim/windows_boinc_build Davidekim/windows boinc build commit c500a55e4763903030c5380522f9c87e54607f1b Merge: 573953d 5e8e011 Date: Fri Dec 15 10:30:30 2017 -0800 Merge pull request #2802 from RosettaCommons/atom-moyer/Kinematics-Stub_from_Residue Utility functions for returning stub from residue orient atoms and RT from pair of residues commit 573953dcdfed81f167e352cacb1595186036f6d5 Merge: e1a0159 0873b5e Date: Fri Dec 15 07:51:39 2017 -0800 Merge pull request #2801 from RosettaCommons/everyday847/cppcheck_resuppress Accidentally turned off cppcheck suppressions. commit e1a015906a104fb4421e543f4653e73385098c65 Merge: fa7b77a 6efa6f7 Date: Thu Dec 14 11:26:31 2017 -0800 Merge pull request #2798 from RosettaCommons/everyday847/fix_two_bugs Overzealous merge included two bad changes commit fa7b77a2cb5147b3de80a3164b368cc271080df6 Merge: f953400 b46fe7d Date: Thu Dec 14 10:21:35 2017 -0800 Merge pull request #2797 from RosettaCommons/weitzner/fix-gcc7-build Fix gcc 7 builds (w. cmake/ninja) commit f953400f26c3d71642a20554b3a9325d55febf5e Merge: 9e16992 727b6b5 Date: Thu Dec 14 10:20:33 2017 -0800 Merge pull request #2770 from RosettaCommons/everyday847/grab_bag Grab-bag of changes, predominantly automated code modernizations commit 9e169925ce4e48736ce7afe128f4758fbefb3fac Merge: 34adaaf ec7a7c6 Date: Thu Dec 14 12:32:39 2017 -0500 Merge pull request #2790 from RosettaCommons/aleaverfay/fix_rotamer_addition_bug RotamerSet_::add_rotamer_to_existing bugfix Fixing a pretty big bug in the way rotamers are added to a RotamerSet_. Back in PR #2111, merged about three weeks ago, I added new code to decrease the number of different residue-types that the RotamerSet thought it was dealing with because before then, any new rotamer was appended to the end, and a rotamer would be considered a new type if its type didn't match the type of the one that proceeded it. There's a good amount of code in the packer, though, that scales quadratically with the number of types per residue. It's silly if you've alternated between lysine and arginine while appending rotamers to your set to declare there being 100 different residue types. (This is all just exposition from that PR) The bug I introduced in this PR occurred when a rotamer was added to a set that contained only a single type, or when a rotamer was added for the last type in the set (e.g. TYR) which can pretty easily happen! Basically, I wasn't appending rotamers from the last type until I got to the next type -- and this kind of logic will always miss the very last type in the list (there's no next type to trigger rotamer addition) so if you were repacking a residue, you would never get the new rotamers you were trying to add. Thanks Gideon for the test case that exposed this problem. Fixing a second, long-standing bug in tracking which rotamer is the input rotamer during rotamer deletion. Previously, if you deleted the input rotamer (in the function that took a vector1< bool > listing which rotamers to delete), the RotamerSet_ would not set the index of the input rotamer to 0 as it should have. This can lead to a segfault with my new code as the index of the input rotamer might be off the end of the rotamers_ vector. @gideonla commit 34adaaf5b1bb06259ee33056a854849cbeaf2201 Date: Wed Dec 13 10:25:37 2017 -0500 beautifying commit e59af9e8be1e96bd816f5ecf46639c9bce853a48 Merge: b2adf5a 2cc0b14 Date: Tue Dec 12 17:45:24 2017 -0800 Merge pull request #2795 from RosettaCommons/everyday847/build_full_model_bug Updates to build_full_model commit b2adf5a9880d2407ee13c7cb7897e4b1c6bddb1b Merge: 0502386 63b44b3 Date: Tue Dec 12 08:30:11 2017 -0500 Merge pull request #2794 from RosettaCommons/aleaverfay/template_parameter_indentation_beautifier_change Beautifying after fixing two issues with the beautifier. 1. The beautifier expected template preambles to include "<" and end with ">"; it's legal, however, to say things like: template NamedAtomID::NamedAtomID(std::string const &, Size); where no "<" is ever found. The beautifier now handles this appropriately. 2. The beautifier never properly handled multi-line-template-parameter-list indentation and so all the lines in the template parameters were flush to the left, even if the original line was indented. Now all lines after the first are indented one more level. I have just now updated the tools/ repo, so I'm closing out this PR. commit 05023860e56cc93d945a19a583f922cda6fa3133 Merge: 5db7388 0547202 Date: Mon Dec 11 21:46:48 2017 -0800 Merge pull request #2791 from RosettaCommons/bfrenz/glycan_refinetest_fix fix to glycan refinement integration test flags commit 5db73882f2540a60ee8aaf6f8b83f160b68adcf1 Merge: 1f19a8d 92cd9d0 Date: Mon Dec 11 21:08:57 2017 -0800 Merge pull request #2789 from RosettaCommons/atom-moyer/Pose-ResiduePairs Pose.residue_pairs(selector1, selector2) commit 1f19a8d503b7ec360a654a5ff71c35da0c6159ff Merge: 786e2b0 96708ac Date: Mon Dec 11 13:25:39 2017 -0600 Merge pull request #2781 from RosettaCommons/jadolfbr/dih_cst_generator Main === Add a `DihedralConstraintGenerator` class using @tlinsky 's wonderful `ConstraintGenerator` framework. One instance works on a single dihedral angle type (aka Phi OR Psi). Use multiple generator to add constraints for multiple angles. Mainly works with BB dihedrals, by setting phi,psi,omega (`dihedral` option). Works with glycan backbones as well up to omega2. Additionally, you can set arbitrary dihedrals by defining the 4 atom names and 4 residues you want. (`dihedral_atoms` and `dihedral_residues` options). The StandardDeviation for the `CircularHarmonic` Func is set to a default of 16 degrees, which was found by taking the mean SD Within a particular CDR cluster and averaging all of those means together. The 16 degrees represents a good default that allows some movement, as well as useful lever-arm effects, but typically not huge changes to the overall structure of the loops. Other ==== - Updates to code_templates to remove the THREAD_LOCAL keywords. - Update rosetta_scripts_jd3 to allow printing of BOTH a RosettaScript template and a JobDefinition template if used without `-job_definition` option Tests ==== Includes a comprehensive Unit test for the `DihedralConstraintGenerator` testing the setting of particular dihedrals, custom dihedrals, and parsing custom dihedral angles from a RosettaScript. commit 786e2b0e2822e089591567c504fe5ee265dce026 Date: Sun Dec 10 18:17:04 2017 -0500 beautifying commit 551a04bac4f145db1debe2101379943288be8f77 Merge: 5e3a767 cfa76b3 Date: Sun Dec 10 16:08:36 2017 -0700 Merge pull request #2774 from RosettaCommons/sergey/f2 Adding emplace constructor to NamedAtomID commit 5e3a7674460be739843b7109727b038cec7b77f7 Merge: 27a8dbd 5593adf Date: Sun Dec 10 10:20:05 2017 -0800 Merge pull request #2787 from RosettaCommons/everyday847/symmetry_hack A hacky version of symmetry in rna_denovo commit 27a8dbd011a8540b6d9a980583b96ac1e219b16b Merge: bbdb9ab 883e5f1 Date: Sat Dec 9 01:35:15 2017 -0800 Merge pull request #2739 from RosettaCommons/bfrenz/xtal_glycan_refinement Bfrenz/xtal glycan refinement commit bbdb9abad83680ecd68dde9c6928fde0d1af408f Merge: 4877448 0cd3d48 Date: Wed Dec 6 17:05:07 2017 -0800 Merge pull request #2741 from RosettaCommons/everyday847/prototype_dinucleotide_support Prototype support for dinucleotides in stepwise commit 48774481a3fe653f2096390263417bcff339c76a Merge: e705049 c583ca4 Date: Wed Dec 6 06:54:55 2017 -0800 Merge pull request #2775 from RosettaCommons/vmullig/indexselector_noerror Add an option to the ResidueIndexSelector to allow it to ignore residues that aren't in the pose Currently, the `ResidueIndexSelector` throws an error if a residue index specified does not exist in the pose (_e.g._ residue 56 of a 55-residue pose). While this is a good default behaviour, users have encountered situations in which this is not a desired behaviour. This pull request retains the current behaviour as default behaviour, but adds an option to disable this. Tasks: - [x] Add option to ResidueIndexSelector. - [x] Setters & getters. - [x] Update `parse_my_tag()`. - [x] Update xsd functions. - [x] Update unit test. - [x] Update serialization functions. - [x] Beauty. - [x] Documentation. @srgerb commit e705049d02214db0f9f5fe8f5d894047aab080c9 Merge: 83c8d57 4018b25 Date: Tue Dec 5 16:10:43 2017 -0800 Merge pull request #2746 from RosettaCommons/everyday847/rna_motif_updates Updates to RNA motif commit 83c8d57b123d9ea57d3893cf0f98011bdfa8d6cd Merge: a2287d9 6e2e987 Date: Tue Dec 5 17:10:17 2017 +0100 Merge pull request #2769 from RosettaCommons/roccomoretti/icc_scons_fix Fix compiler autodetection for ICC. Add os information to pre-load stage, such that the OS-specific ICC commands can be loaded and used for pre-load detection. commit a2287d9b4bc78f78c71b8429a3e631671b74d3c4 Date: Tue Dec 5 08:35:15 2017 -0500 beautifying commit aa104167d0988250a7518e73410a57effe1422a3 Merge: 1bbb5b9 ee54fce Date: Tue Dec 5 00:21:16 2017 -0700 Merge pull request #2766 from RosettaCommons/sergey/binder - Adding dependency tracking for both generation-phase (Binder invocation) and CMake invocation. - Moving CMake invocation into generate_cmake_file so build.py -s immediately call ninja instead of always re-running CMake first. - Using symlinking instead of copying for PyRosetta Python files. After this is merged i expect that building PyRosetta with just build.py or optionally build.py -s (to skip generation phase entirely to win extra ~1.5s) should became the best option for most developers. commit 1bbb5b93fc26808adabb80b308270149852d877a Merge: 48f5a07 0b136f9 Date: Tue Dec 5 09:14:38 2017 +0200 Merge pull request #2751 from RosettaCommons/orlypolo/bug-fix-output-and-crash Orlypolo/bug fix output and crash commit 48f5a07128d491047580a80737c642300229c7fe Merge: d872a66 cc03087 Date: Mon Dec 4 16:44:47 2017 -0800 Merge pull request #2735 from RosettaCommons/atom-moyer/pose_residue_accessor Atom moyer/pose residue accessor commit d872a66b173a094b5c34f8bf3a12e0f62bab7845 Merge: aa1dba5 b517e42 Date: Mon Dec 4 16:43:35 2017 -0800 Merge pull request #2771 from RosettaCommons/everyday847/quick_erraser_fixes Quick ERRASER2 fixes commit aa1dba5d165895c4a53d1066802f88c197b2a886 Merge: ca44aac ba85d86 Date: Mon Dec 4 12:18:10 2017 -0600 Merge pull request #2754 from RosettaCommons/jadolfbr/glycan_scanner3 Design Tools A number of design tools are added in this PR, including some specifics for glycans. New Resfile Commands ================= First, we have 3 new resfile commands: `CHARGED`, `AROMATIC`, and `PROPERTY`. The third is a general command that takes any ResidueProperty. Currently, it only works for Cannonicals, but perhaps that could be generalized int the future for NCs. New General TaskOps/Movers ====================== - `ResfileCommandOperation` : This operation takes a residue selector and ANY resfile command operation line (without residue numbers) and applies it. It is incredibly powerful. For example, You can select all beginning of helices and design them as charged residues extremely easily. This works with NCs as well. ``` USAGE: ``` - `SequenceMotifTaskOperation` : This is an operation that applies a given _design sequence motif_. This motif is kinda-sorta like regex syntax, but a bit different. It accepts a residue selector to design in this sequence motif starting at each position specified in the selector. Also takes resfile commands. The syntax for the operation is as follows: ``` EXAMPLE: Glycosylation N-Linked glycosylation motif design: N[^P][ST] motif (string): This is slightly similar to a regex, but not quite. We are not matching a sequence, we are designing in a motif regardless of the current sequence, anywhere in a protein. - Each letter corresponds to a position. Using [ ] indicates a more complicated expression for that position. - An X indicates it can be anything, and that we are designing here. - An AA Letter, like V, indicates that that position will be designed to a V. - A - charactor indicates that that position stays with whatever it is currently. We essentially skip this position. - An expression like: [^PAV] indicates that we will design anything except Proline, Alanine, and Valine - An expression like: [NTS] indicates that that position can be Asparigine, Threonine, or Serine and only of these will be enabled during the design. - RESFILE commands are accepted as well. These require a % charactor in from of the whole expression. For example [%POLAR] would set that position to only polar design. This is exactly the same as a resfile line, so you can even do NC like so: [%EMPTY NC R2 NC T6 NC OP5] ``` - `CreateSequenceMotifMover` : Applies the operation, using the packer, packing neighbors by default. Has a few other options for common uses. Glycans ====== - `CreateGlycanSequonMover` : This calls the SequenceMotifMover with pre-specified motifs, including using the enhanced motif that seems to result in higher glycosylation and less complex glycans ( references included in descriptions). Other ======== New string_util functions Updates to code templates Integration tests for movers Unit tests for operations, and each individual function including the string utility functions. commit ca44aacd8622a0a807043ba796c1870c813fdd03 Merge: 761cf7a 429b254 Date: Sun Dec 3 15:58:21 2017 -0800 Merge pull request #2764 from RosettaCommons/basantab/add_SS_option_DSSPdes Adding options to several movers, filters and TOs commit 761cf7a11d9a2cdb88248a4e5b1bf8a2c16a9df4 Merge: 04a550e b55004a Date: Sun Dec 3 15:23:59 2017 -0800 Merge pull request #2767 from RosettaCommons/rhiju/fix_rs_flexbbmoves_test in test involving fragment picking, do not read in ligands from PDB file commit 04a550eafa0fafe74bed6e997913544f81f58813 Merge: 73905b3 fe420fc Date: Sun Dec 3 10:30:53 2017 +0200 Merge pull request #2713 from RosettaCommons/orlypolo/enable_ignore_unrecognized_res If not specified by user, set ignore_unrecognized_res to default to t… commit 73905b39eec0ddcdf2639a0e13d69f2bd62412e1 Merge: dc21e3e 2ab7962 Date: Fri Dec 1 20:12:53 2017 -0500 Merge pull request #2761 from RosettaCommons/JackMaguire/hbnet_select_best_networks HBNet Speedup commit dc21e3e08ee1c4ad956e4ee775137d5a456ffb38 Merge: f53d1b6 1b312cc Date: Fri Dec 1 15:54:07 2017 -0500 Merge pull request #2757 from RosettaCommons/aleaverfay/beautify_after_trycatch_and_template_initlist_beautifier_changes Committing the new beautified files after fixing ~~two~~ three bugs in the beautifier: 1. the processing of comments at the end of try/catch blocks, 2. the handling of initializer lists for the constructors of templated classes, and 3. the indentation for lambda functions The first one I only noticed this morning when I broke the beautification test on master; the second one I've known about for a while, but haven't sat down to fix. Well. I just did. The final one I have not wanted to try and worry about because lambda functions are somewhat hard to detect. You can't grep for them; they're [](){}'s. I think I've written ok lambda-function-detection code now. It took a day and a half that I wanted to spend on the ResourceManager, but it's done. Testing on the server for this PR was fine for everything except the beautification status of course. The testing server updates the tools/ repo ahead of every test execution, so I don't need a commit freeze. I'm closing out this PR now. You will need to update your version of the tools repository before you next run the beautifier from your local machine. The testing server's "beautify" button, however, will work swimmingly. commit f53d1b6d250fb4b309d9ac0bea73275b033d5096 Merge: e47f09d b210d6d Date: Fri Dec 1 13:52:33 2017 +0200 Merge pull request #2679 from RosettaCommons/jonathaw/re2015_memb Jonathaw/re2015 memb commit e47f09d2f45abc5443f5c0a68bb868079a4a98ab Merge: 0b0d241 434beb3 Date: Thu Nov 30 15:05:40 2017 -0500 Merge pull request #2756 from RosettaCommons/aleaverfay/beautify_comment_in_mpiwpjd beautify master real quick commit 0b0d24159c299cceb74b3266f13b796b5ca8a2b2 Merge: 9569b37 da76f7e Date: Thu Nov 30 12:25:28 2017 -0700 Merge pull request #2426 from RosettaCommons/sergey/ui Updating workbench app commit 9569b378eec648c46fe2ccb1e42a211e6c9d57aa Merge: c8bbc8d 3b1caef Date: Wed Nov 29 16:51:34 2017 -0800 Merge pull request #2753 from RosettaCommons/vmullig/correct_DAP_DAB Fixing a few noncanonical params files. Adding rama_prepro information to params files for DAP, DAB, and penicillamine. commit c8bbc8d1fdb544f26db87d422082781fd8e7347d Merge: ff3a0b4 c37cdeb Date: Wed Nov 29 15:03:19 2017 -0500 Merge pull request #2709 from RosettaCommons/aleaverfay/jd3_fix_mpi_hang_in_distributed_output Fix hang in JD3+MPI distributed output I was treating MPI like an asynchronous communication system, but in fact, MPI_Send will block until the buffer that it's using can be reused. What happened was, node0 would send out messages to all the archives saying "Hey, here's an output that you should write to disk" and then after they were all sent, then it would return to its listening loop. The archives would take these messages one at a time, write an output, and then send a "hey, boss, just finished that output you told me to do" message back to node0 before going back and seeing if node0 had any more output messages that it had sent. What would happen is that the MPI_Send calls would buffer the messages to a certain point, and then it would block until the messages from the remote node were processed -- which they couldn't be, because the remote nodes would also be blocking waiting for node0 to read their "hey boss" messages. Thus, deadlock. New plan. * Node0 sends output work to the archives one at a time * Node0 does not output itself * Worker nodes can be given output tasks (in addition to their regular output) * Worker nodes can relieve the archive nodes of some of their output tasks (so the archive nodes don't block computation, because the worker nodes often need to talk to the archive nodes!) Users can now say "I want X% of my nodes to perform output" so that by the time you're up at 100%, then all nodes except the head node are outputting and output is basically the same in JD3 as it was in JD2. Except in JD2, there was no option to have only 10% of the nodes perform output. @JackMaguire @jadolfbr commit ff3a0b4de427f5a12b4f6036e5fdb5bc455e10fd Merge: d6abeed 8d40f2b Date: Tue Nov 28 14:16:06 2017 -0800 no change, just a pull commit d6abeeddf2bd9e409d9224c1aed7f0779d70e31c Merge: fe89fb7 08f2d48 Date: Mon Nov 27 17:10:04 2017 -0800 Added skip_repack option to the partial_thread app. commit fe89fb755c823750810cb9870252fccb80bab01e Date: Mon Nov 27 17:07:06 2017 -0800 Added the option to skip repacking and h-bond optimization in the partial_thread app to optionally speed up the RosettaCM pipeline.