Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ThreadingMover.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 protocols/comparative_modeling/ThreadingMover.hh
11 /// @brief
12 /// @author James Thompson
13 
14 // libRosetta headers
15 
16 #ifndef INCLUDED_protocols_comparative_modeling_ThreadingMover_HH
17 #define INCLUDED_protocols_comparative_modeling_ThreadingMover_HH
18 
19 #include <protocols/moves/Mover.hh>
20 
21 #include <core/types.hh>
22 #include <core/pose/Pose.hh>
23 
26 #include <core/fragment/FragSet.hh>
28 
29 // C++ headers
30 #include <set>
31 #include <string>
32 
33 #include <utility/vector1.hh>
34 
35 namespace protocols {
36 namespace comparative_modeling {
37 
39 
40 public:
41 
42  /// @brief align describes the association between the query and template
43  /// sequences, template_pose is the conformation from which to build a
44  /// threading model.
48  );
49 
50  virtual ~ThreadingMover() {}
51 
52  /// @brief Returns the index of the query sequence in SequenceAlignment
53  /// object.
54  core::Size query_index() const;
55 
56  /// @brief Returns the index of the template sequence in SequenceAlignment
57  /// object.
58  core::Size template_index() const;
59 
60  /// @brief Returns the SequenceAlignment object used in threading.
62 
63  /// @brief Sets the index of the query sequence in SequenceAlignment object.
64  void query_index( core::Size new_index );
65 
66  /// @brief Sets the index of the template sequence in SequenceAlignment
67  /// object.
68  void template_index( core::Size new_index );
69 
70  /// @brief Sets the SequenceAlignment associated with this object.
72 
73  void template_pose( core::pose::Pose template_pose );
74 
75  //boolean setters
76  void build_loops( bool setting );
77 
78  void randomize_loop_coords( bool setting );
79 
80  void repack_query( bool setting );
81 
82  //boolean getters
83  bool build_loops() const;
84 
85  bool repack_query() const;
86 
87  bool randomize_loop_coords();
88 
89  void min_loop_size( core::Size const new_size );
90 
91  Size min_loop_size() const;
92 
94 
95  void frag_libs(
97  );
98 
99  /// @brief Returns the SequenceMapping between query and template.
101  core::pose::Pose const & query_pose
102  ) const;
103 
104  /// @brief Threads the given Pose onto the template_pose with the
105  /// SequenceAlignment provided.
106  virtual void apply( core::pose::Pose & query_pose );
107 
108  virtual std::string get_name() const;
109 
110 private: // methods
111 
112  ///
113  bool atoms_are_equiv( std::string const & a1, std::string const & a2 );
114 
115  /// @brief add pair of equivalent atoms to atom_equiv_ table.
116  void add_equiv_atoms( std::string const & a1, std::string const & a2 );
117 
118  /// @brief initialize table of equivalent atoms between all residues.
119  void init_atom_equiv();
120 
121 private: // data members
122 
130 
131  //std::map< std::string, utility::vector1< std::string > > atom_equiv_;
132  std::map< std::string, std::set< std::string > > atom_equiv_;
134 }; // ThreadingMover
135 
136 } // comparative_modeling
137 } // protocols
138 
139 #endif