28 #include <basic/Tracer.hh>
29 #include <utility/exit.hh>
30 #include <utility/vector1.hh>
32 #include <utility/tag/Tag.hh>
43 #include <boost/foreach.hpp>
44 #define foreach BOOST_FOREACH
49 #include <utility/vector0.hh>
54 static basic::Tracer
TR(
"protocols.toolbox.TaskOperations.DesignAroundOperation" );
58 namespace task_operations {
60 using namespace core::pack::task::operation;
66 allow_design_( true ),
89 using namespace core::pack::task::operation;
93 set< core::Size > focus_residues;
94 focus_residues.clear();
97 focus_residues.insert( res_vec.begin(), res_vec.end() );
100 packing_residues.clear(); prevent_repacking_residues.clear();
102 bool allow_design_res(
false );
103 bool allow_packing(
false );
104 foreach(
core::Size const res, focus_residues ){
106 allow_design_res =
true;
111 foreach(
core::Size const res, focus_residues ){
114 allow_design_res =
true;
119 if( allow_design_res )
continue;
120 foreach(
core::Size const res, focus_residues ){
123 allow_packing =
true;
127 if( allow_packing ) packing_residues.push_back( i );
128 else prevent_repacking_residues.push_back( i );
132 if( packing_residues.size() ){
134 oocr_repacking.residue_indices( packing_residues );
135 oocr_repacking.apply( pose, task );
137 if( prevent_repacking_residues.size() ){
139 oocr_prevent_repacking.residue_indices( prevent_repacking_residues );
140 oocr_prevent_repacking.apply( pose, task );
163 allow_design( tag->getOption<
bool >(
"allow_design", 1 ) );
169 if( def[
"resnums"] ) {
170 ostringstream oss(
"");
171 utility::lua::LuaIterator beg = def[
"resnums"].begin();
172 for (utility::lua::LuaIterator i=beg,
end; i !=
end; ++i) {
179 design_shell( def[
"design_shell"] ? def[
"design_shell"].to<core::Real>() : 8.0 );
180 allow_design( def[
"allow_design"] ? def[
"allow_design"].to<bool>() :
true );
181 repack_shell( def[
"repack_shell"] ? def[
"repack_shell"].to<core::Real>() : 8.0 );