35 #include <numeric/random/random.hh>
42 #include <utility/tag/Tag.hh>
44 #include <utility/vector0.hh>
45 #include <utility/vector1.hh>
47 #include <basic/Tracer.hh>
50 #include <boost/functional/hash.hpp>
53 using namespace core::scoring;
55 static basic::Tracer
TR(
"protocols.enzdes.EnzRepackMinimize" );
57 static numeric::random::RandomGenerator
RG( 150847 );
63 EnzRepackMinimizeCreator::keyname()
const
65 return EnzRepackMinimizeCreator::mover_name();
69 EnzRepackMinimizeCreator::create_mover()
const
75 EnzRepackMinimizeCreator::mover_name()
77 return "EnzRepackMinimize";
80 EnzRepackMinimize::EnzRepackMinimize() :
81 protocols::moves::
Mover(
"EnzRepackMinimize" ),
83 design_( false ), repack_( false ), fix_catalytic_( false ),
84 minimize_in_stages_( false ), min_rb_( true ), min_sc_( false ), min_bb_( false ),
85 min_lig_( false ), minimize_prot_jumps_( false ), backrub_( false ),
91 protocols::moves::
Mover ( name ),
93 design_( false ), repack_( false ), fix_catalytic_( false ),
94 minimize_in_stages_( false ), min_rb_( true ), min_sc_( false ), min_bb_( false ),
95 min_lig_( false ), minimize_prot_jumps_( false ), backrub_( false ),
123 (*scorefxn_repack_)(pose);
128 TR<<
"Starting PolyAla CstOptimization..."<<std::endl;
130 enzprot->cst_minimize(pose,
task_,
true);
134 TR<<
"Starting Design/Repack..."<<std::endl;
138 TR<<
"Starting Minimization..."<<std::endl;
142 enzprot->cst_minimize(pose,
task_,
false );
153 std::vector<core::Size> residues;
155 if (movemap->get_bb(i) ) residues.push_back(i);
157 TR<<
"Now Backrub minimizing: min_sc "<<
min_sc_<<
" min_bb "<<
min_bb_<<std::endl;
165 (*scorefxn_minimize_)(pose);
166 TR<<
"Finished Cyle#"<< i <<
" of EnzRepackMinimize"<<std::endl;
168 TR<<
"Finished EnzRepackMinimize"<<std::endl;
180 using namespace core::pack::task;
181 TR<<
"Creating packer task based on specified task operations..."<< std::endl;
200 enzprot->set_minimize_options( min_sc,
false,min_rb,min_lig );
201 enzprot->cst_minimize(pose, task, cstopt);
203 TR<<
"Finished non-bb dof minimization"<<std::endl;
205 enzprot->set_minimize_options(
false,
true,
min_rb_,
false);
206 enzprot->cst_minimize(pose, task, cstopt);
208 TR<<
"Finished bb dof minimization"<<std::endl;
216 if( !enzobs )
return;
218 if (enzobs->cst_cache() ){
220 TR<<
"Setting up Scorefunction to include constraints..."<<std::endl;
238 design_ = tag->getOption<
bool>(
"design", 0 );
239 repack_ = tag->getOption<
bool>(
"repack_only", 0 );
241 cst_opt_ = tag->getOption<
bool>(
"cst_opt", 0 );
242 backrub_ = tag->getOption<
bool>(
"backrub", 0 );
244 if( tag->hasOption(
"minimize_rb" ) )
245 set_min_rb( tag->getOption<
bool>(
"minimize_rb", 1 ) );
246 if( tag->hasOption(
"minimize_bb" ) )
247 set_min_bb( tag->getOption<
bool>(
"minimize_bb", 0 ) );
248 if( tag->hasOption(
"minimize_sc" ) )
249 set_min_sc( tag->getOption<
bool>(
"minimize_sc", 1 ) );
250 if( tag->hasOption(
"minimize_lig" ) )
251 set_min_lig( tag->getOption<
bool>(
"minimize_lig", 0 ) );
252 if( tag->hasOption(
"minimize_prot_jumps" ) )
257 using namespace core::scoring;
261 if (design_ && repack_) utility_exit_with_message(
"Can't both Design and Repack_Only. Check xml file");
262 if (minimize_in_stages_ && (!
min_bb_) )utility_exit_with_message(
"EnzRepackMinimize cant minimize in stages without minimize_bb set to 1. Check xml file." );
266 TR<<
"design="<<design_<<
", with repack scorefxn "<<scorefxn_repack<<
" and minimize scorefxn "<<scorefxn_minimize<<std::endl;