Merge pull request #5400 from RosettaCommons/vmullig/add_constraint_output
Add means of dumping trRosetta constraints and other constraints to CST files.
Thanks to @danpf for the review.
This pull request adds a simple metric for recording all the constraints in a pose or selection in a format matching that used by (non-enzdes) constraints files. It also adds a flag to the trRosetta app so that trRosetta constraints can be written to disk if one so desires.
- [x] Pull request #5411 must be merged before this one.
TODO:
- [x] Add a `ConstraintsMetric` simple metric, which writes out all the constraints in a pose or selection.
- [x] Write `ConstraintsMetric::calculate()`.
- [x] Write `ConstraintsMetric::parse_my_tag()`.
- [x] Write `ConstraintsMetric::provide_xml_schema()`.
- [x] Write `ConstraintsMetric::provide_citation_info()`.
- [x] Support for residue selectors.
- [x] Unit test.
- [x] Integration test.
- [x] Add a way to read in spline functions in a single line.
- [x] Document this.
- [x] Add documentation for ub_function and lb_function.
- [x] Add a way to write out spline functions in a single line.
- [x] Unit test comparing read-in constraints to written-out constraints.
- [x] AtomPair / Harmonic.
- [x] AtomPair / Spline.
- [x] Angle / CircularHarmonic.
- [x] Angle / Spline.
- [x] Dihedral / CircularHarmonic.
- [x] Dihedral / Spline.
- [x] Add a flag to the trRosetta app to dump out trRosetta constraints to a file.
- [x] Add a flag to the trRosetta app to skip structure prediction phase.
- [x] Integration test for above two flags with trRosetta app.
- [x] Beauty.
- [x] Documentation: provided in RosettaCommons/documentation#45.
Note: this simple metric can probably replace the `CstInfoMover`, which predates our simple metrics framework. We might want to deprecate that mover (with a suitable deprecation message pointing users to this simple metric) once this is in.
@jkleman