28 #include <basic/options/option.hh>
29 #include <basic/options/keys/score.OptionKeys.gen.hh>
30 #include <basic/options/keys/rna.OptionKeys.gen.hh>
37 #include <numeric/conversions.hh>
41 #include <utility/vector1.hh>
42 #include <ObjexxFCL/format.hh>
72 scale_rna_torsion_tether_( 0.05 ),
73 scale_rna_torsion_sd_( 1.0 / std::sqrt( scale_rna_torsion_tether_ ) ),
74 o4star_c1star_bond_length_( 1.414 ),
75 o4star_c1star_sd_( 0.01 ),
76 o4star_c1star_dist_harm_func_( new constraints::
HarmonicFunc( o4star_c1star_bond_length_, scale_rna_torsion_sd_ * o4star_c1star_sd_ )),
77 angle_sd_( numeric::conversions::radians( 1.0 ) ),
78 o4star_c1star_c2star_bond_angle_( numeric::conversions::radians( 106.39 ) ),
79 o4star_c1star_c2star_angle_harm_func_(
80 new constraints::
HarmonicFunc( o4star_c1star_c2star_bond_angle_, scale_rna_torsion_sd_ * angle_sd_ ) ),
81 o4star_c1star_first_base_bond_angle_( numeric::conversions::radians( 108.2 ) ),
82 o4star_c1star_first_base_angle_harm_func_(
83 new constraints::
HarmonicFunc( o4star_c1star_first_base_bond_angle_, angle_sd_ ) ),
84 c4star_o4star_c1star_bond_angle_( numeric::conversions::radians( 110.4 ) ),
85 c4star_o4star_c1star_angle_harm_func_(
86 new constraints::
HarmonicFunc( c4star_o4star_c1star_bond_angle_, scale_rna_torsion_sd_ * angle_sd_ ) ),
88 use_phenix_sugar_close_( basic::options::option[ basic::options::OptionKeys::rna::corrected_geo ]() ),
89 o4star_c1star_bond_north_(1.412),
90 o4star_c1star_bond_south_(1.415),
92 o4star_c1star_c2star_angle_north_( numeric::conversions::radians(107.6) ),
93 o4star_c1star_c2star_angle_south_( numeric::conversions::radians(105.8) ),
94 o4star_c1star_n1_9_angle_north_( numeric::conversions::radians(108.5) ),
95 o4star_c1star_n1_9_angle_south_( numeric::conversions::radians(108.2) ),
96 c4star_o4star_c1star_angle_north_( numeric::conversions::radians(109.7) ),
97 c4star_o4star_c1star_angle_south_( numeric::conversions::radians(109.9) ),
98 angle_sd1_( numeric::conversions::radians(1.0) ),
99 angle_sd2_( numeric::conversions::radians(1.5) )
174 using namespace core::scoring::constraints;
176 if ( !rsd.
is_RNA() )
return;
187 if(o4star_index!=7) utility_exit_with_message(
"o4star_id="+ObjexxFCL::string_of(o4star_index) +
"!=7");
188 if(c1star_index!=10) utility_exit_with_message(
"c1star_id="+ObjexxFCL::string_of(c1star_index) +
"!=10");
189 if(c2star_index!=11) utility_exit_with_message(
"c2star_id="+ObjexxFCL::string_of(c2star_index) +
"!=11");
190 if(c4star_index!=6) utility_exit_with_message(
"c4star_id="+ObjexxFCL::string_of(c4star_index) +
"!=16");
192 id::AtomID const o4star_id( o4star_index, i );
193 id::AtomID const c1star_id( c1star_index, i );
194 id::AtomID const c2star_id( c2star_index, i );
195 id::AtomID const c4star_id( c4star_index, i );
203 if ( delta < delta_cutoff ) {
210 angle3 =
new AngleConstraint( o4star_id, c1star_id, first_base_atom_id,
219 angle3 =
new AngleConstraint( o4star_id, c1star_id, first_base_atom_id,