Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RotamerSubsets.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 core/pack/RotamerSet/RotamerSets.hh
11 /// @brief RotamerSets class declaration
12 /// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
13 
14 
15 #ifndef INCLUDED_core_pack_rotamer_set_RotamerSubsets_hh
16 #define INCLUDED_core_pack_rotamer_set_RotamerSubsets_hh
17 
18 // Unit Headers
20 
21 // Package Headers
22 
26 // AUTO-REMOVED #include <core/pack/interaction_graph/InteractionGraphBase.fwd.hh>
27 // AUTO-REMOVED #include <core/pack/interaction_graph/PrecomputedPairEnergiesInteractionGraph.fwd.hh>
28 // AUTO-REMOVED #include <core/pack/interaction_graph/OnTheFlyInteractionGraph.fwd.hh>
29 
30 #ifdef WIN32 //VC++ needs full class declaration
31 #include <core/pack/rotamer_set/RotamerSet.hh> // WIN32 INCLUDE
32 #endif
33 
34 // Project Headers
36 // AUTO-REMOVED #include <core/chemical/ResidueTypeSet.fwd.hh>
37 // AUTO-REMOVED #include <core/graph/Graph.fwd.hh>
38 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
39 // AUTO-REMOVED #include <core/scoring/ScoreFunction.fwd.hh>
40 
41 // Utility Headers
42 #include <utility/vector0.hh>
43 #include <core/types.hh>
44 
45 #include <utility/vector1.hh>
46 
47 
48 namespace core {
49 namespace pack {
50 namespace rotamer_set {
51 
52 //typedef utility::vector1< RotamerSetOP > RotamerSetVector;
53 
55 {
56 public:
58 
59 public:
60  RotamerSubsets( FixbbRotamerSets & source, utility::vector0< int > const & rotamer_subset );
62 
63  virtual uint nrotamers() const;
64  virtual uint nrotamers_for_moltenres( uint ) const;
65 
66  virtual uint total_residue() const;
67 
68  virtual uint nmoltenres() const;
69 
70  virtual
71  uint
72  moltenres_2_resid( uint ) const;
73 
74  virtual
75  uint
76  resid_2_moltenres( uint ) const;
77 
78  virtual
79  uint
80  moltenres_for_rotamer( uint ) const;
81 
82  virtual
83  uint
84  res_for_rotamer( uint ) const;
85 
86  virtual
88  rotamer( uint ) const;
89 
90  virtual
92  rotamer_for_moltenres( uint moltenres_id, uint rotamerid ) const;
93 
94  virtual
95  uint
97 
98  virtual
100  rotamer_set_for_residue( uint resid ) const;
101 
102  virtual
104  rotamer_set_for_residue( uint resid );
105 
106  virtual
108  rotamer_set_for_moltenresidue( uint moltenresid ) const;
109 
110  virtual
112  rotamer_set_for_moltenresidue( uint moltenresid );
113 
114  RotamerSetVector::const_iterator begin()
115  { return set_of_rotamer_sets_.begin(); }
116 
117  RotamerSetVector::const_iterator end()
118  { return set_of_rotamer_sets_.end(); }
119 
120  /// convert rotid in full rotamer enumeration into rotamer id on its source residue
121  virtual
122  uint
123  rotid_on_moltenresidue( uint rotid ) const;
124 
125  /// convert moltenres rotid to id in full rotamer enumeration
126  virtual
127  uint
128  moltenres_rotid_2_rotid( uint moltenres, uint moltenresrotid ) const;
129 
130 private:
131  void update_offset_data();
132 
133 
134 protected:
135 
136  virtual
139  return resid_2_moltenres_;
140  }
141 
142  virtual
145  return moltenres_2_resid_;
146  }
147 
148 private:
151 
153 
158 
159  // originating moltenres for a particular rotamer in the enumeration of all rotamers
162 
163 };
164 
165 } // namespace rotamer_set
166 } // namespace pack
167 } // namespace core
168 
169 
170 #endif // INCLUDED_core_pack_RotamerSet_RotamerSets_HH