33 #include <basic/Tracer.hh>
34 #include <utility/vector1.hh>
35 #include <utility/exit.hh>
36 #include <basic/options/keys/OptionKeys.hh>
37 #include <basic/options/option.hh>
38 #include <utility/tag/Tag.hh>
41 #include <basic/options/keys/in.OptionKeys.gen.hh>
44 namespace simple_moves {
46 static basic::Tracer
TR(
"protocols.simple_moves.SuperimposeMover");
66 protocols::moves::
Mover(
"SuperimposeMover"),
71 protocols::moves::
Mover(
"SuperimposeMover"),
72 ref_pose_(new
Pose(pose))
116 std::map< core::id::AtomID, core::id::AtomID> atom_id_map;
118 for (
Size i_target = target_start, i_ref = ref_start; i_ref <= ref_end; ++i_ref, ++i_target ) {
119 if ( ! mod_pose.
residue(i_target).
has(
"CA") )
continue;
120 if ( ! ref_pose.
residue(i_ref).
has(
"CA") )
continue;
124 atom_map.
set( id1, id2 );
125 atom_id_map.insert( std::make_pair(id1, id2) );
133 using namespace basic::options;
136 TR <<
"using -in:file:native as the reference pose " << std::endl;
145 TR <<
"ref_start: "<< ref_start <<
" ref_end " << ref_end <<std::endl;
146 TR <<
"target_start: "<< target_start <<
" target_end " << target_end <<std::endl;
147 runtime_assert(ref_start > 0 && ref_start < ref_end && ref_end <= pose.
total_residue());
148 runtime_assert_msg(ref_end - ref_start == target_end - target_start,
"segments to superimpose have different lenghts!");
158 return "SuperimposeMover";