Merge pull request #4439 from RosettaCommons/JackMaguire/MLAnnealer
Adding SmartAnnealer
This PR adds an annealer which uses TensorFlow to disqualify rotamers on the fly. I have preliminary data below that shows that dynamically decreasing sample space (either conservatively or aggressively) gives a better score as a function of time.
Thanks Rocco for the review!
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4664 from RosettaCommons/roccomoretti/fix_master_tidy
Fix issues with clang_tidy in master.
Fix recent breakage, fix issue with tests which are failing on master.
Also reorganize cppcheck test and add subtest parsing.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4624 from RosettaCommons/vmullig/threadsafe_approximate_buried_unsat_penalty
Make the ApproximateBuriedUnsatPenalty threadsafe
The ApproximateBuriedUnsatPenalty caches `symm_vs_self_asu_resnum1_`, `symm_vs_self_asu_resnum2_`, and `symm_vs_self_rotamer_count_` inside of itself for computing pairwise interactions in the context of a symmetric IG. This prevents threadsafe calculation, and is also generally unsafe: it means that the scoreterm accumulates state on repeated calls to `ApproximateBuriedUnsatPenalty::evaluate_rotamer_pair_energies()`, and assumes that the function calls from external code will proceed in a particular order. This PR has refactored this, which allows the `approximate_buried_unsat_penalty` scoreterm to be used with multi-threaded interaction graph precomputation.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4665 from RosettaCommons/vmullig/fix_dorn_bug
Fix a symmetry bug with NCAAs.
The BACKBONE_AA option was not properly being mirrored by the D_AA patch. This affected the rama_prepro and p_aa_pp scoreterms for D-NCAAs.
This PR also updates some tests that were performing redundant tests of beta_nov15 (which is now our ref2015 default scoring function) to test whatever the current beta scorefunction is.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4653 from RosettaCommons/roccomoretti/clang_10_fixes
Fixes for compilation on Clang 10
Fix some issues detected by Clang 10 compilation.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4650 from RosettaCommons/vmullig/internal_hbonds_metric
Add a simple metric (and a thin wrapper filter) that computes internal hydrogen bonds in a peptide.
This is something that I script over and over in RosettaScripts from the HbondsToResidue filter and some combining filters, producing a Frankenfilter that is both clunky from a user interface standpoint and inefficient from a computational standpoint. (It has to re-evaluate hydrogen bonds for every residue.) It's time I wrote a metric and a wrapper filter for this.
This is also something that currently requires me to update residue numbers in my script when a target changes (which is highly prone to user error), but which, with this pull request, will be doable with ResidueSelectors instead (which, if not idiot-proof, is at least idiot-resistant). For this reason, I'll put it in the `Modernize RosetttaScripts` project, too.
Tasks:
- [x] Add simple metric.
- [x] Getters and setters.
- [x] Remember that set_hbond_types() should throw if all types are set to false.
- [x] XSD function.
- [x] parse_my_tag().
- [x] calculate().
- [x] metric().
- [x] CitationManager fxns.
- [x] Documentation --> in RosettaCommons/documentation#41
- [x] Add filter that thinly wraps the metric.
- [x] Getters and setters.
- [x] XSD function.
- [x] parse_my_tag().
- [x] apply().
- [x] CitationManager fxns.
- [x] Documentation. --> in RosettaCommons/documentation#41
- [x] Unit test.
- [x] Integration test.
- [x] Beauty.
- [x] Make the filter's interface a thinner wrapper for the metric.
- [x] Fix cppcheck.
- [x] Fix serialization.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4636 from RosettaCommons/roccomoretti/filter_value_metric
Add a SimpleMetric which wraps a Filter.
We're looking at converting the usage of Filters for calculating values to the SimpleMetric framework. In that conversion process, it would be really useful to have a RealMetric that's able to wrap a Filter, for backwards compatibility purposes. -- That is, if you have some framework which currently stores a filter and then uses the report_sm() functionality of that stored filter, you would want to convert it to store a RealMetric and use the value calculated by that real metric. But you also want to preserve backward compatibility in case people have old XMLs which are using and passing around Filters.
That's what the FilterValueMetric is for. It's just a RealMetric which can take an arbitrary Filter, call report_sm() on it, and use that value as if it was calculated by a RealMetric proper.
The intent is not to be used "earnestly", but mainly as a backward compatibility shim during the process of updating things to use the metrics framework.
notify author
notify list [rosetta-logs@googlegroups.com]