Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_LoopCloseSampler.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 RNA_LoopCloseSampler
11 /// @brief
12 /// @detailed
13 ///
14 /// @author Rhiju Das
15 
16 
17 #ifndef INCLUDED_protocols_swa_rna_RNA_LoopCloseSampler_HH
18 #define INCLUDED_protocols_swa_rna_RNA_LoopCloseSampler_HH
19 
20 #include <core/pose/Pose.fwd.hh>
21 #include <core/types.hh>
24 #include <utility/vector1.hh>
25 #include <protocols/moves/Mover.hh>
26 #include <string>
27 #include <map>
28 
29 using namespace core;
30 
31 namespace protocols {
32 namespace swa {
33 namespace rna {
34 
35 /////////////////////////////////////////////////////////////////////////////////////////////////
36 /////////////////////////////////////////////////////////////////////////////////////////////////
38 public:
39 
40  //constructor!
41  RNA_LoopCloseSampler ( Size const moving_suite, Size const chainbreak_suite );
42 
43  //destructor -- necessary?
45 
46  /// @brief Apply the minimizer to one pose
47  virtual void apply ( core::pose::Pose & pose_to_visualize );
48 
49  /// @brief Each derived class must specify its name. The class name.
50  virtual std::string get_name() const {
51  return "RNA_LoopCloseSampler";
52  }
54  return all_torsion_info_;
55  }
57  return n_construct_;
58  }
59  void fill_pose ( pose::Pose & pose, Size construct_number );
60  void clear_all();
61 
62  void set_bin_size ( Size const setting ) {
63  bin_size_ = setting;
64  }
65 
66  void set_epsilon_range ( Real const setting ) {
67  epsilon_range_ = setting;
68  }
69 
70  void set_rep_cutoff ( Real const rep_cutoff ) {
71  rep_cutoff_ = rep_cutoff;
72  }
73  void set_torsion_range ( Real const torsion_range ) {
74  torsion_range_ = torsion_range;
75  }
76  void set_torsion_increment ( Real const torsion_increment ) {
77  torsion_increment_ = torsion_increment;
78  }
79 
80  void set_just_output_score ( bool const setting ) {
81  just_output_score_ = setting;
82  }
83  void set_sample_only ( bool const setting ) {
84  sample_only_ = setting;
85  }
86 
87  void set_sample_native_torsion ( bool const setting ) {
88  sample_native_torsion_ = setting;
89  }
90 
91  void set_rbs_new_pair ( utility::vector1< Real > const & rbs_new_pair ) {
92  rbs_new_pair_ = rbs_new_pair;
93  }
94 
95  void set_scorefxn ( core::scoring::ScoreFunctionOP const & scorefxn );
96  // Undefined, commenting out to fix PyRosetta build Size get_n_construct();
97 
98 
99 private:
100 
101  bool
102  torsion_angles_within_cutoffs ( pose::Pose const & pose,
103  Size const moving_suite,
104  Size const chainbreak_suite);
105 
106  void initialize_rep_scorefxn();
107 
108  Real
109  initialize_fa_rep ( pose::Pose const & pose,
110  utility::vector1< Size > const & moving_suites,
111  scoring::ScoreFunctionOP rep_scorefxn );
112 
113  bool
114  check_clash ( pose::Pose & pose,
115  Real const & fa_rep_score_baseline,
116  Real const & rep_cutoff_,
117  scoring::ScoreFunctionOP rep_scorefxn );
118 
119 private:
120 
121  Size const moving_suite_, chainbreak_suite_;
122 
124  Size bin_size_, n_construct_;
125  Real rep_cutoff_, torsion_range_, torsion_increment_, epsilon_range_;
126  bool just_output_score_, sample_only_, sample_native_torsion_;
128 
131 };
132 
133 }
134 } //swa
135 } // protocols
136 
137 #endif