Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RingConformationMover.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 RingConformationMover.hh
11 /// @brief Declarations and simple accessor/mutator definitions for RingConformationMover.
12 /// @author labonte
13 
14 #ifndef INCLUDED_protocols_simple_moves_carbohydrates_RingConformationMover_HH
15 #define INCLUDED_protocols_simple_moves_carbohydrates_RingConformationMover_HH
16 
17 // Unit headers
19 #include <protocols/moves/Mover.hh>
20 
21 // Project headers
22 #include <core/types.hh>
23 #include <core/id/types.hh>
25 
26 // Utility headers
27 #include <utility/vector1.fwd.hh>
28 
29 // C++ headers
30 #include <string>
31 #include <iostream>
32 
33 namespace protocols {
34 namespace simple_moves {
35 namespace carbohydrates {
36 
37 /// @details Based on a given MoveMap, this mover selects movable carbohydrate residues and flips their rings to an
38 /// idealized energy minimum ring conformer. Six-membered rings sample chair and twist-boat conformations; five-
39 /// membered rings sample envelope and half-chair. The sampling is biased towards ideally lower-energy conformers.
40 /// @remarks This class is a work in progress....
42 public:
43  // Type definitions ////////////////////////////////////////////////////////
44  // A pair defining a ring conformer:
45  // first: the name of the conformer (e.g., 1C4, 1,4B, etc.)
46  // second: a list of torsion angle values defining that conformation
47  // A conformer can be defined by two fewer torsion angles than the size of the ring.
48  typedef std::pair<std::string, utility::vector1<core::Angle> > ring_conf_def;
49 
50  // Standard methods ////////////////////////////////////////////////////////
51  /// @brief Default constructor
53 
54  /// @brief Copy constructor
55  RingConformationMover(RingConformationMover const & object_to_copy);
56 
57  /// @brief Constructor with MoveMap input option
59 
60  // Assignment operator
61  RingConformationMover & operator=(RingConformationMover const & object_to_copy);
62 
63  // Destructor
64  virtual ~RingConformationMover();
65 
66 
67  // Standard Rosetta methods ////////////////////////////////////////////////
68  // General methods
69  /// @brief Register options with the option system.
70  static void register_options();
71 
72  /// @brief Generate string representation of RingConformationMover for debugging purposes.
73  void show(std::ostream & output=std::cout) const;
74 
75  // Insertion operator (overloaded so that RingConformationMover can be "printed" in PyRosetta).
76  friend std::ostream & operator<<(std::ostream & output, RingConformationMover const & object_to_output);
77 
78 
79  // Mover methods
80  /// @brief Return the name of the Mover.
81  virtual std::string get_name() const;
82 
83  virtual protocols::moves::MoverOP clone() const;
84 
86 
87  /// @brief Apply the corresponding move to <input_pose>.
88  virtual void apply(core::pose::Pose & input_pose);
89 
90 
91  // Accessors/Mutators
92  /// @brief Get the current MoveMap.
94 
95  /// @brief Set the MoveMap.
96  void movemap(core::kinematics::MoveMapOP new_movemap);
97 
98 private:
99  // Private methods /////////////////////////////////////////////////////////
100  // Initialize data members from arguments.
102 
103  // Copy all data members from <object_to_copy_from> to <object_to_copy_to>.
104  void copy_data(RingConformationMover object_to_copy_to, RingConformationMover object_to_copy_from);
105 
106  // Setup list of movable carbohydrate residues from MoveMap.
108 
109 
110  // Private data ////////////////////////////////////////////////////////////
112  utility::vector1<core::Size> residue_list_; // list of movable carbohydrate residues by residue number
113 
114  // Lists of conformation defintions
117 
118 }; // class RingConformationMover
119 
120 } // namespace carbohydrates
121 } // namespace simple_moves
122 } // namespace protocols
123 
124 #endif // INCLUDED_simple_moves_protocols_carbohydrates_RingConformationMover_HH