26 #include <basic/Tracer.hh>
28 #include <utility/tag/Tag.hh>
30 #include <ObjexxFCL/FArray1D.hh>
31 #include <ObjexxFCL/FArray1D.fwd.hh>
33 #include <utility/vector0.hh>
34 #include <utility/vector1.hh>
42 namespace protein_interface_design {
47 using namespace core::scoring;
48 using namespace protocols::moves;
50 static basic::Tracer
TR(
"protocols.protein_interface_design.movers.DesignMinimizeHbonds" );
66 return "DesignMinimizeHbonds";
86 bool const repack_partner1,
87 bool const repack_partner2,
88 bool const repack_non_ala
105 runtime_assert( bb_hbond || sc_hbond );
115 bool const acceptors,
120 bool const repack_partner1,
121 bool const repack_partner2,
122 bool const repack_non_ala
200 using ObjexxFCL::FArray1D_bool;
211 std::set< core::Size > potential_hbond_partners;
223 Real const distance( resi.xyz( resi.nbr_atom() ).
distance( res_target.xyz( res_target.nbr_atom() ) ) );
226 potential_hbond_partners.insert( i );
236 std::set< core::Size > hbonded_residues;
241 hbonded_residues.insert( new_list.begin(), new_list.end() );
246 if( potential_hbond_partners.find( i ) == potential_hbond_partners.end() ) {
247 to_Ala_task->nonconst_residue_task(i).prevent_repacking();
250 if( hbonded_residues.find( i ) == hbonded_residues.end() ) {
251 TR<<
"reverting "<< i <<
'\n';
253 revert_type[ saved_pose.
residue( i ).
aa() ] =
true;
254 to_Ala_task->nonconst_residue_task( i ).restrict_absent_canonical_aas( revert_type );
257 to_Ala_task->nonconst_residue_task(i).prevent_repacking();
261 (*scorefxn_minimize_)( pose );
276 TR<<
"DesignMinimizeHbonds with the following parameters: "<<std::endl;
277 donors_ = tag->getOption<
bool>(
"donors" );
278 acceptors_ = tag->getOption<
bool>(
"acceptors" );
279 bb_hbond_ = tag->getOption<
bool>(
"bb_hbond", 0 );
280 sc_hbond_ = tag->getOption<
bool>(
"sc_hbond", 1 ) ;
285 using namespace core::scoring;
298 runtime_assert( (
donors_ || acceptors_ ) || ( bb_hbond_ && !sc_hbond_ ) );
299 runtime_assert( bb_hbond_ || sc_hbond_ );
300 runtime_assert( hbond_energy_threshold_ <= 0 );
301 runtime_assert(interface_distance_cutoff_ >= 0 );
305 TR<<
"WARNING WARNING: no target residue defined for hbond design minimize"<<std::endl;