Membrane Framework Updates: Part 2 in a series of membrane framework commits
===============================================================================
Author: Rebecca Alford
Conformation:
= Moved coordinate derived membrane info down into the membrane info object
Renaming:
= Renamed InitialMembranePositionMover => MembranePositionFromTopologyMover
= Renamed MembranePositionRTMover => Set Membrane Position mover (with appropriate tests)
notify author
notify list [rosetta-logs@googlegroups.com]
Add setters to ExtraRotamersGeneric.
I found the ExtraRotamersGeneric task operation in the RosettaScripts
documentation, and I wanted to use it from c++. Unfortunately, it only
had parse_my_tag() implemented and no setter methods. This commit adds
those methods.
notify author
notify list [rosetta-logs@googlegroups.com]
Fixed bugs with ChiralMover and TryRotamers optimal connection point
ChiralMover now updates backbone oxygens on upper terminus.
Also, properly handles orienting functional group for residues that do
not have three side chain residues to orient.
Added case of D-Proline in NtermTruncation patch
Updated atom connection points in optimal_connection_point function.
This is used by TryRotamers for automatic fold tree creation and was
failing to create properly aligned rotamers for HIS, LEU and ILE.
Updated optimal atom based on a fixed atom in the terminal chi angle.
Unit tests: pass
Integration tests: ld_converter has minor coordinate changes due to the
update to ChiralMover and cosmetic output changes.
notify author
notify list [rosetta-logs@googlegroups.com]
Rosetta Membrane Protein Framework
====================================
Authors:
Rebecca Faye Alford (rfalford12@gmail.com)
Julia Koehler Leman (julia.koehler1982@gmail.com)
Jeffrey J. Gray (jgray@jhu.edu)
Thanks to:
- Brian Weitzner, Justin Porter, Andrew Leaver-Fay and the Gray Lab for great code feedback
- Evan Baugh for assistance with the PyMol Viewer
- Sergey Lyskov for providing support & testing for the membrane framework project on benchmark2
This is the first in a series of commits for the membrane framework.
Database:
------------------------------
= MEM.params - Membrane position residue with default position normal=(0, 0, 1), center=(0, 0, 0)
= EMB.params - Embedding position residue with default position normal=(0, 0, 1), center=(0, 0, 0)
MEM and EMB params have the residue type property MEMBRANE and are described in the fullatom and centroid residue type sets.
Core Library:
------------------------------
core/conformation/membrane:
= Membrane Exception Hierarchy - JD2 exceptions for when things go wrong. Shoud be used in the core layer,
and are particularly useful for designing testable IO code.
= Span: Describe a single transmembrane spanning region in the pose
= SpanningTopology: Describe the total spanning topology of the protein (stored as a colleciton of Spans)
= LipidAccInfo: Describe per-residue lipid exposed and buried surface areas (predicted by run_lips.pl
server)
= MembraneParams: Enum for cleaning up code related to membrane position coordinate access
= MembranePlanes: Store the position of the membrane planes as a series of virtual residues. Will display
as points - later used by the PyMol viewer for drawing CGO planes in visualization
= MembraneInfo: Top Level container for membrane data (non-coordinate derived).
core/membrane/geometry:
= EmbeddingDef: Define the embedding of a part of the pose - can be a single span, chain or whole pose.
Described by an embedding normal/center parameter
= Embedding: Class for computing the embedding parameter. Can be from topology, sequence, or structure.
= util: Some useful methods for working with/visualizing membrane proteins and fold trees
Edits to Conformation:
= Methods for setting up a MembraneInfo object in conformation
= Mehtods for accessing membrane positon parameters
= Methods for dealing with coordinate derived membrane information
Protocols Library:
-----------------------------
protocols/membrane:
= AddMembraneMover: Initialize the membrane protein framework. This mover adds a membrane position residue,
spanning topology, and optionally a lipophilicity object to the pose. Can be accessed via the command line, rosetta scripts or custom constructors (PyRosetta)
= MembranePositionFromTopology: Move the membrane position to one based on the spanning topology and CA
coordinates in the pose.
= SetMembranePositionMover: Set the membrane normal/center position in the pose as custom positions
= RandomMembranePositionMover: Randomnly rotate/translate the membrane position (first step to sampling)
PyMOL Mover Updates:
-----------------------------
= ShowMembranePlanesMover (in protocols/membrane/visualize) - Will add residues defining a top and bottom
plane to represent the membrane planes. This feature is designed specifically for visualization, but should not affect simulation results
= PyMOLMover: Added flags to send membrane center, normal and plane points over to the PyMolPyRosetta server
= PyMolPyRosettaServer: Recieves membrane message, will draw planes representing the membrane for real-time
visualization
This feature can be turned on using the flag -membrane_new:view_in_pymol when an application is supported
by the framework (see AddmembraneMover).
Testing:
-----------------------------
Unit tests associated with the membrane framework:
* SpanTest
* SpanningTopologyTest
* MembraneInfoTest
* MembraneConformationTest
* AddMembraneMoverTest
* InitialMembranePositionMoverTest
* MembranePositionRTTest
Status - All Tests Pass
Integration test associated with the membrane framework:
* load_mpframework
* membrane_relax2
* membrane_ddG
Current Test Changes
- All added tests
- Adding mphbond option print statement
- Julia's MC print statement
(56 test changes expected - centroid dslf and torsion change also currently broken)
Status - no current changes
Score Function Fingerprint Tests (Added):
* membrane_cen_sfxn - Membrane low resolution energy function supported by the framework (terms adapted from those described in Yarov-Yaravoy et al. 2006)
= membrane_fa_sfxn - Membrane high resolution energy function supported by the framework (terms adapted from those described in Barth, 2007)
= menv_smooth - Smoothed membrane high resolution energy function supported by the framework (terms adapted from Vladmir's 2010 additions)
Status - These tests will initially change from no diff - should then be stable but will observe the test server where appropriate.
Build Checks
= mac clang release/debug - pass
= linux gcc release/debug - pass
= PyRosetta - Merging into master is a test. Will fix
Note: This commit is currently made being weary of integration test changes. Will watch for these where appropriate and follow up with comments.
In the words of a great wizard, Mischief Managed!
notify author
notify list [rosetta-logs@googlegroups.com]
Changing default values for -loops:outer_cycles to 5 and -loops:max_kic_perturber_samples to 2000
since our tests using the 45 loops benchmark set have shown considerable loop modeling performance
increases with these values.
These have already been the recommended values for next generation KIC, which is currently also
the recommended loop modeling protocol to use (I updated the documentation wiki for the loop
modeling app accordingly and will upload it once the server becomes accessible again).
Due to trajectory changes originating from changing the default values for those two
parameters, I expect the following list of integration tests to change:
rosetta_scripts_loops
antibody_H3
UBQ_E2_thioester_extra_bodies
kinematic_looprelax
KIC_refine
SnugDock
next_generation_KIC
AnchoredDesign
The following integration tests have already failed before and are not affected by this commit:
torsion_restricted_sampling
centroid_disulfide_scores
No other test changes expected.
notify author
notify list [rosetta-logs@googlegroups.com]
delete_virtual_residues_after_FastRelax_='false' by
default in FastRelax constructor, since parse_my_tag in
rosetta_scripts alone may not be enough to specifically designate
default value for a user who uses command-line
notify author
notify list [rosetta-logs@googlegroups.com]
Revert LegacyKicSampler renaming.
The protocols::loop_modeling namespace uses the CamelCase convention for
class names. This commit reverts the change to LegacyKicSampler which
broke that convention.
notify author
notify list [rosetta-logs@googlegroups.com]