Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnzConstraintParameters.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 IO-functionality for enzyme Constraints
11 /// @brief
12 /// @author Florian Richter, floric@u.washington.edu
13 
14 
15 #ifndef INCLUDED_protocols_toolbox_match_enzdes_util_EnzConstraintParameters_hh
16 #define INCLUDED_protocols_toolbox_match_enzdes_util_EnzConstraintParameters_hh
17 
18 
19 // Unit headers
21 
22 // Package headers
24 
26 
27 // Project headers
29 #include <core/pose/Pose.fwd.hh>
30 
31 
32 // Utility Headers
33 #include <utility/pointer/ReferenceCount.hh>
34 #include <set>
35 
36 #include <core/types.hh>
40 #include <utility/vector1.hh>
41 #include <iostream>
42 
43 
44 
45 //Utility Headers
46 
47 // C++ Headers
48 
49 namespace protocols {
50 namespace toolbox {
51 namespace match_enzdes_util {
52 
53 
54 ////////////////////////////////////////////////////////////////////////////////////////
55 /////////////////////////////////////////////////////////////////////////////
56 
57 /// @brief helper class to allow for removal of covalent constraints
59 
60 public:
61 
63  std::string resA_base_in,
64  std::string resB_base_in,
65  std::string resA_var_in,
66  std::string resB_var_in,
67  core::Size Apos_in,
68  core::Size Bpos_in,
70  );
71 
73 
75 
76  void
78 
79  void
80  remap_resid( core::id::SequenceMapping const & smap );
81 
82 private:
83 
87 
90 
91 }; //class CovalentConnection
92 
93 
94 /// @brief class that holds all the parameters for one specific constraint
96 
97 
98 public:
99 
100  void
101  set_mcfi(
103 
105 
108  core::chemical::ResidueTypeSetCAP src_restype_set,
109  EnzConstraintIOCAP src_enz_io);
110 
112 
113  virtual ~EnzConstraintParameters();
114 
115  void
116  show_definitions() const;
117 
118  void
120  core::pose::Pose & pose,
122  ) const;
123 
124  bool
125  is_empty() const {
126  return empty_;
127  }
128 
129  bool
130  is_covalent() const {
131  return is_covalent_;
132  }
133 
134  bool
135  missing_in_pose( core::pose::Pose const & pose) const;
136 
137  /// @brief function that takes all rotamers for the ResidueType(s)
138  /// of the residue that's missing in the pose and places them
139  /// according to the geometry specified in the mcfi
140  //utility::vector1< core::conformation::ResidueCOP >
141  //inverse_rotamers_for_residue_missing_in_pose(
142  // core::pose::Pose const & pose ) const;
143 
144  core::Size
145  cst_block() const {
146  return cst_block_;}
147 
148  void
150 
151  /// @brief updates the pdb remarks according to what is in the
152  /// EnzCstTemplateRes member data. returns false in case any
153  /// error occured
154  bool
156  core::pose::Pose & pose
157  ) const;
158 
159 
161  enz_io() const{
162  return enz_io_; }
163 
165  nonconst_resA();
166 
168  nonconst_resB();
169 
171  resA() const;
172 
174  resB() const;
175 
177  get_missing_template_res( core::pose::Pose const & pose ) const;
178 
180  get_missing_template_other_res( core::pose::Pose const & pose ) const;
181 
182  /// @brief all residue names specified in the cstfile
183  /// returns an empty set if the constraints don't apply
184  /// to the specifed position
185  std::set< std::string >
186  allowed_res_name3_at_position( core::pose::Pose const & pose, core::Size seqpos ) const;
187 
188  void
190 
191  void
193 
194  void
196 
197  void
198  remap_resid( core::id::SequenceMapping const & smap );
199 
200  static
204  core::Real & ideal_val);
205 
206 private:
207 
208  void
210  core::pose::Pose & pose,
212  ) const;
213 
214  void
216  core::pose::Pose & pose,
217  Size resA_pos,
218  Size resB_pos,
219  Size resA_At,
220  Size resB_At
221  ) const;
222 
223  void
225  core::pose::Pose & pose,
226  EnzCstTemplateResOP template_res,
227  core::Size res_pos,
228  core::Size Atpos,
229  core::Real itorsion,
230  core::Real iangle,
231  core::Real idis,
232  std::string & res_varname
233  ) const;
234 
235  core::Size
237  core::pose::Pose const & pose,
240  ) const;
241 
242 
243 private: //data
244 
246 
248 
250 
252 
254 
255  mutable bool empty_; //safeguard if someone reads in a cstfile with all force constants set to 0
257 
258  EnzConstraintIOCAP enz_io_; //the EnzConstraintIO object that this template res belongs to
259  core::Size cst_block_; //the block in the cst file that corresponds to this residue
260 
261 }; // class EnzConstraintParameters
262 
263 
264 }
265 } //enzdes
266 } //protocols
267 
268 
269 #endif