Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RigidBodyMotionMover.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/rigid/RigidBodyMotionMover.hh
11 /// @author Christopher Miles (cmiles@uw.edu)
12 
13 #ifndef INCLUDED_PROTOCOLS_RIGID_RIGIDBODYMOTIONMOVER_HH
14 #define INCLUDED_PROTOCOLS_RIGID_RIGIDBODYMOTIONMOVER_HH
15 
16 // Unit header
18 
19 // C/C++ headers
20 #include <string>
21 
22 // Project headers
24 #include <core/pose/Pose.fwd.hh>
25 #include <protocols/loops/Loops.hh>
26 
27 // Package headers
28 #include <protocols/moves/Mover.hh>
29 
30 //Auto Headers
31 #include <utility/vector1.hh>
32 namespace protocols {
33 namespace rigid {
34 
36  public:
38 
39  /// @brief Randomly selects a chunk and perturbs its rigid body transformation
40  void apply(core::pose::Pose& pose);
41 
42  /// @brief Returns the magnitude of translation
43  double magnitude_translation() const;
44 
45  /// @brief Returns the magnitude of rotation
46  double magnitude_rotation() const;
47 
48  /// @brief Returns the strength of the chainbreak bias
49  double chainbreak_bias() const;
50 
51  /// @brief Returns the input fold tree
53 
54  /// @brief Updates the magnitude of translation
55  void set_magnitude_translation(double mag_trans);
56 
57  /// @brief Updates the magnitude of rotation
58  void set_magnitude_rotation(double mag_rot);
59 
60  /// @brief Updates the strength of the chainbreak bias
61  void set_chainbreak_bias(double cb_bias);
62 
63  /// @brief Updates the input fold tree and regenerates chunks
64  void set_fold_tree(const core::kinematics::FoldTree& tree);
65 
66  /// @brief Returns the name of this mover
67  std::string get_name() const;
68 
69  private:
70  /// @brief Derives chunk definitions from input fold tree
71  void update_chunks();
72 
73  /// @brief Having selected chunk i, compute the chainbreak-biased translation vector
74  void compute_bias(unsigned i, const core::pose::Pose& pose, numeric::xyzVector<double>* cb_deltas) const;
75 
76  /// @brief Input fold tree
78 
79  /// @brief Chunks derived from input fold tree. Stored in increasing order of start position.
81 
82  /// @brief Magnitude of rotation. Unless otherwise specified, equal to -rigid:rotation.
83  double mag_rot_;
84 
85  /// @brief Magnitude of translation. Unless otherwise specified, equal to -rigid:translation.
86  double mag_trans_;
87 
88  /// @brief Value on [0..1] that controls the strength of the chainbreak bias in translation moves
89  double cb_bias_;
90 };
91 
92 } // namespace rigid
93 } // namespace protocols
94 
95 #endif // PROTOCOLS_RIGID_RIGID_BODY_MOTION_MOVER_HH_