Merge pull request #6074 from RosettaCommons/vmullig/tweak_rosettascript_filter_reevaluation
Some minor tweaks to filters to reduce reevaluation
Currently, filters are recomputed several times by default in RosettaScripts:
- Three times on application (once to filter, once to store the filter value in the pose, and once to report the filter's calculation to the tracer).
- Once more on script completion.
There are two options that reduce this. The `never_rerun_filters="true"` option ensures that only the computation to filter is performed, but returns no values. The `report_at_end="false"` option disables the final reporting, but doesn't alter the threefold computation.
Obviously this is far from ideal, especially with filters with some stochasticity to their calculation or filters that are expensive to apply. Cleaning up the threefold computation is hard -- it comes down to poor design of the virtual functions of the filter class, and would require touching every filter to refactor. However, we can add options to remove at least one of the triplicated calculations.
This pull request:
- [x] Disables the third calculation for reporting if the report tracer (`protocols.rosetta_scripts.ParsedProtocol.REPORT`) is muted.
- [x] Ensures that the `never_rerun_filters` option is correctly set from RosettaScripts.
- [x] Cleans up a visually ambiguous mix of nots and ors in `parse_my_tag()`.
- [x] Corrects a few typos in error and warning messages.
Note that Jack made a good point about merging the never_rerun and report time options. Although it's outside of the scope of this pull request, I'll make an issue for doing that in the future.