Merge pull request #701 from RosettaCommons/weitzner/dock_partners_flag
Dock partners in any order
====================
This change set enables docking chains to be specified in any order. The previous functionality required that the dock_partners flag listed the chains in the same order as in the PDB file. For example, if you had a PDB file with the chains A, B and C, you could dock the A–B dimer to C ("AB_C") or A to the B–C dimer ("A_BC"), but not the A–C dimer to B ("AC_B"). To use "AC_B", the user would have to rearrange the chains in the PDB file. Absurd! :angry:
This change set fixes that using `ChainSelectors` and representing dock partners as `vector1< bool >`s. There were many flavors of the `setup_foldtree` function, several of which were not called anywhere in the code. These functions have been removed with the author's permission as appropriate.
Unit tests:
-------------
All unit tests pass. Unit tests that tested functions that were removed were also removed and the `DockingProtocolFunctions.u` file was updated to account for `FoldTree` edges being printed in a different order. A new unit test has been added to demonstrate and test the out-of-order functionality.
Integration test changes:
---------------------------------
Seventeen integration tests differ (3 were failing on the branched revision, 2 are failing as a result of an unknown bug somewhere else) as a result of this change, but the differences are limited to the order in which `FoldTree` `Edge`s are printed out and do not affect the folding direction of the pose or cause trajectory changes.
### Tests with text-based differences ###
These differences are all of the form:
< protocols.docking.DockingProtocol: FOLD_TREE EDGE 1 71 -1 EDGE 71 107 -1 EDGE 71 126 1 EDGE 126 193 -1 EDGE 126 108 -1
---
> protocols.docking.DockingProtocol: FOLD_TREE EDGE 1 71 -1 EDGE 71 107 -1 EDGE 71 126 1 EDGE 126 108 -1 EDGE 126 193 -1
1. `docking_local_refine_min`
2. `docking_low_res`
3. `score_only_silence`
4. `fuzzy`
5. `assemble_domains_jd2`
6. `docking_local_refine`
7. `rotamer_probability`
8. `docking_distance_constraints`
9. `docking_site_constraints`
10. `docking_full_protocol`
11. `score12_docking`
12. `docking_ensemble`
### Tests that were failing on the merge base with master:
1. `place_simultaneously`
2. `hotspot_graft`
3. `inverse_rotamer_remodel`
### New test failures: ###
1. `mp_dock_prepack` (does not run) – ***disabled with permission from JKL***
2. `mp_find_interface` (does not run) – ***disabled with permission from JKL***