41 #include <numeric/random/random.hh>
42 #include <basic/options/option.hh>
46 #include <utility/tag/Tag.hh>
50 #include <ObjexxFCL/FArray1D.hh>
51 #include <ObjexxFCL/FArray1D.fwd.hh>
66 #include <basic/options/keys/packing.OptionKeys.gen.hh>
69 #include <utility/vector0.hh>
70 #include <utility/vector1.hh>
71 #include <basic/Tracer.hh>
75 #define foreach BOOST_FOREACH
78 using namespace core::scoring;
80 static basic::Tracer
TR(
"protocols.simple_moves.DesignRepackMover" );
82 static numeric::random::RandomGenerator
RG( 150845 );
85 namespace simple_moves {
87 using namespace protocols::moves;
89 DesignRepackMover::DesignRepackMover() : protocols::moves::
Mover(
"DesignRepackMover" ),
90 repack_partner1_( false ), repack_partner2_( false ), design_partner1_( false ), design_partner2_( false ), min_rb_set_( false ), min_sc_set_( false ), min_bb_set_( false ), interface_distance_cutoff_( 8.0 ), repack_non_ala_( true ), optimize_foldtree_( true ), automatic_repacking_definition_( true ), use_preset_task_( false ), symmetry_( false )
97 DesignRepackMover::DesignRepackMover(
std::string const name ) : protocols::moves::
Mover( name ), repack_partner1_( false ), repack_partner2_( false ), design_partner1_( false ), design_partner2_( false ), min_rb_set_( false ), min_sc_set_( false ), min_bb_set_( false ), interface_distance_cutoff_( 8.0 ), repack_non_ala_( true ), optimize_foldtree_( true ), automatic_repacking_definition_( true ), use_preset_task_( false ), symmetry_( false )
104 return "DesignRepackMover";
137 using ObjexxFCL::FArray1D_bool;
157 task_->initialize_from_command_line();
204 Real const distance( resi.xyz( resi.nbr_atom() ).
distance( res_target.xyz( res_target.nbr_atom() ) ) );
270 task_->nonconst_residue_task( *res ).prevent_repacking();
273 task_->nonconst_residue_task( *res ).restrict_to_repacking();
275 if( basic::options::option[basic::options::OptionKeys::packing::resfile].user() )
289 if( !tag->hasOption(
"repack_partner1" ) && !tag->hasOption(
"repack_partner2" ) && tag->hasOption(
"repack" ) ){
290 bool const repack( tag->getOption<
bool >(
"repack" ) );
297 if( !tag->hasOption(
"design_partner1" ) && !tag->hasOption(
"design_partner2" ) && tag->hasOption(
"design" ) ){
298 bool const design( tag->getOption<
bool >(
"design" ) );
310 runtime_assert( !( design_partner1_ && !repack_partner1_ ) );
311 runtime_assert( !( design_partner2_ && !repack_partner2_ ) );
313 if( tag->hasOption(
"minimize_rb" ) )
314 min_rb( tag->getOption<
bool>(
"minimize_rb", 1 ) );
316 if( tag->hasOption(
"minimize_bb" ) ){
321 if( tag->hasOption(
"minimize_bb_ch1" ) || ( tag->hasOption(
"minimize_bb_ch2" ) ) ) {
323 if( tag->hasOption(
"minimize_bb_ch1" ) ){
325 minbb[ res_it ]=tag->getOption<
bool>(
"minimize_bb_ch1", 1 );
328 if( tag->hasOption(
"minimize_bb_ch2" ) ){
330 minbb[ res_it ]=tag->getOption<
bool>(
"minimize_bb_ch2", 1 );
336 if( tag->hasOption(
"minimize_sc" ) ) {
343 TagPtr const repack_ptr = *repack_it;
344 if( repack_ptr->getName() ==
"residue" ) {
351 symmetry_ = tag->getOption<
bool >(
"symmetry", 0 );
354 using namespace core::scoring::symmetry;
358 using namespace core::scoring;
366 TR<<*target_res_it<<
" ";