Merge pull request #427 from RosettaCommons/rfalford12/membrane_bugs
Lots of bug fixes in the membrane framework. Also, adding new unit and integration tests to prevent current and catch future bugs in critical functions.
Bug Fixes:
- Adding additional error checking, demonstrating to the user
SetupForSymmetry is required to run before SymmetricAddMembraneMover. This is clear in C++, but the error is more difficult to track in RosettaScripts
- Fixed the RosettaMPRelax (new) RosettaScript that was previously
not scoring final models with the specified membrane scoring function
by adding an <OUTPUT ...> line in the script. Corrected in the
integration test and in Rosetta/demos
- Fix bug in AddMembraneMover that skipped setting the membrane position
from an existing membrane residue
- Fixed weird logic that seemed to allow multiple membrane residues? This
is not currently allowed in the membrane framework. If you need multiple, add EMB residues
- Fixing messy implementation of membrane-depth dependent hydrogen
bonding for the framework and previous code. Cleaning this up - will do an object-oriented implementation soon.
New Integration/Unit Tests:
- Add Integration test for rescoring a pose output by the membrane
framework with score_jd2 app (mp_score_jd2)
- Added new scorefxn fingerprint test for pH-aware membrane scoring
function (membrane_fa_pH)
- Updated existing membrane score fingerprint tests:
- Removed previous resource manager dependence
- Removed spanfiles with extra files, created by bug in old code
- Adding integration test for previous version of membrane relax (Barth
2007) which includes the membrane depth-dependent hydrogen bonding
correction. Needed to check this code is compatible with both
frameworks and for some future code updates
- Added unit test for reading in a membrane residue using a position
provided in the constructor or searching for one in the PDB. The
membrane residue has a non-trivial position to check for an edge case
previously causing trouble
- Add integration test for just loading in a pose using the symmetry
and membrane frameworks using RosettaScripts (reason described above)
Expected Sfxn Regression Test Changes:
- membrane_cen_scorefxn
- membrane_fa_pH
- membrane_fa_scorefxn
- menv_smooth_scorefxn
* Nothing numeric: just due to addition/deletion of files
Expected Integration Test Changes:
- mp_symmetry_load
- membrane_relax
- membrane_relax_hbond
- mp_relax
- mp_score_jd2
* Nothing numeric: just due to addition/deletion of files
Thank you to Amanda for identifying the bug in the symmetry RosettaScripts hook!