31 #include <basic/options/option.hh>
37 #include <basic/Tracer.hh>
41 #include <numeric/random/random.hh>
50 #include <basic/options/keys/loops.OptionKeys.gen.hh>
54 #include <utility/vector1.hh>
58 namespace loop_build {
60 static basic::Tracer
TR(
"protocols.loop_build.LoopMover_SlidingWindow");
64 static numeric::random::RandomGenerator
RG(10003);
68 IndependentLoopMover()
80 ) : IndependentLoopMover( loops_in )
94 ) : IndependentLoopMover( loops_in )
112 using namespace kinematics;
113 using namespace scoring;
114 using namespace protocols::simple_moves;
115 using namespace basic::options;
116 using namespace basic::options::OptionKeys;
126 closedpose.fold_tree( f_empty );
136 bool chainbreak_present = ( loop.
start() != 1 && loop.
stop() != nres &&
138 !pose.
residue( loop.
stop() ).is_upper_terminus() );
141 if( chainbreak_present ){
152 if(
frag_libs_.size() == 0 ){ utility_exit_with_message(
"Fragments needed for LoopMover_SlidingWindow"); }
159 if ( option[ OptionKeys::loops::alternative_closure_protocol ]() ) {
166 closure_protocol->short_frag_cycle_ratio( option[ OptionKeys::loops::short_frag_cycles ]() );
168 closure_protocol->set_bIdealLoopClosing(
false );
169 closure_protocol->set_chainbreak_max( option[ OptionKeys::loops::chainbreak_max_accept ]() );
180 if( chainbreak_present ){
185 core::Real chain_break_tol = option[ basic::options::OptionKeys::loops::chain_break_tol ]();
186 tr().Info <<
"Chainbreak: " << chain_break_score <<
" Max: " << chain_break_tol << std::endl;
201 return "LoopMover_SlidingWindow";