Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_LoopCloser.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_rna_RNA_LoopCloser_hh
18 #define INCLUDED_protocols_rna_RNA_LoopCloser_hh
19 
20 #include <protocols/moves/Mover.hh>
21 #include <core/pose/Pose.fwd.hh>
23 
24 #include <core/types.hh>
25 
26 //// C++ headers
27 // AUTO-REMOVED #include <cstdlib>
28 #include <string>
29 
30 #include <utility/vector1.hh>
31 
32 
33 
34 namespace protocols {
35 namespace rna {
36 
37 /// @brief The RNA de novo structure modeling protocol
39 public:
40  /// @brief Construct the protocol object
42 
43  /// @brief Clone this object
44  virtual protocols::moves::MoverOP clone() const {
45  return new RNA_LoopCloser(*this);
46  }
47 
48  /// @brief Apply the loop-rebuild protocol to the input pose
50  void apply( core::pose::Pose & pose );
51  virtual std::string get_name() const;
52 
53  /// @brief Apply the loop-rebuild protocol to the input pose
54  void apply( core::pose::Pose & pose, std::map< Size, Size > const & connections );
55 
56  /// @brief Apply the loop-rebuild protocol to the input pose
57  core::Real apply( core::pose::Pose & pose, std::map< Size, Size > const & connections, Size const & cutpoint );
58 
59  /// @brief Apply the loop-rebuild protocol to the input pose
60  core::Real apply( core::pose::Pose & pose, Size const & cutpoint );
61 
62  //Need get/set functions for options.
63 
64  void fast_scan( bool const & setting ) { fast_scan_ = setting; }
65 
66  // void
67  // close_loops_carefully(
68  // core::pose::Pose & pose,
69  // std::map< Size, Size > const & connections,
70  // Size const close_loops_rounds );
71 
72  void
74  core::pose::Pose & pose,
75  std::map< Size, Size > const & connections );
76 
77  // void
78  // close_loops_carefully_one_round( core::pose::Pose & pose, core::scoring::ScoreFunctionOP const & scorefxn );
79 
80  bool
81  check_closure( core::pose::Pose & pose, core::Real ccd_tolerance = 0.0 /* 0.0 means use absolute_ccd_tolerance_*/ );
82 
83 private:
84 
85  bool
86  passes_fast_scan( core::pose::Pose & pose, Size const i ) const;
87 
88  // Returns final coordinate error.
90  rna_ccd_close( core::pose::Pose & pose, std::map< Size, Size > const & connections, Size const & cutpoint ) const;
91 
94  Size const cutpoint
95  ) const;
96 
99  Size const cutpoint,
100  utility::vector1< core::Vector > & upstream_xyzs,
101  utility::vector1< core::Vector > & downstream_xyzs
102  ) const;
103 
104  core::Real
106  Size const cutpoint
107  ) const;
108 
109 
111  get_extra_cutpoints( core::pose::Pose const & pose ) const;
112 
113  void
114  setup_variants_at_extra_cutpoints( core::pose::Pose & pose, utility::vector1< Size > const & extra_cutpoints ) const;
115 
116  void
117  remove_variants_at_extra_cutpoints( core::pose::Pose & pose, utility::vector1< Size > const & extra_cutpoints ) const;
118 
119  void
121 
122  void
123  tight_minimize( core::pose::Pose & pose ) const;
124 
125  private:
126  //Make these options:
127  bool verbose_;
135 }; // class RNA_LoopCloser
136 
137 
138 
139 } //rna
140 } // protocols
141 
142 #endif