39 #include <basic/options/keys/OptionKeys.hh>
44 #include <numeric/xyzVector.hh>
45 #include <numeric/random/random.hh>
59 #include <basic/Tracer.hh>
106 #include <utility/vector1.hh>
110 using basic::Warning;
115 #include <utility/vector0.hh>
119 namespace protocols {
120 namespace simple_moves {
122 static numeric::random::RandomGenerator
rg(15433);
125 protocols::moves::
Mover(
"ShakeStructureMover"),
130 ensemble_ca_rmsd(-1),
131 ensemble_ca_rmsd_tolerance(0.75f),
132 is_properly_initialized(false),
133 harmonic_ca_cst_std_dev(2.0f),
134 scorefunction_initialized(false),
138 skip_low_temp_phase(true),
144 protocols::moves::
Mover(
"ShakeStructureMover"),
149 ensemble_ca_rmsd(-1),
150 ensemble_ca_rmsd_tolerance(0.75),
151 is_properly_initialized(false),
152 harmonic_ca_cst_std_dev(2.0),
153 scorefunction_initialized(true),
157 skip_low_temp_phase(true),
166 protocols::moves::
Mover(
"ShakeStructureMover"),
167 mc_temp(temperature),
171 ensemble_ca_rmsd(-1),
172 ensemble_ca_rmsd_tolerance(0.75),
173 is_properly_initialized(false),
174 harmonic_ca_cst_std_dev(2.0),
175 scorefunction_initialized(true),
179 skip_low_temp_phase(true),
188 protocols::moves::
Mover(
"ShakeStructureMover"),
193 ensemble_ca_rmsd(ens_diversity),
194 ensemble_ca_rmsd_tolerance(ens_div_tolerance),
195 is_properly_initialized(false),
196 harmonic_ca_cst_std_dev(2.0),
197 scorefunction_initialized(true),
201 skip_low_temp_phase(true),
362 using namespace core;
363 using namespace core::pose;
364 using namespace utility;
365 using namespace basic::options;
366 using namespace basic::options::OptionKeys;
367 using namespace core::scoring;
368 using namespace core::scoring::constraints;
380 return "ShakeStructureMover";
408 if(mc_temp <= 0 && ensemble_ca_rmsd > 0){
429 float const minimizer_tol = 0.0000001;
431 "dfpmin_armijo_nonmonotone",
449 min_struc.
run(p,mm,one_tenth_orig,options);
452 min_struc.
run(p,mm,one_third_orig,options);
454 min_struc.
run(p,mm,s,options);
462 float const CA_cutoff,
466 using namespace core::scoring::constraints;
467 using namespace core::id;
468 using namespace core;
473 for(
int i = 1; i <= nres; i++){
476 for(
int j = 1; j <=nres; j++){
479 Real const CA_dist = (CA_i - CA_j).length();
480 if(CA_dist < CA_cutoff){
498 gsmall->angle_max(
'H', small_H_angle_max );
499 gsmall->angle_max(
'E', small_E_angle_max );
500 gsmall->angle_max(
'L', small_L_angle_max );
502 gshear->angle_max(
'H', shear_H_angle_max);
503 gshear->angle_max(
'E', shear_E_angle_max);
504 gshear->angle_max(
'L', shear_L_angle_max);
515 using namespace protocols;
516 using namespace moves;
529 small_mover,shear_mover,
534 apply_random_move->add_mover( small_mover, .5);
535 apply_random_move->add_mover( shear_mover, .5);
541 small_mover_low,shear_mover_low,
546 apply_random_move_low->add_mover( small_mover_low, .5);
547 apply_random_move_low->add_mover( shear_mover_low, .5);
554 mc->set_temperature(temperature);
558 full_cycle->apply( p );
562 mc->reset_counters();
564 mc->set_lowest_score_pose(mc->last_accepted_pose());
566 mc->set_temperature(low_temp);
570 full_cycle_2->apply( p );
572 p = mc->lowest_score_pose();
574 p = mc->last_accepted_pose();
610 double avg_ca_rmsd=0;
611 for(
int i =0;i<numstruct;i++){
613 run_mc(test, s,temperature);
617 avg_ca_rmsd = avg_ca_rmsd /numstruct;
619 temperature -= increment;
623 temperature += increment;
633 using namespace protocols;
634 using namespace moves;