「view this page in B3 βῆτα server」

Revisions №57495

branch: master 「№57495」
Commited by: jkleman
GitHub commit link: 「d7a63ee186365167」 「№212」
Difference from previous tested commit:  code diff
Commit date: 2014-12-10 15:21:07

Merge pull request #212 from RosettaCommons/jkleman/compute_membrane_position Jkleman/compute membrane position **Updates for MembraneFramework: compute_structure_based_membrane_position** * protocols/membrane/geometry/util:compute_structure_based_membrane_position: removed code duplication for this function; now this function uses the constructors in Embedding that takes a pose and a topology object * Embedding: Embedding from span now checks for the dihedral angle between the first span and each consecutive one to calculate embedding normal instead of positive/negative z-coordinate or odd/even spans; this is much less error-prone and works for multiple chains. The dihedral angle cutoff is 100 degrees. Works for the cases I looked at but is not extensively benchmarked. * membrane normal: normalized membrane normal vector to length 15 instead of 1 for better visualization and debugging purposes; same holds true for embedding normal vectors * VisualizeEmbeddingMover: added VisualizeEmbeddingMover; when using this mover embedding virtuals are added to the pose after the membrane residue. Can be invoked using the flag -membrane_new::visualize::embedding <boolean> * EmbeddingDef / Embedding: added constructor to create Embedding object from a single EmbeddingDef object * EmbeddingDef: added function in EmbeddingDef:from_span_positive_z to distinguish calculation of the normal vector into positive z-coordinate instead of any direction * protocols/membrane/geometry/util: added function average_antiparallel_embeddings which inverts the normals that are showing in the opposite directions; the average_embeddings function just averages which can result in zero vectors if some of them are antiparallel * TransformIntoMembraneMover: for fixing the unit tests I needed to set the membrane residue at the root in the apply function * EmbeddingDef / Embedding: added copy constructor and assignment operators * Embedding: added error checking for embedding(span_number) * PymolPyRosettaServer: adjusted membrane thickness to work with normals of length 15, removed RG dependence for membrane **Tests** Membrane unit tests: pass Membrane integration tests: expected changes in mpframework_relax and mpframework_loadtime due to different calculation of membrane normal Other integration tests: all other changes are typically broken tests or numerical changes

...