21 #include <basic/Tracer.hh>
30 #include <utility/tag/Tag.hh>
41 #include <basic/MetricValue.hh>
42 #include <numeric/random/random.hh>
44 #define foreach BOOST_FOREACH
55 #include <ObjexxFCL/FArray1D.hh>
56 #include <ObjexxFCL/FArray1D.fwd.hh>
69 #include <utility/vector0.hh>
70 #include <utility/vector1.hh>
71 #include <ObjexxFCL/format.hh>
78 using namespace core::scoring;
79 using namespace ObjexxFCL::fmt;
81 static numeric::random::RandomGenerator
RG( 140845 );
84 namespace protein_interface_design {
87 static basic::Tracer
TR(
"protocols.protein_interface_design.filters.HbondsToResidueFilter" );
94 HbondsToResidueFilterCreator::keyname()
const {
return "HbondsToResidue"; }
97 HbondsToResidueFilter::apply(
Pose const & pose )
const {
99 TR<<
"found "<<hbonded_res<<
" hbond to target residue " << resnum_;
100 if( hbonded_res >= partners_ ) {
101 TR <<
". passing." << std::endl;
105 TR <<
". failing." << std::endl;
113 partners_ = tag->getOption<
core::Size>(
"partners" );
114 energy_cutoff_ = tag->getOption<
core::Real>(
"energy_cutoff", -0.5 );
115 bb_bb_ = tag->getOption<
bool>(
"bb_bb", 0 );
116 backbone_ = tag->getOption<
bool>(
"backbone", 0 );
117 sidechain_ = tag->getOption<
bool>(
"sidechain", 1 );
120 TR<<
"Hbonds to residue filter for resnum "<<resnum_<<
" with "<<partners_<<
" hbonding partners"<<std::endl;
127 out<<
"Number of residues hbonded to "<<resnum_<<
" is " << hbonded_res <<
'\n';
133 return( hbonded_res );
137 HbondsToResidueFilter::compute(
Pose const & pose )
const {
143 (*scorefxn)(temp_pose);
148 if( resnum_ >= chain2begin ) {
149 partner_begin = 1; partner_end = chain2begin-1;
152 partner_begin = chain2begin; partner_end = temp_pose.
total_residue();
154 std::set<Size> binders;
155 for( Size i=partner_begin; i<=partner_end; ++i ) binders.insert( i );
157 std::list< Size> hbonded_res(
hbonded( temp_pose, resnum_, binders, backbone_, sidechain_, energy_cutoff_, bb_bb_) );
159 return( hbonded_res.size() );
162 HbondsToResidueFilter::~HbondsToResidueFilter() {}