Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MMBondAngleResidueTypeParamSet.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/scoring/mm/MMBondAngleResidueTypeParamSet.hh
11 /// @brief Class to store bond angle parameters for a set of ResidueTypes
12 /// @author Colin A. Smith (colin.smith@ucsf.edu)
13 
14 
15 #ifndef INCLUDED_core_scoring_mm_MMBondAngleResidueTypeParamSet_hh
16 #define INCLUDED_core_scoring_mm_MMBondAngleResidueTypeParamSet_hh
17 
18 // Unit headers
20 
21 // Project headers
22 #include <core/id/AtomID.fwd.hh>
23 // AUTO-REMOVED #include <core/scoring/mm/MMBondAngleLibrary.hh>
24 // AUTO-REMOVED #include <core/scoring/mm/MMBondAngleResidueTypeParam.hh>
27 
28 // Utility header
29 #include <utility/pointer/access_ptr.hh>
30 #include <utility/pointer/owning_ptr.hh>
31 #include <utility/pointer/ReferenceCount.hh>
32 
33 // C++ headers
34 #include <map>
35 
39 #include <utility/vector1_bool.hh>
40 #include <string>
41 
42 
43 namespace core {
44 namespace scoring {
45 namespace mm {
46 
48 {
49 
50 public:
51  /// @brief ctor
53 
54  /// @brief copy ctor
57  );
58 
60 
61  /// @brief get bond angle library for newly created ResidueTypeParam objects
64  {
65  return mm_bondangle_library_;
66  }
67 
68  /// @brief set bond angle library for newly created ResidueTypeParam objects
69  void
72  )
73  {
74  mm_bondangle_library_ = value;
75  }
76 
77  /// @brief get use of ResidueType theta0 in newly created ResidueTypeParam objects
78  bool
80  {
82  }
83 
84  /// @brief set use of ResidueType theta0 in newly created ResidueTypeParam objects
85  void
87  bool value
88  )
89  {
91  }
92 
93  /// @brief get central atoms to score in newly created ResidueTypeParam objects
96  {
98  }
99 
100  /// @brief set central atoms to score in newly created ResidueTypeParam objects
101  void
103  utility::vector1<std::string> const & value
104  )
105  {
106  central_atoms_to_score_ = value;
107  }
108 
109  /// @brief lookup a param object for a given ResidueType
111  get(
112  core::chemical::ResidueType const & residue_type
113  );
114 
115  /// @brief lookup a param object for a given ResidueType, does not auto-create
117  get(
118  core::chemical::ResidueType const & residue_type
119  ) const;
120 
121  /// @brief lookup Ktheta and theta0 for any bond angle in a conformation
122  void
123  lookup(
124  core::conformation::Conformation const & conformation,
125  core::id::AtomID const & atomid1,
126  core::id::AtomID const & atomid2,
127  core::id::AtomID const & atomid3,
128  core::Real & Ktheta,
129  core::Real & theta0
130  );
131 
132  /// @brief lookup Ktheta and theta0 for any bond angle in a conformation
133  void
134  lookup(
135  core::conformation::Conformation const & conformation,
136  core::id::AtomID const & atomid1,
137  core::id::AtomID const & atomid2,
138  core::id::AtomID const & atomid3,
139  core::Real & Ktheta,
140  core::Real & theta0
141  ) const;
142 
143 private:
144 
145  /// @brief lookup Ktheta and theta0 for any bond angle in a conformation
146  void
147  lookup(
148  core::conformation::Conformation const & conformation,
149  core::id::AtomID const & atomid1,
150  core::id::AtomID const & atomid2,
151  core::id::AtomID const & atomid3,
152  MMBondAngleResidueTypeParam const & residue_type_param,
153  core::Real & Ktheta,
154  core::Real & theta0
155  ) const;
156 
157  /// @brief bond angle library for deriving new ResidueTypeParam objects
159 
160  /// @brief use ResidueType defined theta0 in newly created ResidueTypeParam objects
162 
163  /// @brief only score certain central atoms in newly created ResidueTypeParam objects
165 
166  /// @brief mapping from ResidueType name to ResidueTypeParam
167  std::map<std::string, MMBondAngleResidueTypeParam> reside_type_param_map_;
168 
169 };
170 
171 /// @brief extract a MMBondAngleResidueTypeParamSet from a ScoreFunction, returning NULL if none exists
174  core::scoring::ScoreFunction const & scorefxn
175 );
176 
177 } // namespace mm
178 } // namespace scoring
179 } // namespace core
180 
181 
182 #endif // INCLUDED_core_mm_MMBondAngleResidueTypeParamSet_HH