22 #include <basic/Tracer.hh>
24 #include <ObjexxFCL/FArray1D.hh>
25 #include <ObjexxFCL/format.hh>
26 #include <ObjexxFCL/string.functions.hh>
27 #include <numeric/angle.functions.hh>
33 using ObjexxFCL::fmt::F;
35 static basic::Tracer
TR(
"protocols.swa.rna.stepwise_rna_base_sugar_rotamer" );
43 StepWiseRNA_Base_Sugar_Rotamer::StepWiseRNA_Base_Sugar_Rotamer(
48 base_state_(base_state),
49 pucker_state_(pucker_state),
50 rna_fitted_torsion_info_(rna_fitted_torsion_info),
51 inputted_bin_size_( bin_size ),
52 extra_anti_chi_(false),
66 }
else if(base_state ==
SYN){
68 }
else if(base_state ==
NONE){
71 utility_exit_with_message(
"Invalid base_state_=" + ObjexxFCL::string_of(
base_state_) );
84 utility_exit_with_message(
"Invalid pucker_state_=" + ObjexxFCL::string_of(
pucker_state_) );
108 Size base_center_ID=99;
129 utility_exit_with_message(
"Invalid current_base_state" + ObjexxFCL::string_of(base_state_list_[
base_ID_] ) );
133 if (curr_pucker_state ==
NORTH) {
142 }
else if(curr_pucker_state ==
SOUTH) {
162 utility_exit_with_message(
"Invalid current_pucker_state!" + ObjexxFCL::string_of(curr_pucker_state) );
191 if(pucker_state!=
NORTH && pucker_state!=
SOUTH) utility_exit_with_message(
"pucker_state should equal NORTH or SOUTH!" );
201 using namespace ObjexxFCL;
203 Real const principal_chi=numeric::principal_angle_degrees(
chi_);
207 base_state_string=
"ZZ";
210 if(principal_chi>0.0){
212 base_state_string=
"A";
215 base_state_string=
"S";
221 return base_state_string;
235 utility_exit_with_message(
"Invalid current_pucker_state!" );