34 #include <numeric/xyz.functions.hh>
35 #include <basic/Tracer.hh>
36 #include <basic/basic.hh>
45 static basic::Tracer
TR(
"protocols.simple_moves.oop.OopPatcher" );
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;
78 TR <<
"added atom pair constraint to oop at residue: " << oop_seq_position <<
" with distance: " << distance <<
" and std: "<< std << std::endl;
84 TR<<
"patching residues" <<std::endl;
87 runtime_assert_msg ( oop_pre_pos_ != pose.
total_residue(),
"beginning of oop cannot be last residue" );
89 runtime_assert ( oop_post_pos_ != 1 );
95 TR <<
"pre restype basename: " << pre_base_name << std::endl;
96 TR <<
"post restype basename: " << post_base_name << std::endl;
99 if ( pre_base_name ==
"PRO" || pre_base_name ==
"DPRO" ||
100 post_base_name ==
"PRO" || post_base_name ==
"DPRO" )
102 utility_exit_with_message(
"Cannot patch proline");
106 utility_exit_with_message(
"Cannot patch OOP_PRE on an OOP_POST");
110 utility_exit_with_message(
"Cannot patch OOP_POST on an OOP_PRE");
116 TR<<
"patching pre" <<std::endl;
120 TR<< pre_base_type.
name() << std::endl;
124 TR<< replace_res_pre.name() << std::endl;
126 replace_res_pre.set_all_chi(pose.
residue(oop_pre_pos_).
chi());
135 TR<<
"patching post" <<std::endl;
138 TR<< post_base_type.
name() << std::endl;
165 OopPatcher::get_name()
const {
170 OopPatcher::OopPatcher(
172 ):
Mover(), oop_pre_pos_(oop_seq_position), oop_post_pos_(oop_seq_position+1)