Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PerturbRotamerSidechainMover.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/simple_moves/sidechain_moves/PerturbRotamerSidechainMover.hh
11 /// @brief definition of PerturbRotamerSidechainMover class and functions
12 /// @author Oliver Lange (oliver.lange@tum.de) adapted from Colin A. Smith's code
13 
14 
15 #ifndef INCLUDED_protocols_simple_moves_sidechain_moves_PerturbRotamerSidechainMover_hh
16 #define INCLUDED_protocols_simple_moves_sidechain_moves_PerturbRotamerSidechainMover_hh
17 
18 // Unit Headers
21 
22 // Protocols Headers
25 
26 // Core Headers
30 #include <core/pose/Pose.fwd.hh>
31 
34 
37 
38 // Numeric Headers
39 #include <numeric/random/random.hh>
40 
41 // Utility headers
42 #include <utility/vector1.hh>
43 
44 namespace protocols {
45 namespace simple_moves {
46 namespace sidechain_moves {
47 
48 /// @brief class for non-discrete side chain sampling using Dunbrack rotamer probabilities/distributions
50 
51 public:
53  /// @brief default constructor
55 
56  /// @brief constructor with user provided rotamer library
59  );
60 
62  PerturbRotamerSidechainMover const & mover
63  );
64 
65  virtual
67  clone() const;
68 
69  virtual
70  void
72  utility::tag::TagPtr const tag,
74  protocols::filters::Filters_map const & filters,
75  protocols::moves::Movers_map const & movers,
76  core::pose::Pose const & pose
77  );
78 
79  virtual void
81  core::conformation::Residue const& residue,
82  ChiVector const& old_chi,
83  ChiVector& new_chi
84  );
85 
86  virtual std::string get_name() const;
87 
88  virtual core::Real
90  core::conformation::Residue const & new_residue,
91  core::Size const resnum,
92  core::chemical::ResidueType const & old_res_type,
93  ChiVector const & old_chi
94  ) const;
95 
96  void set_temperature( core::Real setting ) {
97  temperature_ = setting;
98  }
99 
101  return temperature_;//temperature_;
102  }
103 
104 protected:
105  void set_defaults();
106 public:
108  void build_rotamer_list(
110  bool filter, /* filter out low probabilities p<0.01 */
111  RotamerList&
112  ) const;
113 
114  //helper function
116  RotamerList const&,
117  ChiVector const& old_chi,
118  ChiVector const& new_chi,
119  core::Real& within_rot_density
120  ) const;
121 
122 
123 private:
124  //the dunbrack rotamers std-deviation can be scaled ... this is similar to a temperature;
125  // 1.0 means the standard dunbrack probabilities are used --- does that mean cryo-temperature ?
127 }; //PerturbRotamerSidechainMover
128 
129 
130 } // sidechain_moves
131 } // simple_moves
132 } // protocols
133 
134 #endif