17 #include <basic/Tracer.hh>
33 #include <utility/exit.hh>
50 #include <utility/vector1.hh>
51 #include <basic/options/keys/OptionKeys.hh>
66 using namespace chemical;
67 using namespace conformation;
68 using namespace protocols::loophash;
69 using namespace basic::options;
70 using namespace basic::options::OptionKeys;
71 using namespace utility;
80 static basic::Tracer
TR(
"protocols.loophash.FastGapMover" );
83 Mover(
"FastGapMover"),
93 loop_sizes.push_back(i);
114 if( working_pose->is_fullatom() ){
121 while( next_gap != 0 ) {
122 TR <<
"Attempting to fix gap following residue " << next_gap << std::endl;
123 std::vector< Pose > lib_structs;
130 TR <<
"Trying loopsize " << ++loop_size << std::endl;
131 lhsampler_->set_start_res( next_gap + 3 < loop_size ? 0 : next_gap + 3 - loop_size );
133 lhsampler_->close_gaps( *working_pose, lib_structs, loop_size );
135 if( lib_structs.size() != 0 ) {
136 working_pose =
new Pose (lib_structs[0]);
141 pose = *working_pose;
149 Real const chain_break_cutoff = { 4.0 };
154 for (
Size i = idx + 1; i < nres; ++i ) {
161 gap_distance = std::sqrt(dist_squared);
162 if (dist_squared > chain_break_cutoff || dist_squared < 0.1) {
173 return "FastGapMover";