Merge pull request #5602 from RosettaCommons/jadolfbr/design_restrict
Bug fixes, filter logic, disulfidize improvements, etc.
# Bunch of stuff in this PR, listed below:
- `NamedDihedralConstraint` bug fix
- Bug fix and additions to `GlycanSequonSelector`
- Bug fix for excluding germlines in RAbD
- Added `sort_scorefxn` option to Disulfidize - actually sort them and not just give you random ones that were found. Added option to _actually_ _keep_ current disulfides. Fix a bug so that without this option, actual random ones are given using shuffle. Update docs.
- Added `TrueFalseFilter` to enable control-flow of RosettaScripts using script_vars - which is true or false on-the-fly
- Added `logic` option to `CompoundStatement` to use instead of subelements. Simplifies use.
- Enable filter logic across RosettaScripts through the `find_filter_or_die` function. This is similar in nature to Selector logic across RosettaScripts.
- Add `detect_disulfides` option to `DeleteRegionMover` which when false will not 'redetect and probably destroy' designed disulfides.
- Add `logic` option to IfMover to allow more complex behavior:
-- Parse logic as `if x : y else z` This corresponds to filter_name,true_mover_name,false_mover_name. Use null for do nothing. not is also accepted so - if not x : y else z
-- Added control-flow directly within IfMover using a 'value' option that interprets a '0' or '1' as a TrueFilter or FalseFilter to allow script_vars control flow (awesome idea from @ajasja 's to save some declaration of the TrueFalseFilter.)
- `SequenceMover` is now RosettaScriptable. `RandomMover` now has the option of repeats for each mover, allowing probabilistic repeats.
- Add `dir` option to dumpPDB mover. Use the PDBInfo name if set to prefix the output PDB that is dumped - this enables it to be a lot more useful.
- Add a few functions here and there that are tested and will be used in future PRs.
# Tests
An integration test covers parsable logic, rosetta-scripts parsable components, parsable control-flow.