Merge pull request #2120 from RosettaCommons/roccomoretti/chain_fix2
Chain numbers and letters and jumps, oh my!
In Rosetta there's several ways of specifying a "chain": chain numbers (chain ID), chain letters, and jump numbers. These are not interchangeable. In general, there is *NOT* a 1:1 correspondence between chain numbers, chain letters or jump numbers, unless the pose has been specifically set up as such.
To help reduce confusion, add documentation to (new function) Pose::num_chains() which describes the various options, and explicitly points out they may be different. Also add pointers to that documentation from various places where the distinction is relevant, or where a naive person might find a function that works with "chains" and might need clarification as to the distinction.
Fix a number of utility functions in core/pose/util.hh which work with chain numbers/letters/jumps so that they're more robust to poses where the correspondence is not 1:1, and unit test them with a funky pose.
Bonus: I've added C++11 move constructors and initialization list constructors to utility::vector1/0/L, so creating vector1s with defined contents is easy:
utility::vector1<core::Size> single_digit_primes{2,3,5,7};
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2115 from RosettaCommons/roccomoretti/tracer_annotation
Update formatting for error conditions
Several changes to improve diagnostic messages in the (rare) event of Rosetta failure.
* Have the Fatal/Error/Warning tracers automatically label the output level with "[ FATAL ]"/"[ ERROR ]"/"[ WARNING ]" respectively
* Consistency allows for easy grepping/noticeability of errors or warnings.
* It also makes it easier to change how we tag tracers if people don't like "[ FATAL ]"/"[ ERROR ]"/"[ WARNING ]"
* Many tracer output statements have been updated such that
1. We don't double-print the Error/Warning tags
2. Tracer statements which say they're warnings/errors actually go out on warning/error priority
* runtime_assert() and debug_assert() output has been reformatted to be a bit more user friendly
* e.g. We now indicate that the condition printed has failed, rather than implying that the condition is an error in itself.
* `assert(false)` is not a good way to end the program, as it provides absolutely no information about what the failure was. Fix all the `*_assert(false)` instances I can find with something like `utility_exit_with_message()`.
* Replace most of the plain C++ `assert`s with Rosetta `debug_assert`s, as that gives more information. (e.g. the backtrace on platforms which support it.)
Lots of cosmetic changes in integration tests expected.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2087 from RosettaCommons/vmullig/fix_silent_read_issue_2
Incremental merge for fixing the silent file read issues
This is an initial merge of the changes in pull request #1955. It fixes the silent file read issues, but not the write issues. See that pull request for full details.
A handful of integration tests show cosmetic changes because the silent file reader is a bit more verbose with badly-formatted silent files, but no test changes of substance are observed. This should make silent file read much more resilient to the mysterious silent file write errors. Merging.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2118 from RosettaCommons/dimaio/beta16_fix_tors_corr
Fixing a few errors with -beta_nov16. Since these are bugfixes, I am making this change the behavior of beta_nov16 rather than add a new flag. This will trigger rebuilding of Dunbrack binaries.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2117 from RosettaCommons/vmullig/fix_bluegene_cyclopsorine_failure
Correcting Blue Gene failure due to silly mistake in sarcosine Ramachandran maps.
@jcminerlanl , if you're using the sarcosine Ramachandran maps after our discussion today, you should pull the latest master after I merge this in. I found a silly mistake.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2114 from RosettaCommons/jadolfbr/ab_design_updates
RosettaAntibodyDesign updates
This PR changes and adds a number of things to the RAbD protocol and framework:
- 1) Add a new cmd-line option `-primary_cdrs`. This sets the CDRs to be used for the outer cycle. Very useful if you want to graft-design a specific CDR, such as H3 and allow neighboring CDRs to sequence design, but you are primarily interested in sampling H3.
- 2) **Simplifies the protocol.** You can now use `-graft_design_cdrs`, `-seq_design_cdrs`, and `-mintype` to run the whole protocol. If you want specifics, you can use the CDR instruction file. This makes a design run as simple as:
`antibody_designer.macosclangrelease -s my_ab.pdb -graft_design_cdrs H3 -seq_design_cdrs H1 H2 -primary_cdrs H3 -light_chain lambda`
- 3) Sets outer_cycle_rounds to 25. This is a much more reasonable number, but requires 4x as many decoys. Runtime for pack is ~ 2 minutes/decoy, while using _min_ as the mintype (_pack/min/pack/min_) is about 10 minutes/decoy.
- 4) Make _min_ the default as this has been shown to work pretty well and take significantly less time than using the full relax flexbb design protocol. Make this do min/pack/min/pack instead of a single min/pack and then requiring users to set the inner_cycle_rounds to 2.
- 5) Make the default to min_neighbors as we did in the benchmarking. These are reasonable defaults
```
L1 MinProtocol Min_Neighbors L2 L3
L2 MinProtocol Min_Neighbors L1
L3 MinProtocol Min_Neighbors L1 H3
H1 MinProtocol Min_Neighbors H2 H3
H2 MinProtocol Min_Neighbors H1
H3 MinProtocol Min_Neighbors L1 L3
```
- 6) Add a new option for disabling certain amino acids, `-disallow_aa` which takes a list of either one or 3 letter codes. Enable this option to be set Per-CDR in the instruction file.
- 7) **Add resfile support.** Nothing hacky, only there to further limit which residues are packed/designed, and can further limit residue types for design.
- 8) **Add viewer support.** Enabled by extras=graphics and adding `-antibody:design:view` to the command line.
- 9) Require the `-light_chain` option to be given and use it to limit grafts/sequence profiles for clusters.
- 10) Make the default to design nothing. Require the user to give designing CDRs either through the command-line or through the CDR Instruction file.
- 11) **Better Memory Management.** Make the previous default where we cache all the CDRs we will be grafting to be the option `-high_mem_mode`. This is off by default as if you do denovo design on an antibody with this option, you will need ~3-4 GB/process. So now we have an option `-cdr_set_cache_limit`, which we use as a cutoff at 300. This means that after we have cached 300 CDRs, we stop caching and then, load them on-the-fly if we need them. This actually has the benefit of making the setup phase much quicker, as we would never use all the CDRs we cache in a single process anyway. Perhaps with JD3 or threading, we can do this better eventually.
- 12) Make the `-global_atom_pair_scoring` option True so that the atom_pair_cst score is used throughout the protocol - which can then act as a filter.
- 13) Remove a bunch of experimental options to simplify what actual options we are using.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2113 from RosettaCommons/rhiju/rna_denovo2017_stage1
Rhiju/rna denovo2017 stage1
• test changes are for `rna_denovo` command lines. Some are cosmetic. Others occur after numerous fragment insertions and appear to be due to numerical instabilities.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2112 from RosettaCommons/aleaverfay/beautify_Mar2017
Aleaverfay/beautify mar2017
We resolved at the recent WRC meeting that we would be beautifying the code on a per-pull-request basis, with a test that will fail if any of your source files have not been beautified. To get that working, master will have to be beautified again. To that end, I've updated the beautifier to handle some aspects of C++ that it couldn't before (lambda functions with semicolons, macros that can't be followed with a semicolon; namespace aliasing) so that now all of master beautifies.
This is a pre-beautification version of master that fixes things that needed fixin' so that the beautifier will work on it. I'll perform the actual beautification once Sergey has the testing server ready to run the new test.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1972 from RosettaCommons/aleaverfay/offrot_w_lkball
Per-residue setup-for-scoring
Residue contains a datacache similar to Conformation's and Pose's datacaches, but the only way the datacache can be updated is through setup_for_packing, when you have constructed a RotamerSet object. In the off-rotamer packer, you do not have a pre-calculated set of rotamers and so this function cannot be used. This has the unfortunate consequence of making LK_Ball inaccessible to the off-rotamer packer.
The new interface for energy methods proposed in this PR would allow them the opportunity to indicate "yes, I need a per-residue setup-for-scoring opportunity" and then for those EMs to be given write access to the per-residue data cache, without getting write access to the Residues themselves.
- [x] rename "requires_a_setup_for_scoring_opportunity" to "requires_a_setup_for_scoring_during_minimization_opportunity" in all existing 2BEMs
- [x] create a new "requires_a_setup_for_scoring_during_regular_scoring_opportunity" function in EM base class
- [x] create a new (overloaded) "setup_for_scoring_for_residue" function that passes in a Residue's datacache. Add accessors for this datacache to Conformation.
- [x] Add calls to "setup_for_scoring_for_residue" to ScoreFunction and the off-rotamer packer.
- [x] Update LK_BallEnergy to use this new interface
It may very well be that EnergyMethod::update_residue_for_packing could be replaced by this new interface.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2097 from RosettaCommons/JWLabonte/BackboneMover
ShearMover: fixing bug in ShearMover
If `ShearMover` tries to shear a peptide following a cis bond, it actually twists it. This merge will fix that.
(It also turns off shear moving for sugars for now.)
15 integration tests change, because moves that were previously made are no longer allowed.
All other tests pass.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2110 from RosettaCommons/lqtza/floppytail_com_in_ordered_region_only
Addition of FloppyTail-related PyRosetta scripts and minor changes
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #2101 from RosettaCommons/jadolfbr/fix_quench
Fix GlycanTreeIntegration test
Fix backward-direction quench-mode GlycanTreeRelax. Split the 3 tests into separate integration tests. Speed them up by removing the final optimization step.
notify author
notify list [rosetta-logs@googlegroups.com]