25 #include <numeric/xyzVector.hh>
29 #include <boost/foreach.hpp>
30 #define foreach BOOST_FOREACH
41 #include <utility/vector0.hh>
42 #include <utility/vector1.hh>
43 #include <utility/tag/Tag.hh>
45 #include <basic/Tracer.hh>
49 namespace protein_interface_design {
52 using namespace protocols::moves;
53 using namespace core::chemical;
54 using namespace core::kinematics;
56 static basic::Tracer
TR(
"protocols.protein_interface_design.movers.HotspotDisjointedFoldTreeMover" );
70 return "HotspotDisjointedFoldTree";
75 ddG_threshold_( 1.0 ),
77 interface_radius_( 8.0 ),
93 using namespace core::kinematics;
96 TR<<
"Fold tree before disjointed foldtree:\n"<<pose.
fold_tree()<<std::endl;
98 runtime_assert(
chain() == 2 );
101 std::set< core::Size > residues_on_target;
102 residues_on_target.clear();
108 ft->add_edge( head, r-1, Edge::PEPTIDE );
109 ft->add_edge( r-1, r, jump );
114 ft->add_edge( target_res, r, jump );
115 residues_on_target.insert( target_res );
120 foreach(
core::Size const r, residues_on_target ){
122 ft->add_edge( target_head, r, Edge::PEPTIDE );
126 core::Size const target_end( *residues_on_target.rbegin() );
133 ft->add_edge( begin, begin - 1, jump );
138 ft->add_edge( end, end + 1, jump );
141 ft->delete_self_edges();
143 TR<<
"Fold tree after disjointed foldtree:\n"<<*ft<<std::endl;
155 using namespace protocols::toolbox::task_operations;
156 using namespace core::pack::task::operation;
160 pido->repack_chain2(
true );
161 pido->design_chain2(
true );
177 TR<<
"Making a disjointed fold tree for residues: ";
191 TR<<
"Ala scan calculation will not be carried out. Only residues specifically chosen in the script will be selected"<<std::endl;
200 TR<<
"HotspotDisjointedFoldTreeMover with: chain "<<
chain()<<
" ddG_threshold "<<
ddG_threshold()<<
" and residues ";
210 std::set< core::Size >