21 #include <utility/tag/Tag.hh>
22 #include <utility/excn/Exceptions.hh>
29 #include <basic/resource_manager/ResourceManager.hh>
30 #include <basic/resource_manager/util.hh>
43 #include <basic/Tracer.hh>
44 #include <basic/options/option.hh>
45 #include <basic/options/keys/symmetry.OptionKeys.gen.hh>
47 #include <utility/vector0.hh>
48 #include <utility/vector1.hh>
52 namespace simple_moves{
55 static basic::Tracer
TR(
"protocols.simple_moves.symmetry.SetupForSymmetryMover");
70 return "SetupForSymmetry";
85 return "ExtractAsymmetricUnit";
102 return "ExtractAsymmetricPose";
109 protocols::moves::
Mover(
"SetupForSymmetryMover"),
116 protocols::moves::
Mover(
"SetupForSymmetryMover"),
121 symmdef_->read_symmetry_data_from_file(symmdef_file);
129 using namespace basic::options;
135 if(option[ OptionKeys::symmetry::symmetry_definition].user()){
137 symmdef_->read_symmetry_data_from_file(
138 option[OptionKeys::symmetry::symmetry_definition]);
141 throw utility::excn::EXCN_BadInput(
142 "The -symmetry:symmetry_definition command line option "
143 "was not specified.");
162 symdock->apply( pose );
172 using namespace basic::options;
173 using namespace basic::resource_manager;
175 if(tag->hasOption(
"definition") && tag->hasOption(
"resource_description")){
176 throw utility::excn::EXCN_BadInput(
177 "SetupForSymmetry takes either a 'definition' OR "
178 "a 'resource_description' tag but not both.");
181 if(tag->hasOption(
"definition")){
183 symmdef_->read_symmetry_data_from_file(
185 option[OptionKeys::symmetry::symmetry_definition].value(
"dummy" );
187 }
else if(tag->hasOption(
"resource_description")){
188 symmdef_ = get_resource< core::conformation::symmetry::SymmData >(
189 tag->getOption<
std::string>(
"resource_description"));
190 option[OptionKeys::symmetry::symmetry_definition].value(
"dummy" );
192 }
else if(option[ OptionKeys::symmetry::symmetry_definition].user()){
194 symmdef_->read_symmetry_data_from_file(
195 option[OptionKeys::symmetry::symmetry_definition]);
198 throw utility::excn::EXCN_BadInput(
199 "To use SetupForSymmetryMover with rosetta scripts please supply either a 'definition' tag, a 'resource_decription' tag or specify -symmetry:symmetry_definition the command line.");
211 : protocols::moves::
Mover(
"ExtractAsymmetricUnitMover") { }
241 : protocols::moves::
Mover(
"ExtractAsymmetricPoseMover") { }