24 #include <basic/Tracer.hh>
32 #include <numeric/random/random.hh>
34 #include <utility/vector1.hh>
39 static basic::Tracer
TR(
"protocol.abinitio.WobbleMover");
42 namespace simple_moves {
44 static numeric::random::RandomGenerator
RG(490);
47 using namespace fragment;
93 int const ccd_cycles = { 100 };
94 Real const ccd_tol = { 0.01 };
95 bool const rama_check = {
true };
96 Real const max_rama_score_increase = { 2.0 };
97 Real const max_total_delta_helix = { 10.0 };
98 Real const max_total_delta_strand = { 50.0 };
99 Real const max_total_delta_loop = { 75.0 };
102 Real forward_deviation, backward_deviation;
103 Real torsion_delta, rama_delta;
107 int const loop_begin = it->start();
108 int const loop_end = it->stop();
109 int const cutpoint = it->cut();
113 ccd_tol, rama_check, max_rama_score_increase, max_total_delta_helix,
114 max_total_delta_strand, max_total_delta_loop, forward_deviation,
115 backward_deviation, torsion_delta, rama_delta );
134 bool use_ccd ( ! ( frame.start() == 1 || frame.end() >= pose.
total_residue()-1 ) );
136 TR.Debug <<
" start : " << frame.start() <<
" buffer " << frame.start()-
buffer_length_ <<
" end: " << frame.end() <<
" total res: " << pose.
total_residue() << std::endl;
146 cut_Cterm =
RG.uniform() >= 0.5 ;
155 TR.Debug <<
"loop definitio for wobble move" << std::endl << frag_loop << std::endl;
159 TR.Debug <<
"original " << original_tree << std::endl;
162 TR.Debug <<
"for loops " << fold_tree << std::endl;
168 bool success = frame.apply( movemap, frag_num, pose );
172 if ( success && use_ccd ) {
175 if ( !success ) pose = orig_pose;
179 if ( use_ccd ) pose.
fold_tree( original_tree );