19 #include <basic/Tracer.hh>
24 static basic::Tracer
TR(
"protocols.simple_moves.SwitchChainOrderMover");
25 #include <utility/tag/Tag.hh>
28 #include <utility/vector1.hh>
29 #include <boost/foreach.hpp>
30 #define foreach BOOST_FOREACH
38 namespace simple_moves {
54 return "SwitchChainOrder";
58 : moves::
Mover(
"SwitchChainOrder"),
59 residue_numbers_( NULL )
72 new_residue_numbers.clear();
74 positions_in_new_pose.clear();
77 runtime_assert( chain > 0 && chain <= conf.num_chains() );
78 core::Size const chain_begin( conf.chain_begin( chain ) );
79 core::Size const chain_end( conf.chain_end( chain ) );
81 core::Size const new_chain_begin( positions_in_new_pose.size() + 1 );
82 for(
core::Size i = chain_begin; i<=chain_end; ++i )
83 positions_in_new_pose.push_back( i );
84 core::Size const new_chain_end( positions_in_new_pose.size() );
87 if( residue_number >= chain_begin && residue_number <= chain_end )
88 new_residue_numbers.push_back( residue_number - ( chain_begin - new_chain_begin ) );
91 new_ft.
add_edge( new_chain_begin, new_chain_end, -1 );
93 new_ft.
add_edge( 1, new_chain_begin, chain_count - 1 );
105 TR<<
"New pose's foldtree "<<pose.
fold_tree()<<std::endl;
108 TR<<
"new residue numbers: ";
141 std::string const residue_numbers_setter( tag->getOption<
std::string >(
"residue_numbers_setter",
"" ) );
143 if( residue_numbers_setter !=
"" )
144 residue_numbers_ = protocols::moves::get_set_from_datamap< protocols::moves::DataMapObj< utility::vector1< core::Size > > >(
"residue_numbers", residue_numbers_setter, data );