Merge pull request #6110 from RosettaCommons/vmullig/b2ec4c93907
Fix a bug with thioether lariat structure prediction.
This fixes a bug in simple_cycpep_predict with thioether lariats with tails and a native structure. (There was a spot in the code where I was assuming that the last residue was the cysteine residue.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6082 from RosettaCommons/revert-6081-revert-5520-jyjwang/degreaser-fresh
fixed things so that the tests that were broken passed. main culprits: unused variables / functions. annoying fix: indexing with Size instead of SSize. Thanks Sergey for checking in on the original PR ! Revert "Revert "Degreaser v 1.0""
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6093 from RosettaCommons/vmullig/fix_thioether_cyclization_patch
Fixing the oxygen atom placement in the AcetylatedProteinNtermConnection patch.
The backbone carbon depended on the oxygen rather than the converse. This created bad geometry in GenKIC.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6091 from RosettaCommons/roccomoretti/replica_dock_fix
(Partially) Fix replica_docking integration test
Looks like we need a pre-existing directory to put the logs into.
We're still getting timeouts on the server, but we're not hard crashing anymore.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6076 from RosettaCommons/vmullig/fix_symmetrical_residue_selector
Fix the SymmetricalResidueSelector's internal logic
The SymmetricalResidueSelector would copy selections from the independent set to the dependent residues, but not vice versa. This PR fixes this, so that it's guaranteed to produce a symmetrical selection every time. This requires a two-pass process:
- In the first pass, every independent residue that has a dependent selected is selected.
- In the second pass, every independent residue that is selected selects all of its dependents.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6072 from RosettaCommons/vmullig/fix_cycpep_bug_identified_by_jared
Fix a simple_cycpep_predict bug in cis-trans sampling with lariats, identified by Jared
The bug is actually in N-terminal N-methylated thioether-cyclized variants, which are introduced in the `jadolfbr/cycpep` branch. This branch has `jadolfbr/cycpep` merged into it. @jadolfbr, is it okay to merge the contents of `jadolfbr/cycpep` into `master`, or do you want to keep that private for now?
Tasks:
- [x] Add integration test that should trigger the bug.
- [x] Track down the bug.
- [x] Check whether `jadolfbr/cycpep` can be merged into master.
- [x] Fix the bug.
- [x] Beauty.
From `jadolfbr/cycpep`:
- [x] This adds support to the AcetylatedProteinNterm for N-methylation.
- [x] This adds support for the `out::path::pdb`, `out::path::all`, `out::path::path`, `out::suffix`, and `out::prefix` commandline flags to the `simple_cycpep_predict` application.
notify author
notify list [rosetta-logs@googlegroups.com]
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.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6071 from RosettaCommons/vmullig/update_rms_functions
Add some RMSD functions.
This pull request:
- [x] Adds a `superimpose_polymer_heavyatoms()` function, to superimpose based on either _all_ heavyatoms or all _mainchain_ heavyatoms. Our existing functions are peptide and protein-specific.
- [x] Adds a `all_atom_rmsd_incl_hydrogens()` function (as well as a Doxygen comment on the existing `all_atom_rmsd()` function indicating that this excludes hydrogens).
- [x] Switches a couple of instances of `new` to use `make_shared` instead.
- [x] Unit tests this.
These new functions are used in a project that will be the subject of a future pull request.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #6069 from RosettaCommons/vmullig/custom_real_valued_metric
Add a CustomRealValueMetric class, analogous to the CustomStringValueMetric
It is convenient to have an easy way to cache an arbitrary floating-point value in a pose from code, without doing a lot of manual steps. Simple metrics let you _compute_ particular types of floating-point values (scores, RMSDs, _etc._) and cache them, but if you've already computed whatever you want to compute, it's not easy to get that stored as a metric. This pull request adds a `CustomRealValueMetric` class, which lets you add an arbitrary input value and label to a pose. For instance, you might be testing an idea in a pilot app:
```c++
core::pose::PoseOP pose( utility::pointer::make_shared< core::pose::Pose >() );
// Create the pose and manipulate it.
core::Real const my_computed_value = /*some new calculation to analyze the pose that's experimental enough or specialized enough that it's not worth turning into its own simple metric*/;
core::simple_metrics::metrics::CustomRealValueMetric my_metric;
my_metric.set_value( my_computed_value ); //I don't want the computation to be done by the metric.
my_metric.apply( "custom_computed_value", *pose ); //Cache the computed value in the pose, and give it the label "custom_computed_value".
```
We already have this for string metrics. This pull request adds it for float-valued metrics.
Note: this also gives you a way to pass in information from the commandline in RosettaScripts and cache it in the pose. For instance:
```xml
<ROSETTASCRIPTS>
<SIMPLE_METRICS>
<CustomRealValueMetric name="my_metric" value="%%extrernal_val%%" />
</SIMPLE_METRICS>
<PROTOCOLS>
<Add metrics="my_metric" />
</PROTOCOLS>
</ROSETTASCRIPTS>
```
```sh
~/Rosetta/main/source/src/rosetta_scripts.default.linuxgccrelease -parser:protocol my_script.xml -script_vars external_val=25.3 -in:file:s first_file.pdb
~/Rosetta/main/source/src/rosetta_scripts.default.linuxgccrelease -parser:protocol my_script.xml -script_vars external_val=-12.9 -in:file:s second_file.pdb
```
It should also make it easier to put custom information into a Pose in PyRosetta.
TODO:
- [x] Unit test.
- [x] Beauty.
- [x] Documentation. Pull request RosettaCommons/documentation#59 has this.
notify author
notify list [rosetta-logs@googlegroups.com]