Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
protocols
nonlocal
HelixRotate.hh
Go to the documentation of this file.
1
// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2
// vi: set ts=2 noet:
3
//
4
// (c) Copyright Rosetta Commons Member Institutions.
5
// (c) This file is part of the Rosetta software suite and is made available under license.
6
// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7
// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8
// (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9
10
/// @file protocols/moves/HelixRotate.hh
11
/// @author Christopher Miles (cmiles@uw.edu)
12
13
#ifndef INCLUDED_protocols_nonlocal_HelixRotate_HH
14
#define INCLUDED_protocols_nonlocal_HelixRotate_HH
15
16
// Unit header
17
#include <
protocols/nonlocal/HelixRotate.fwd.hh
>
18
19
// C/C++ headers
20
#include <string>
21
22
// Utility headers
23
// AUTO-REMOVED #include <numeric/xyzVector.hh>
24
25
// Project headers
26
#include <
core/pose/Pose.fwd.hh
>
27
#include <
protocols/loops/Loop.hh
>
28
// AUTO-REMOVED #include <protocols/loops/Loops.hh>
29
30
// Package headers
31
#include <
protocols/moves/Mover.hh
>
32
33
//Auto Headers
34
#include <
protocols/loops/Loops.fwd.hh
>
35
#include <utility/vector1.hh>
36
37
38
namespace
protocols {
39
namespace
nonlocal {
40
41
/// @class A simple protocol for rotating a contiguous stretch of residues along the
42
/// axis defined by its first and last residues. Makes no assumptions about the
43
/// kinematics of the system.
44
///
45
/// TODO(cmiles) Improved handling of kinked helices
46
class
HelixRotate
:
public
moves::Mover
{
47
public
:
48
HelixRotate
();
49
HelixRotate
(
const
protocols::loops::Loop
& helix,
double
degrees);
50
51
/// @brief Rotates the helix by the specified number of degrees
52
void
apply
(
core::pose::Pose
& pose);
53
54
/// @brief Returns the protocol's name
55
std::string
get_name
()
const
;
56
57
/// @brief Creates a new instance with the copy constructor
58
moves::MoverOP
clone
()
const
;
59
60
/// @brief Creates a new instance with the default constructor
61
moves::MoverOP
fresh_instance
()
const
;
62
63
/// @brief Returns the helix to be modified
64
const
protocols::loops::Loop
&
get_helix
()
const
;
65
66
/// @brief Returns the number of degrees to rotate the helix
67
double
get_degrees
()
const
;
68
69
/// @brief Updates the helix to be modified
70
void
set_helix
(
const
protocols::loops::Loop
& helix);
71
72
/// @brief Updates the number of degrees to rotate the helix
73
void
set_degrees
(
double
degrees);
74
75
private
:
76
/// @brief Shared initialization routine
77
void
initialize
(
const
protocols::loops::Loop
& helix,
double
degrees);
78
79
/// @brief Returns true if this instance is valid and fully configured
80
bool
is_valid
()
const
;
81
82
/// @brief Partitions the structure such that the helix to be rotated belongs
83
/// to its own chunk, which will be subsequently connected to the star fold
84
/// tree by its own jump
85
void
decompose_structure
(
unsigned
num_residues,
protocols::loops::Loops
* chunks)
const
;
86
87
/// @brief Searches chunks for the member representing the helix, returning its index
88
unsigned
jump_containing_helix
(
const
protocols::loops::Loops
& chunks)
const
;
89
90
/// @brief Computes rotational parameters-- axis and point
91
void
get_rotation_parameters
(
92
const
core::pose::Pose
& pose,
93
numeric::xyzVector<double>
* axis,
94
numeric::xyzVector<double>
* point)
const
;
95
96
/// @brief Stretch of contiguous residues representing the helix to be rotated
97
protocols::loops::Loop
helix_
;
98
99
/// @brief Number of degrees to rotate the helix
100
double
degrees_
;
101
};
102
103
}
// namespace nonlocal
104
}
// namespace protocols
105
106
#endif
Generated on Sat Jun 1 2013 12:01:43 for Rosetta 3.5 by
1.8.4