29 #include <basic/options/option.hh>
71 #include <basic/options/keys/packing.OptionKeys.gen.hh>
81 #include <ObjexxFCL/string.functions.hh>
86 #include <numeric/trig.functions.hh>
87 #include <numeric/xyzMatrix.fwd.hh>
91 #include <basic/Tracer.hh>
96 #include <basic/options/keys/docking.OptionKeys.gen.hh>
98 #include <utility/vector0.hh>
99 #include <utility/vector1.hh>
103 using basic::Warning;
105 static basic::Tracer
TR(
"protocols.symmetric_docking.SymDockingHiRes");
107 using namespace core;
109 namespace protocols {
110 namespace symmetric_docking {
113 SymDockingHiRes::SymDockingHiRes() : Mover()
126 ) : Mover(), scorefxn_(scorefxn_in), scorefxn_pack_(scorefxn_pack_in)
171 using namespace basic::options;
172 using namespace core::pack::task;
173 using namespace core::pack::task::operation;
176 (*scorefxn_)( pose );
180 trans_magnitude_ = option[ OptionKeys::docking::dock_mcm_trans_magnitude ]();
181 rot_magnitude_ = option[ OptionKeys::docking::dock_mcm_rot_magnitude ]();
184 rtmin_ = option[ OptionKeys::docking::dock_rtmin ]();
185 scmin_ = option[ OptionKeys::docking::sc_min ]();
218 using namespace basic::options;
220 if ( option[ OptionKeys::docking::dock_min ]() ) {
223 else if ( option[ OptionKeys::docking::dock_ppk ]() ){
331 using namespace scoring;
332 using namespace basic::options;
334 TR <<
"in SymDockingHiRes.apply" << std::endl;
344 mc_->recover_low( pose );
349 return "SymDockingHiRes";
372 using namespace moves;
374 TR <<
"::::::::::::::::::DOCK_MIN:::::::::::::::::::" << std::endl;
403 using namespace moves;
404 using namespace basic::options;
405 using namespace core::pack::task;
406 using namespace core::pack::task::operation;
407 using namespace core::conformation::symmetry;
408 using namespace protocols::toolbox::task_operations;
412 dynamic_cast<SymmetricConformation & > ( pose.
conformation()) );
414 std::map< Size, SymDof > dofs ( symm_conf.
Symmetry_Info()->get_dofs() );
429 std::string const flex_bb_docking_type = option[ OptionKeys::docking::flexible_bb_docking ]();
430 if ( flex_bb_docking_type ==
"fixedbb" ) {
433 pack_interface_repack->task_factory(
tf_);
434 interface_repack_and_move_loops->add_mover( pack_interface_repack );
439 pack_interface_repack->task_factory(
tf_);
440 interface_repack_and_move_loops->add_mover( pack_interface_repack );
443 if ( ( flex_bb_docking_type ==
"ccd" ) || ( flex_bb_docking_type ==
"kic" ) || ( flex_bb_docking_type ==
"backrub" ) ) {
490 TR <<
"[ ERROR ] flexible_bb_docking is not implemented for symmetric docking yet..." << std::endl;
494 TR <<
"[ ERROR ] Unknown flexible_bb_docking type: " << flex_bb_docking_type << std::endl;
498 interface_repack_and_move_loops->add_mover( pack_interface_repack );
502 TrialMoverOP pack_interface_and_move_loops_trial =
new TrialMover( interface_repack_and_move_loops,
mc_ );
513 rb_mover->add_mover( rb_perturb );
525 repack_step->add_mover(rb_mover_min_trial);
528 repack_step->add_mover( pack_interface_and_move_loops_trial );
530 if (
scmin_) repack_step->add_mover(scmin_trial);
533 CycleMoverOP rb_mover_min_trial_repack =
new CycleMover;
534 for (
Size i=1; i<
repack_period_; ++i ) rb_mover_min_trial_repack->add_mover( rb_mover_min_trial );
535 rb_mover_min_trial_repack->add_mover( repack_step );
539 initial_repack->add_mover(pack_interface_and_move_loops_trial);
541 if (
scmin_) initial_repack->add_mover(scmin_trial);
547 RepeatMoverOP mcm_four_cycles =
new RepeatMover( rb_mover_min_trial, 4 );
548 RepeatMoverOP mcm_fortyfive_cycles =
new RepeatMover( rb_mover_min_trial_repack, 45 );
550 TR <<
"::::::::::::::::::DOCK_MCM:::::::::::::::::::" << std::endl;
564 using namespace basic::options;
565 using namespace core::pack::task;
566 using namespace core::pack::task::operation;
571 TR <<
"Using user-defined TaskFactory." << std::endl;
575 TR <<
"Designing during docking" << std::endl;
584 if( option[OptionKeys::packing::resfile].user() )
tf_->push_back(
new ReadResfile );
589 unboundrot->initialize_from_command_line();
591 tf_->push_back( unboundrot_operation );
599 using namespace moves;
600 using namespace basic::options;
601 using namespace core::pack::task;
602 using namespace core::pack::task::operation;
603 using namespace core::conformation::symmetry;
607 dynamic_cast<SymmetricConformation & > ( pose.
conformation()) );
609 std::map< Size, SymDof > dofs ( symm_conf.
Symmetry_Info()->get_dofs() );
611 TR <<
"::::::::::::::::::DOCK_PPK:::::::::::::::::::" << std::endl;
616 translate_away->step_size( 1000 );
617 translate_back->step_size( -1000 );