35 #include <utility/tag/Tag.hh>
38 #include <utility/excn/Exceptions.hh>
39 #include <basic/Tracer.hh>
42 namespace simple_filters {
44 static basic::Tracer
TR(
"protocols.simple_filters.InterfaceBindingEnergyDensityFilter" );
54 Filter(
"InterfaceBindingEnergyDensityFilter" ),
57 upper_threshold_( 0.0 )
65 Filter(
"InterfaceBindingEnergyDensityFilter" ),
66 sasa_filter_( sasa_filter ),
67 ddG_filter_( ddG_filter ),
68 upper_threshold_( threshold )
97 if ( ! tag->hasOption(
"sasa_filter") ) {
98 throw utility::excn::EXCN_RosettaScriptsOption(
"InterfaceBindingEnergyDensityFilter requires the sasa_filter option" );
100 if ( ! tag->hasOption(
"ddG_filter") ) {
101 throw utility::excn::EXCN_RosettaScriptsOption(
"InterfaceBindingEnergyDensityFilter requires the ddG_filter option" );
105 filters::Filters_map::const_iterator sasaiter = filters_map.find( sasa_filter_name );
106 if ( sasaiter == filters_map.end() ) {
107 throw utility::excn::EXCN_RosettaScriptsOption(
"Could not locate requested sasa_filter with name " + sasa_filter_name +
" in the Filters_map." );
112 throw utility::excn::EXCN_RosettaScriptsOption(
"Dynamic cast of filter " + sasa_filter_name +
" to type InterfaceSasaFilter failed" );
116 filters::Filters_map::const_iterator ddGiter = filters_map.find( ddG_filter_name );
117 if ( ddGiter == filters_map.end() ) {
118 throw utility::excn::EXCN_RosettaScriptsOption(
"Could not locate requested ddG_filter with name " + ddG_filter_name +
" in the Filters_map." );
123 throw utility::excn::EXCN_RosettaScriptsOption(
"Dynamic cast of filter " + ddG_filter_name +
" to type DdgFilter failed" );
135 core::Real const binding_energy_density( ddG / sasa );
137 TR <<
"SASA is "<<sasa<<
". ddG is "<<ddG <<
". Ratio is " << binding_energy_density <<
". ";
139 TR<<
"passing." <<std::endl;
143 TR<<
"failing."<<std::endl;
152 core::Real const binding_energy_density( ddG / sasa );
154 out <<
"SASA is "<<sasa<<
". ddG is "<<ddG <<
". Ratio is " << binding_energy_density <<
". ";
161 core::Real const binding_energy_density( ddG / sasa );
163 return binding_energy_density;
170 core::Real const binding_energy_density( ddG / sasa );
172 return binding_energy_density;