34 #include <numeric/xyz.functions.hh>
35 #include <basic/Tracer.hh>
36 #include <basic/basic.hh>
45 static basic::Tracer
TR(
"protocols.simple_moves.hbs.HbsPatcher" );
49 using namespace conformation;
50 using namespace chemical;
51 using namespace core::id;
54 namespace simple_moves {
63 using namespace core::id;
64 using namespace core::scoring;
65 using namespace core::scoring::constraints;
77 TR <<
"added atom pair constraint to hbs with distance: " << distance <<
" and std: "<< std << std::endl;
83 TR<<
"patching residues" <<std::endl;
86 runtime_assert_msg ( hbs_pre_pos_ != pose.
total_residue(),
"beginning of hbs cannot be last residue" );
90 runtime_assert ( hbs_post_pos_ != 1 );
96 TR <<
"pre restype basename: " << pre_base_name << std::endl;
97 TR <<
"post restype basename: " << post_base_name << std::endl;
100 if ( pre_base_name ==
"PRO" || pre_base_name ==
"DPRO" ||
101 post_base_name ==
"PRO" || post_base_name ==
"DPRO" )
103 utility_exit_with_message(
"Cannot patch proline");
107 utility_exit_with_message(
"Cannot patch HBS_PRE on an HBS_POST");
111 utility_exit_with_message(
"Cannot patch HBS_POST on an HBS_PRE");
117 TR<<
"patching pre" <<std::endl;
121 TR<< pre_base_type.
name() << std::endl;
125 TR<< replace_res_pre.name() << std::endl;
127 replace_res_pre.set_all_chi(pose.
residue(hbs_pre_pos_).
chi());
136 TR<<
"patching post" <<std::endl;
139 TR<< post_base_type.
name() << std::endl;
166 HbsPatcher::get_name()
const {
171 HbsPatcher::HbsPatcher(
173 ):
Mover(), hbs_pre_pos_(hbs_seq_position), hbs_post_pos_(hbs_seq_position+2)