22 #include <basic/Tracer.hh>
23 #include <basic/options/option.hh>
24 #include <basic/options/keys/in.OptionKeys.gen.hh>
61 static basic::Tracer
TR(
"protocols.antibody2.RefineOneCDRLoopCentroid");
72 RefineOneCDRLoopCentroid::RefineOneCDRLoopCentroid(
AntibodyInfoCOP antibody_info,
112 TR <<
"Finished Setting Defaults" << std::endl;
126 return "RefineOneCDRLoopCentroid";
138 TR<<
" start finalize_setup function ..."<<std::endl;
143 TR<<
" finish finalize_setup function !!!"<<std::endl;
150 TR<<
"start apply function ..."<<std::endl;
158 TR<<
"finish apply function !!!"<<std::endl;
183 Size const loop_begin,
184 Size const loop_end ){
185 using namespace protocols;
186 using namespace protocols::simple_moves;
187 using namespace protocols::loops;
188 using namespace protocols::moves;
200 loop_map->set_chi(
false );
201 loop_map->set_bb(
false );
203 for(
Size ii = loop_begin; ii <= loop_end; ii++ ){
204 allow_bb_move[ ii ] =
true;
206 loop_map->set_bb( allow_bb_move );
207 loop_map->set_jump( 1,
false );
210 Size loop_size = ( loop_end - loop_begin ) + 1;
211 Size cutpoint = loop_begin +
Size(loop_size/2);
213 loops::Loop one_loop( loop_begin, loop_end, cutpoint, 0,
false );
226 Real min_tolerance = 0.001;
233 Size n_small_moves ( numeric::max(
Size(5),
Size(loop_size/2)) );
234 Size inner_cycles( loop_size );
235 Size outer_cycles( 1 );
248 Real high_move_temp = 2.00;
252 small_mover->angle_max(
'H', 2.0 );
253 small_mover->angle_max(
'E', 5.0 );
254 small_mover->angle_max(
'L', 6.0 );
256 shear_mover->angle_max(
'H', 2.0 );
257 shear_mover->angle_max(
'E', 5.0 );
258 shear_mover->angle_max(
'L', 6.0 );
264 wiggle_cdr_centroid_loop_->add_mover( small_mover );
265 wiggle_cdr_centroid_loop_->add_mover( shear_mover );
266 wiggle_cdr_centroid_loop_->add_mover( ccd_cycle );
269 loop_min_mover->apply( pose_in );
271 Real const init_temp( 2.0 );
272 Real const last_temp( 0.5 );
273 Real const gamma = std::pow( (last_temp/init_temp), (1.0/inner_cycles));
274 Real temperature = init_temp;
278 mc->reset( pose_in );
281 for(Size i = 1; i <= outer_cycles; i++) {
282 mc->recover_low( pose_in );
285 for ( Size j = 1; j <= inner_cycles; j++ ) {
286 temperature *= gamma;
287 mc->set_temperature( temperature );
288 wiggle_cdr_centroid_loop_->apply( pose_in );
289 loop_min_mover->apply( pose_in );
291 mc->boltzmann( pose_in );
295 mc->recover_low( pose_in );
300 loop_min_mover->apply( pose_in );