Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_AnalyticLoopCloser.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 loopRNA_minimizer.hh
11 /// @brief
12 /// @detailed
13 ///
14 /// @author Rhiju Das
15 
16 
17 #ifndef INCLUDED_protocols_swa_rna_RNA_AnalyticLoopCloser_HH
18 #define INCLUDED_protocols_swa_rna_RNA_AnalyticLoopCloser_HH
19 
20 #include <protocols/moves/Mover.hh>
21 #include <core/id/NamedAtomID.hh>
22 #include <core/id/DOF_ID.fwd.hh>
23 #include <core/pose/Pose.fwd.hh>
26 #include <utility/vector1.hh>
27 #include <core/types.hh>
28 #include <ObjexxFCL/FArray1D.hh>
29 
30 //// C++ headers
31 // AUTO-REMOVED #include <cstdlib>
32 #include <string>
33 
34 // AUTO-REMOVED #include <vector>
35 using namespace core;
36 
37 namespace protocols {
38 namespace swa {
39 namespace rna {
40 
41 /// @brief The RNA de novo structure modeling protocol
43 public:
44  /// @brief Construct the protocol object
45  RNA_AnalyticLoopCloser ( Size const moving_suite, Size const chainbreak_suite );
46 
47  /// @brief Clone this object
48  virtual protocols::moves::MoverOP clone() const;
49 
50  /// @brief Each derived class must specify its name. The class name.
51  virtual std::string get_name() const {
52  return "RNA_AnalyticLoopCloser";
53  }
54 
55  /// @brief Apply the loop-rebuild protocol to the input pose
56  virtual
57  void apply ( pose::Pose & pose );
58 
59  void
60  choose_best_solution_based_on_score_function ( scoring::ScoreFunctionOP scorefxn );
61 
62  void
63  choose_least_perturb_solution();
64 
65  // Undefined, commenting out to fix PyRosetta build void choose_random_solution();
66 
67  void
68  get_all_solutions ( pose::Pose & pose,
70 
71  Size nsol() {
72  return nsol_;
73  }
74 
75  void
76  fill_solution ( pose::Pose & pose,
77  Size const n ) const;
78 
80  get_torsions ( Size const n );
81 
83  get_torsions_for_all_solutions();
84 
85 private:
86 
87  bool
88  close_at_cutpoint ( pose::Pose & pose );
89 
90  void
91  figure_out_dof_ids_and_offsets ( pose::Pose const & pose,
92  utility::vector1<Real> const & dt_ang );
93 
94  void
95  figure_out_offset (
96  pose::Pose const & pose,
97  id::DOF_ID const & dof_id,
98  Real const & original_torsion_value,
99  utility::vector1< Real > & offset_save );
100 
101  void
102  apply_solutions ( pose::Pose & pose );
103 
104 
105  void
106  output_chainTORS ( utility::vector1< Real > const & dt_ang,
107  utility::vector1< Real > const & db_ang,
108  utility::vector1< Real > const & db_len ) const;
109 
110  void
111  fill_chainTORS (
112  pose::Pose const & pose,
113  utility::vector1< id::NamedAtomID> const & atom_ids,
115  utility::vector1<Real> & dt_ang,
116  utility::vector1<Real> & db_ang,
117  utility::vector1<Real> & db_len ) const;
118 
119 
120 private:
121 
124 
125  bool const verbose_;
126  int nsol_;
127 
129 
133 
135 
140 
141 }; // class RNA_AnalyticLoopCloser
142 
143 
144 } //rna
145 } //swa
146 } // protocols
147 
148 #endif