Merge pull request #4761 from RosettaCommons/vmullig/all_to_all_pnear_analysis
Add PNear analysis for many states.
I'm using peptide structure prediction to train ML models that can recognize peptides that fold well. A single structure prediction run actually generates far more data than I'm using. It would be useful to compute and output PNear to all of the negative states in addition to PNear to the state that I'm designing for, to give me more data for training. This PR adds this functionality.
Tasks:
- [x] Add new option.
- [x] Register new option.
- [x] Have the new option do something:
- [x] Add a new step to the `HierarchicalHybridJDApplication` class for this computation:
- [x] Sends a request for each state in turn from the emperor node to all slave nodes.
- [x] Each slave node broadcasts that state to all other slave nodes.
- [x] All slave nodes compute RMSD to that state.
- [x] Emperor collects RMSDs up the hierarchy and carries out PNear calculation.
- [x] Repeat for each relevant state.
- [x] Write out PNear list at end.
- [x] Error if used with `-compute_rmsd_to_lowest option.`.
- ~~Check and address issue #4738~~ --> separate pull request.
- [x] Documentation.
- [x] Integration test.
- [x] Beauty.