40 #include <basic/Tracer.hh>
41 #include <utility/exit.hh>
42 #include <utility/stream_util.hh>
43 #include <utility/string_util.hh>
44 #include <basic/MetricValue.hh>
46 #include <utility/vector1.hh>
49 static basic::Tracer
TR(
"protocols.toolbox.PoseMetricCalculators.SaltBridgeCalculator");
53 namespace pose_metric_calculators {
58 distance_cutoff_(3.2),
67 distance_cutoff_(dist_cutoff),
78 if ( key ==
"salt_bridge" ) {
79 basic::check_cast( valptr, &
salt_bridge_total_,
"salt_bridge expects to return a Size" );
83 basic::Error() <<
"SaltBridgeCalculator cannot compute the requested metric " << key << std::endl;
90 if(key ==
"salt_bridge"){
93 basic::Error() <<
"SaltBridgeCalculator cannot compute metric " << key << std::endl;
109 if(acceptor.name3() ==
"ASP" || acceptor.name3() ==
"GLU"){
113 if(donate.name3() ==
"HIS" || donate.name3() ==
"LYS" || donate.name3() ==
"ARG"){
115 bool get_out_of_loop=
false;
118 core::chemical::AtomIndices::const_iterator
119 anum = acceptor.accpt_pos().begin(),
120 anume = acceptor.accpt_pos().end(); anum != anume; ++anum )
127 core::chemical::AtomIndices::const_iterator
128 don_num = donate.Hpos_polar_sc().begin(),
129 don_nume = donate.Hpos_polar_sc().end();
130 don_num != don_nume; ++don_num
139 get_out_of_loop=
true;