Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CcdLoopClosureMover.cc
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
11 /// @brief
12 /// @detailed
13 /// @author Oliver Lange
14 ///
15 
16 
17 // Unit Headers
21 // Package Headers
22 
23 // Project Headers
24 // AUTO-REMOVED #include <core/pose/Pose.hh>
25 
26 // Utility Headers
27 #include <utility/PyAssert.hh>
28 #include <basic/Tracer.hh>
29 
30 #include <utility/vector1.hh>
31 
32 //Auto Headers
33 
34 
35 
36 //last boolean causes this tracer to be muted by default
37 static basic::Tracer TR_loop("protocols.loops.loop_closure.ccd.CcdLoopClosureMover", basic::t_info, true);
38 
39 namespace protocols {
40 namespace loops {
41 namespace loop_closure {
42 namespace ccd {
43 
44 using namespace core;
45 
47  Loop const& loop_def,
49 ) :
50  loop_( loop_def ),
51  movemap_( mm ),
52  max_rama_score_increase_( 2.0 ), //defaults copied from rosetta++, map_squence.cc scored_frag_close
53  max_total_delta_helix_( 10 ),
54  max_total_delta_strand_( 50 ),
55  max_total_delta_loop_( 75 ),
56  tolerance_( 0.01 ),
57  ccd_cycles_( 100 ),
58  bRama_check_( true )
59 {}
60 
61 void
63  Real input_max_rama_score_increase
64 ) {
65  max_rama_score_increase_ = input_max_rama_score_increase;
66  return;
67 }
68 
69 void
71  Real input_max_delta_helix,
72  Real input_max_delta_strand,
73  Real input_max_delta_loop
74 ) {
75  max_total_delta_helix_ = input_max_delta_helix;
76  max_total_delta_strand_ = input_max_delta_strand;
77  max_total_delta_loop_ = input_max_delta_loop;
78  return;
79 }
80 
81 void
83  tolerance_ = input_tolerance;
84  return;
85 }
86 
87 void
89  ccd_cycles_ = input_ccd_cycles;
90  return;
91 }
92 
93 void
94 CcdLoopClosureMover::set_bRama_check( bool input_bRama_check ) {
95  bRama_check_ = input_bRama_check;
96  return;
97 }
98 
100 
101 void
103  TR_loop << "Closing loop " << loop_.start() << " " << loop_.stop() << std::endl;
105  pose,
106  *movemap_,
107  loop_.start(),
108  loop_.stop(),
109  loop_.cut(),
110  ccd_cycles_,
111  tolerance_,
112  bRama_check_,
121  );
122 }
123 
126  return "CcdLoopClosureMover";
127 }
128 
132 }
133 
136  return tolerance_;
137 }
138 
141  assert((secstr == "H") || (secstr == "E") || (secstr == "L"));
142  PyAssert((secstr == "H") || (secstr == "E") || (secstr == "L"),
143  "CcdLoopClosureMover::get_max_total_delta( std::string secstr ): secstr must be 'H', 'E', or 'L'.");
144  if (secstr == "H")
145  return max_total_delta_helix_;
146  else if (secstr == "E")
148  else /*secstr == "L"*/
149  return max_total_delta_loop_;
150 }
151 
154  return *movemap_;
155 }
156 
157 std::ostream &operator<< ( std::ostream &os, CcdLoopClosureMover const &mover )
158 {
159  moves::operator<<(os, mover);
160  os << "LOOP start: " << mover.get_loop_start() << " stop: " << mover.get_loop_stop()<< " cut: " << mover.get_loop_cut() <<
161  " size: " << mover.get_loop_size() << " skip rate: " << mover.get_loop_skip_rate() << " extended?: " <<
162  mover.get_loop_extended() << std::endl;
163  os << "Max rama score increase: " << mover.get_max_rama_score_increase() <<
164  "\nNumber of CCD cycles: " << mover.get_ccd_cycles() <<
165  "\nTolerance: " << mover.get_tolerance() <<
166  "\nbRama check: " << mover.bRama_check() <<
167  "\nMax total delta helix: " << mover.get_max_total_delta("H") <<
168  "\nMax total delta strand: " << mover.get_max_total_delta("E") <<
169  "\nMax total delta loop: " << mover.get_max_total_delta("L") << "\nMovemap: " << std::endl;
170  mover.movemap().show(os);
171  return os;
172 }
173 
175  Loop const& loop_def,
177 ) :
178  total_moves_( loop_def.size() ),
179  loop_( loop_def ),
180  movemap_( mm )
181 {}
182 
184 
185 void
187  ccd_moves(
188  total_moves_,
189  pose,
190  *movemap_,
191  loop_.start(),
192  loop_.stop(),
193  loop_.cut()
194  );
195 }
196 
199  return "CcdMover";
200 }
201 
202 } // namespace ccd
203 } // namespace loop_closure
204 } // namespace loops
205 } // namespace protocols