Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IdealizeMover.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 src/protocols/idealize/IdealizeMover.hh
11 /// @brief protocols for idealizing a Pose
12 /// @author
13 
14 
15 #ifndef INCLUDED_protocols_idealize_IdealizeMover_hh
16 #define INCLUDED_protocols_idealize_IdealizeMover_hh
17 
18 #include <core/types.hh>
19 #include <core/pose/Pose.fwd.hh>
20 #include <protocols/moves/Mover.hh>
22 #include <utility/tag/Tag.fwd.hh>
24 //Auto Headers
25 #include <utility/vector1.hh>
26 namespace protocols {
27 namespace idealize {
28 
29 
30 /// @brief Mover class for transforming a Pose to ideal bonds of the given Pose.
31 /// The idea is that this Mover stochastically picks a move-able position, forces
32 /// that position into ideal geometry, and tries to use minimization to bring
33 /// the coordinates back to very near their starting points.
34 
35 class IdealizeMover : public moves::Mover {
36 
37 public:
38  typedef core::Real Real;
40 
41 public:
43  Mover("IdealizeMover"),
46  fast_( false ),
47  chainbreaks_( false ),
48  report_CA_rmsd_(true),
49  impose_constraints_( true ),
50  constraints_only_( false )
51  {
53  }
54 
55  /// @brief clone has to be overridden only if clone invocation is expected.
56  virtual moves::MoverOP clone() const {
57  return new IdealizeMover( *this );
58  }
59 
60  virtual moves::MoverOP fresh_instance() const {
61  return new IdealizeMover;
62  }
63 
66  {
68  return *this;
69  }
70 
71 
74  {
76  return *this;
77  }
78 
80  fast( bool const setting )
81  {
82  fast_ = setting;
83  return *this;
84  }
85 
87  chainbreaks( bool const setting ){
88  chainbreaks_ = setting;
89  return *this;
90  }
91 
93  report_CA_rmsd( bool const setting )
94  {
95  report_CA_rmsd_ = setting;
96  return *this;
97  }
98 
99  void
100  apply( Pose & pose );
101 
102  virtual std::string get_name() const;
103 
104  /// @brief Sets the list of residue positions to idealize.
106  pos_list_ = pos_list;
107  }
108 
112  void impose_constraints( bool const i ){ impose_constraints_ = i; }
113  bool impose_constraints() const{ return( impose_constraints_ ); }
114  bool constraints_only() const{ return constraints_only_; }
115  void constraints_only( bool const c ){ constraints_only_ = c; }
116 
117 private:
118  // methods
119  void
121 
122 private:
123  // data
125 
128  utility::vector1< core::Size > ignore_residues_in_csts_; // dflt empty; residues that don't carry constraints, e.g., residues that were inserted without closing loops etc.
129  bool fast_;
132  bool impose_constraints_; //dflt true; should the mover impose its own constraints or respect the incoming ones;
133  bool constraints_only_; //dflt false; jump out after imposing the idealize constraints?
134 };
135 
136 } // idealize
137 } // protocols
138 
139 #endif