21 #include <basic/database/open.hh>
22 #include <basic/options/option.hh>
27 #include <utility/exit.hh>
28 #include <utility/io/izstream.hh>
31 #include <numeric/numeric.functions.hh>
32 #include <numeric/interpolation/interpolation.hh>
33 #include <numeric/xyzVector.hh>
38 #include <basic/options/keys/packing.OptionKeys.gen.hh>
39 #include <basic/options/keys/corrections.OptionKeys.gen.hh>
41 #include <utility/vector1.hh>
42 #include <ObjexxFCL/format.hh>
51 pair_score_min_sep_( 1 ),
52 pair_score_cb_thresh_( 16 ),
53 pair_score_bin_range_( 1.5 ),
54 pair_score_bin_base_( 3.0 ),
59 int const max_aa( 20 );
62 utility::io::izstream stream;
63 basic::database::open( stream,
"scoring/score_functions/PairEPotential/pdb_pair_stats_fine" );
69 int aa1, aa2, e1, e2, r12_bin;
72 using namespace ObjexxFCL::fmt;
74 >> bite( 2, aa1 ) >> skip( 1 )
75 >> bite( 2, aa2 ) >> skip( 1 )
76 >> bite( 2, e1 ) >> skip( 1 )
77 >> bite( 2, e2 ) >> skip( 1 )
78 >> bite( 2, r12_bin ) >> skip( 1 )
79 >> bite( 12, pair_probability ) >> skip;
86 if( pair_probability < min_prob ) pair_probability = min_prob;
89 pair_corr_( aa1, aa2, e1, e2, r12_bin ) = pair_probability;
105 using namespace core::chemical;
106 using namespace basic::options;
107 using namespace OptionKeys::packing;
109 if ( option[ use_electrostatic_repulsion ] ) {
110 for (
int e1 = 1; e1 <= 2; ++e1 ) {
111 for (
int e2 = 1; e2 <= 2; ++e2 ) {
158 int res1_num_10A_neighbors,
160 int res2_num_10A_neighbors
164 return pair_term_energy( res1, res1_num_10A_neighbors, res2, res2_num_10A_neighbors, temp1, temp2, temp3 );
170 int res1_num_10A_neighbors,
172 int res2_num_10A_neighbors,
180 using namespace basic::options;
181 using namespace core::chemical;
182 using namespace basic::options::OptionKeys;
184 using numeric::abs_difference;
185 using numeric::interpolation::interpolated;
195 if ( ( option[ corrections::score::no_his_his_pairE ] ) &&
202 if ( ( option[ corrections::score::no_his_DE_pairE ] ) &&
219 AA const aa1n( res1.
aa() );
220 if ( aa1n > pair_corr_n_AA )
return Energy( 0.0 );
221 AA const aa2n( res2.
aa() );
222 if ( aa2n > pair_corr_n_AA )
return Energy( 0.0 );
243 Distance const r12_bin_real( std::max(
246 int const r12_bin( std::max( numeric::nint( r12_bin_real ), 1 ) );
249 assert( ( r12_alpha >=
Distance( 0.0 ) ) && ( r12_alpha <=
Distance( 1.0 ) ) );
253 pair_lhood_ratio_low =
257 ( r12_bin_real ==
Distance( 0.5 ) ? pair_lhood_ratio_low :
265 pair_lhood_ratio = interpolated( r12_alpha, pair_lhood_ratio_low, pair_lhood_ratio_high );
266 return -std::log( pair_lhood_ratio );
273 int res1_num_10A_neighbors,
275 int res2_num_10A_neighbors,
279 Probability pair_lhood_ratio( 1.0 ), pair_lhood_ratio_low( 1.0 ), pair_lhood_ratio_high( 1.0 );
282 pair_lhood_ratio, pair_lhood_ratio_high, pair_lhood_ratio_low);
284 dpairE_dr = -(1/pair_lhood_ratio) *