34 #include <basic/options/option.hh>
35 #include <basic/options/keys/symmetry.OptionKeys.gen.hh>
36 #include <basic/options/keys/in.OptionKeys.gen.hh>
37 #include <basic/options/keys/loops.OptionKeys.gen.hh>
44 #include <basic/Tracer.hh>
47 #include <ObjexxFCL/FArray1D.hh>
48 #include <ObjexxFCL/FArray2D.hh>
53 #include <utility/vector1.hh>
54 #include <numeric/xyz.functions.hh>
60 using namespace core::conformation;
61 using namespace core::conformation::symmetry;
62 using namespace utility;
68 static basic::Tracer
TR(
"protocols.moves.symmetry.fibril_util");
82 Real const angle_xy ( numeric::angle_radians(x,origin,y) );
83 if( angle_xy - 0.5*numeric::NumericTraits<Real>::pi() > 1e-3 ) {
87 z = origin + ( x - origin ).cross( y - origin ) ;
99 using namespace core::kinematics;
104 Size next_anchor ( anchor <= src_conformation.
size() - 2 ? anchor + 2 : anchor - 2 );
107 AtomID a1( rt1.atom_index (
"C") , anchor );
108 AtomID a2( rt2.atom_index (
"C") , next_anchor );
109 AtomID a3( rt1.atom_index (
"O") , anchor );
110 Vector origin ( src_conformation.
xyz(a1) );
115 x = ( x - origin ).normalized() + origin;
116 z = ( z - origin ).normalized() + origin;
117 Stub const rot_stub ( origin, x, z );
120 for (
Size i = 1; i <= src_conformation.
size(); ++i ) {
123 Vector const old_xyz( src_conformation.
xyz(
id) );
125 src_conformation.
set_xyz(
id, new_xyz );
137 using namespace basic::options;
138 using namespace basic::options::OptionKeys;
142 std::string symm_def = option[ OptionKeys::symmetry::symmetry_definition ];
143 symmdata.read_symmetry_data_from_file(symm_def);
144 if( option[ in::file::native ].user() ) {
148 bool default_loop_file_is_present = option[ OptionKeys::loops::loop_file ].user();
150 if( !default_loop_file_is_present ) {
154 if( option[ OptionKeys::loops::extended_loop_file ].user() ) {
162 }
else if( option[ in::file::alignment ].user() ) {
166 std::cout<<
"fold tree: "<<pose.
fold_tree()<<std::endl;
179 using namespace protocols;
180 using namespace core::scoring;
190 for (
core::Size i=region->start(); i<= region->stop(); ++i ){
192 ids.push_back(dummy_atomid1);
194 ids.push_back(dummy_atomid2);
196 ids.push_back(dummy_atomid3);
198 ids.push_back(dummy_atomid4);
203 for (
core::Size i=region->start(); i<= region->stop(); ++i ){
205 ref_ids.push_back(dummy_atomid1);
207 ref_ids.push_back(dummy_atomid2);
209 ref_ids.push_back(dummy_atomid3);
211 ref_ids.push_back(dummy_atomid4);
214 assert( ids.size()== ref_ids.size());
217 atom_map.set( ids[i], ref_ids[i] );