Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ContinuousRotamerSet.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/ContinuousRotamerSet.hh
11 /// @brief Declaration for the class which desribes rotamers statistically instead of as discrete samples
12 /// For use in stochastic packing (see Feng & Dokholyan, 2006)
13 /// @author Andrew Leaver-Fay (leaverfa@email.unc.edu)
14 
15 
16 #ifndef INCLUDED_core_pack_rotamer_set_ContinuousRotamerSet_HH
17 #define INCLUDED_core_pack_rotamer_set_ContinuousRotamerSet_HH
18 
19 // Unit Headers
21 
22 // Package Headers
23 // AUTO-REMOVED #include <core/pack/dunbrack/DunbrackRotamer.hh>
25 
26 // Project Headers
27 #include <core/types.hh>
28 #include <core/chemical/AA.hh>
29 //#include <core/conformation/Residue.fwd.hh>
30 #include <core/pose/Pose.fwd.hh>
31 
32 // Utility headers
33 #include <utility/pointer/ReferenceCount.hh>
34 #include <utility/vector1.hh>
35 
38 
39 
40 namespace core {
41 namespace pack {
42 namespace rotamer_set {
43 
44 
46 {
47 private: // typedefs
50 
51 public:
53  virtual ~ContinuousRotamerSet();
54 
55  void build_rotamers(
56  pose::Pose const & pose,
57  Size resid,
58  task::PackerTask const & task
59  );
60 
61  Size
62  get_n_residue_types() const;
63 
64  //Size
65  //get_residue_type_begin( Size which_restype ) const;
66 
67  Size
68  get_n_sampling_rotamers_for_rotblock( Size which_restype ) const;
69 
70  Size
71  get_n_baserotamers_for_rotblock( Size which_restype ) const;
72 
73  /// @brief Rotamers i to i+j of all the same residue type are grouped together.
74  /// This function returns the index of the residue type in a contiguous block
75  /// of rotamers. E.g. rotamers 100 to 120 might all be lysine rotamers, and might
76  /// be the 8th residue type, with the first 7 residue types spanning rotamers 1 to 99.
77  /// If new lysine rotamers are appended to the end of the rotamer set, they are
78  /// considered to be in a separate residue type block. Lysine rotamers 200 to 210 might
79  /// be block 15 while lysine rotamers 100 to 120 are still block 7.
80  Size
81  get_rotblock_index_for_sampling_rotamer( Size which_rotamer ) const;
82 
83  Size
85 
86  Size
88 
89  Size
91 
93  current_rotamer_coords() const;
94 
95  Size resid() const;
96 
98  restype_for_rotblock( Size rotblock ) const;
99 
101  baserotamer_data( Size aa_ind, Size rotid_for_aa ) const;
102 
103  Size
104  pick_baserotamer_from_rotblock( Size aa_ind, Real rand_btw_0_and_1 ) const;
105 
106 private:
108 
109 private:
110 
111  Size resid_; //which residue is this?
112 
116 
117  Size n_restypes_; // aka n_rotblocks
120 
121  Size n_baserots_total_; // excluding proton chis, how many dihedral angle bins are there?
125 
126  Size n_samplingrots_total_; // // how many rotamers above the 98% probability threshold?
127  utility::vector1< Size > n_samplingrots_for_rotblock_; //top 98% by prob * nproton_chi_extra
130 
132 
133 };
134 
136 {
137 public:
138  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
139  virtual ~ContinuousRotamerSets();
141  pose::Pose const & pose,
142  task::PackerTask const & task
143  );
144 
145  Size nmoltenres() const;
146  Size total_residue() const;
147 
148  Size resid_2_moltenresid( Size ) const;
149  Size moltenresid_2_resid( Size ) const;
150 
151  ContinuousRotamerSet const &
153 
154  ContinuousRotamerSet const &
155  rotamer_set_for_res( Size ) const;
156 
157  Size
158  n_sample_rotamers() const;
159 
160  Size
161  moltenres_for_sample_rot( Size sample_rotno );
162 
163  Size
165 
166 private:
175 };
176 
177 
178 } // namespace rotamer_set
179 } // namespace pack
180 } // namespace core
181 
182 
183 #endif // INCLUDED_core_pack_RotamerSet_RotamerSet_HH