Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ChunkTrialMover.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file
11 /// @brief Wrapper for InsertChunkMover. It can take a random template and steal coordinates of all chunks or a random one
12 /// @detailed
13 /// @author Yifan Song
14 
15 #ifndef INCLUDED_protocols_hybridization_ChunkTrialMover_hh
16 #define INCLUDED_protocols_hybridization_ChunkTrialMover_hh
17 
20 
21 #include <core/id/AtomID.hh>
22 #include <core/id/AtomID_Map.hh>
24 #include <core/fragment/Frame.hh>
26 
27 #include <protocols/loops/Loop.hh>
28 #include <protocols/loops/Loops.hh>
29 
30 #include <protocols/moves/Mover.hh>
31 
32 #include <ObjexxFCL/format.hh>
33 #include <numeric/random/random.hh>
34 #include <numeric/xyz.functions.hh>
35 #include <numeric/model_quality/rms.hh>
36 #include <numeric/model_quality/maxsub.hh>
37 
38 #include <basic/options/option.hh>
39 #include <basic/options/keys/OptionKeys.hh>
40 #include <basic/options/keys/in.OptionKeys.gen.hh>
41 #include <basic/options/keys/constraints.OptionKeys.gen.hh>
42 #include <basic/options/keys/rigid.OptionKeys.gen.hh>
43 #include <basic/Tracer.hh>
44 
45 #include <set>
46 
47 namespace protocols {
48 namespace hybridization {
49 
50 using namespace core;
51 using namespace protocols::moves;
52 using namespace protocols::loops;
53 
55 
57 {
58 
59 public:
61  utility::vector1 < core::pose::PoseCOP > const & template_poses,
62  utility::vector1 < protocols::loops::Loops > const & template_chunks,
63  Loops ss_chunks_pose,
64  bool random_template = true,
65  AlignOption align_option = all_chunks,
66  Size max_registry_shift = 0);
67 
68  void
69  get_alignment_from_template(
70  core::pose::PoseCOP template_pose,
71  std::map <core::Size, core::Size> & seqpos_alignment );
72 
73  void
74  get_alignment_from_chunk_mapping(std::map <core::Size, core::Size> const & chunk_mapping,
75  Loops const template_ss_chunks,
76  Loops const target_ss_chunks,
77  std::map <core::Size, core::Size> & sequence_alignment);
78 
79  void set_template(core::Size const template_number);
80  core::Size template_number();
81  void pick_random_template();
82  void pick_random_chunk(core::pose::Pose & pose);
83  Size trial_counter(Size ires);
84  void apply(core::pose::Pose & pose);
85  std::string get_name() const;
86 
88  std::set< core::Size> template_indices_in // to ignore
89  ) {
90  ignore_template_indices_ = template_indices_in;
91  }
92 
93 private:
94 
103 
104  Size template_number_; // the jump to be realigned
105  Size jump_number_; // the jump to be realigned
106 
107  std::set< core::Size > ignore_template_indices_;
108 
109 }; //class ChunkTrialMover
110 
111 } // hybridization
112 } // protocols
113 
114 #endif