28 #include <utility/vector1.hh>
29 #include <basic/Tracer.hh>
32 static basic::Tracer
tr(
"core.scoring.rna.RNA_Mg_KnowledgeBasedPotential");
40 gaussian_parameter_phosphate_oxygen_(-5.93, 2.22, 0.55 ),
41 gaussian_parameter_imine_ (-3.41, 2.40, 0.33 ),
42 gaussian_parameter_exocyclic_oxygen_(-4.20, 2.33, 0.43 ),
43 gaussian_parameter_o2star_ (-3.88, 2.54, 0.34 ),
44 gaussian_parameter_phosphate_p_ ( 5.00, 2.00, 0.25 ),
45 gaussian_parameter_polar_H_ ( 5.00, 2.25, 0.50 ),
46 gaussian_parameter_nonpolar_H_ ( 5.00, 2.00, 0.50 ),
49 gaussian_parameter_phosphate_oxygen_indirect_(-1.96, 4.07, 0.51 ),
50 gaussian_parameter_imine_indirect_ (-1.24, 4.18, 0.28 ),
51 gaussian_parameter_exocyclic_oxygen_indirect_(-1.93, 4.08, 0.45 ),
52 gaussian_parameter_o2star_indirect_ (-1.28, 4.10, 0.37 ),
54 gaussian_parameter_costheta_phosphate_oxygen_( 1.00, -0.91, 0.49 ),
55 gaussian_parameter_costheta_imine_ ( 1.00, -0.97, 0.18 ),
56 gaussian_parameter_costheta_exocyclic_oxygen_( 1.00, -0.79, 0.34 ),
57 gaussian_parameter_costheta_o2star_ ( 1.00, -0.91, 0.49 ),
58 gaussian_parameter_costheta_polar_H_ ( 1.00, -1.00, 0.25 ),
59 gaussian_parameter_costheta_nonpolar_H_ ( 1.00, -1.00, 0.25 ),
61 gaussian_parameter_costheta_phosphate_oxygen_indirect_( 1.00, -0.74, 0.55 ),
62 gaussian_parameter_costheta_imine_indirect_ ( 1.00, -0.94, 0.46 ),
63 gaussian_parameter_costheta_exocyclic_oxygen_indirect_( 1.00, -0.56, 0.61 ),
64 gaussian_parameter_costheta_o2star_indirect_ ( 1.00, -0.74, 0.55 )
72 bool is_phosphate_oxygen(
false );
84 is_phosphate_oxygen =
false;
93 if ( atom_type_name ==
"OOC" ) {
94 is_phosphate_oxygen =
true;
96 }
else if ( atom_type_name ==
"Nhis" ) {
98 }
else if ( atom_type_name ==
"OCbb" ) {
100 }
else if ( rsd.
atom_name( j ) ==
" O2*" ){
104 }
else if ( atom_type_name ==
"Hpol" ){
106 }
else if ( atom_type_name ==
"Hapo" ) {
124 if ( atom_type_name ==
"OOC" ) {
126 }
else if ( atom_type_name ==
"Nhis" ) {
128 }
else if ( atom_type_name ==
"OCbb" ) {
130 }
else if ( rsd.
atom_name( j ) ==
" O2*" ){
148 if ( atom_type_name ==
"OOC" ) {
150 }
else if ( atom_type_name ==
"Nhis" ) {
152 }
else if ( atom_type_name ==
"OCbb" ) {
154 }
else if ( rsd.
atom_name( j ) ==
" O2*" ){
156 }
else if ( atom_type_name ==
"Hpol" ){
158 }
else if ( atom_type_name ==
"Hapo" ) {
175 if ( atom_type_name ==
"OOC" ) {
177 }
else if ( atom_type_name ==
"Nhis" ) {
179 }
else if ( atom_type_name ==
"OCbb" ) {
181 }
else if ( rsd.
atom_name( j ) ==
" O2*" ){
214 atom_numbers.resize( total_residue );
215 is_magnesium.resize( total_residue );
217 for (
Size i = 1; i <= total_residue; i++ ) {
220 is_magnesium[ i ] =
false;
221 atom_numbers[ i ].clear();
223 if ( rsd.is_RNA() ) {
227 for (
Size j = 1; j <= rsd.natoms(); j++ ){
230 if ( gaussian_parameter.
center > 0.0 ) atom_numbers[ i ].push_back( j );
233 }
else if ( rsd.name3() ==
" MG" ){
234 is_magnesium[ i ] =
true;