29 #include <boost/foreach.hpp>
30 #define foreach BOOST_FOREACH
37 #include <basic/options/option.hh>
58 #include <basic/Tracer.hh>
61 #include <numeric/random/random.hh>
62 #include <utility/tag/Tag.hh>
71 #include <basic/options/keys/MonteCarlo.OptionKeys.gen.hh>
72 #include <basic/options/keys/loops.OptionKeys.gen.hh>
75 #include <utility/vector1.hh>
76 #include <ObjexxFCL/format.hh>
79 using namespace ObjexxFCL::fmt;
83 namespace loop_mover {
89 static numeric::random::RandomGenerator
RG(84846);
90 static basic::Tracer
TR(
"protocols.loops.loop_mover.refine.LoopMover_Refine_CCD");
95 LoopMover_Refine_CCD::LoopMover_Refine_CCD()
97 set_fold_tree_from_loops_(false),
98 user_defined_move_map_(false),
101 max_inner_cycles_(200),
115 set_fold_tree_from_loops_(false),
116 user_defined_move_map_(false),
119 max_inner_cycles_(200),
135 set_fold_tree_from_loops_(false),
136 user_defined_move_map_(false),
139 max_inner_cycles_(200),
155 return "LoopMover_Refine_CCD";
198 "\nFinal temperature: " << mover.
temp_final_ <<
"\nSet fold tree from loop?: " <<
201 else {os <<
"none" << std::endl;}
208 using namespace basic::options;
209 if ( option[ OptionKeys::loops::outer_cycles ].user() )
211 if ( option[ OptionKeys::loops::max_inner_cycles ].user() )
213 if ( option[ OptionKeys::loops::repack_period ].user() )
215 if ( option[ OptionKeys::MonteCarlo::temp_initial ].user() )
216 temp_initial_ = option[ OptionKeys::MonteCarlo::temp_initial ]();
217 if ( option[ OptionKeys::MonteCarlo::temp_final ].user() )
218 temp_final_ = option[ OptionKeys::MonteCarlo::temp_final ]();
222 repack_neighbors_ = (! basic::options::option[ basic::options::OptionKeys::loops::fix_natsc ]);
230 runtime_assert( task_factory_in );
243 bool specified_movemap(
false );
245 if( tag->getName() ==
"MoveMap" ) specified_movemap =
true;
248 if( specified_movemap ){
255 if( tag->hasOption(
"loops" ) ){
260 if( tag->hasOption(
"task_operations") ){
276 using namespace scoring;
277 using namespace basic::options;
280 int const fast( option[ OptionKeys::loops::fast ] );
304 mc->boltzmann( pose, move_type );
325 mc->set_temperature( mc->temperature() * temperature_ramp_factor );
326 tr().Info <<
"refinement cycle (outer/inner): " << i <<
"/" <<
outer_cycles_ <<
" ";
329 inner_cycle->apply( pose );
331 tr().Info << std::flush;
336 pose = mc->lowest_score_pose();
381 return "LoopMover_Refine_CCD";
419 using namespace core::pack::task;
420 using namespace core::pack::task::operation;
431 restrict_to_loops_and_neighbors->set_cutoff_distance( 10.0 );
432 restrict_to_loops_and_neighbors->set_design_loop(
redesign_loop_ );
434 restrict_to_loops_and_neighbors->set_loops(
loops() );
441 base_packer_task =
task_factory_->create_task_and_apply_taskoperations( pose );
442 base_packer_task->set_bump_check(
true );
443 return base_packer_task;
447 Size iteration_number,
459 tr().Info <<
"cycle: " << iteration_number <<
" " << (*local_scorefxn)(pose) << std::endl;
466 std::ofstream out(
"score.tmp_repack_fa");
467 out <<
"scoring for repack_fa " << (*
ramping_scorefxn())(pose) << std::endl;