Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnzConstraintIO.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_EnzConstraintIO_hh
16 #define INCLUDED_protocols_toolbox_match_enzdes_util_EnzConstraintIO_hh
17 
18 
19 // Unit headers
20 // AUTO-REMOVED #include <core/scoring/constraints/ConstraintSet.fwd.hh>
22 
23 
24 // AUTO-REMOVED
25 
26 
27 #ifdef WIN32
32 #endif
33 
35 
36 // Project headers
38 #include <core/pose/Pose.fwd.hh>
39 // AUTO-REMOVED #include <core/pack/task/PackerTask.fwd.hh>
41 #include <core/types.hh>
42 
43 
44 // Utility Headers
45 #include <utility/pointer/ReferenceCount.hh>
46 #include <utility/vector1.fwd.hh>
47 // AUTO-REMOVED #include <set>
48 
50 #include <utility/vector1.hh>
51 
52 
53 
54 //Utility Headers
55 
56 // C++ Headers
57 
58 namespace protocols {
59 namespace toolbox {
60 namespace match_enzdes_util {
61 
62 
63 ////////////////////////////////////////////////////////////////////////////////////////
64 /////////////////////////////////////////////////////////////////////////////
65 
66 
67 //interface class to process enzyme design constraints format, links information in
68 //constraint file containg constraint parameters and in pdb file containing
69 //the relevant residue numbers
70 //it also checks whether the information that was gathered from two different locations
71 //is consistent and then adds a constraint set to an input pose
72 
74 
75 
76 public:
77 
79  virtual ~EnzConstraintIO();
80 
81  static EnzConstraintIO* get_instance();
82 
83  void
85 
86 
88  mcfi_list( core::Size block ) const;
89 
91  num_mcfi_lists() const {
92  return mcfi_lists_.size(); }
93 
94  void
96  core::pose::Pose & pose,
98  bool accept_blocks_missing_header
99  );
100 
101 
102  /// @brief BE CAREFUL when using this function, it generates constraints
103  /// @brief without clearing the internal data structures and reading in
104  /// @brief the information in the pdb REMARKs
105  /// @brief if you're unsure use the above one
106  void
108  core::pose::Pose & pose,
110  core::Size cst_block
111  ) const;
112 
113 
114  /// @brief convenience function that will add constraints to the pose if they have
115  /// @brief been previously generated. BE CAREFUL when using this function, it relies on the
116  /// @brief pose having the same residue types at the same constrained positions as in the pose
117  /// @brief that was originally used to generate the constraints. If in doubt, it's safer to
118  /// @brief regenerate the constraints before adding (i.e. use the above add_constraints_to_pose
119  /// @brief function.)
120  void
122  core::pose::Pose & pose,
124  ) const;
125 
126  void
128  core::pose::Pose & pose,
129  bool const keep_covalent,
130  bool const fail_on_constraints_missing
131  ) const;
132 
133 
134  void
136  core::pose::Pose & pose,
137  core::Size cst_block,
138  bool const fail_on_constraints_missing
139  ) const;
140 
141 
142  void
144  core::pose::Pose & pose,
145  core::Size pos,
146  core::Size cst_block
147  ) const;
148 
149  void
151  core::pose::Pose & pose,
152  core::Size pos
153  ) const;
154 
155  void
157  core::pose::Pose & pose,
158  bool accept_missing_blocks
159  );
160 
161  /// @brief are constraints specified for this position?
162  bool
163  contains_position( core::pose::Pose const & pose, core::Size const seqpos ) const;
164 
165  /// @brief are the constraints specified at this position
166  /// mediated through backbone interactions only?
167  bool
168  is_backbone_only_cst( core::pose::Pose const & pose, core::Size const seqpos ) const;
169 
170  void
172  core::pose::Pose & pose )const ;
173 
175  allowed_res_name3_at_position( core::pose::Pose const & pose, core::Size const seqpos ) const;
176 
177  void
178  show_cst_definitions() const;
179 
180  /// @brief changing the constrained residues if the sequence length changes
181  void
182  remap_resid( core::id::SequenceMapping const & smap );
183 
184  void
186  core::pose::Pose & pose,
187  core::Size cst_block,
188  core::Size respos
189  ) const;
190 
191  void
193  core::pose::Pose & pose,
194  core::Size cst_block
195  ) const;
196 
197  void
199  core::Size cst_block,
200  core::Size respos
201  );
202 
203  void
205  core::Size cst_block,
206  core::Size respos
207  );
208  /*
209  void
210  setup_favor_native_constraints(
211  core::pose::Pose & pose,
212  core::pack::task::PackerTaskCOP task,
213  core::pose::Pose const & native_pose
214  );
215 
216  void
217  remove_favor_native_constraints(
218  core::pose::Pose & pose
219  );
220  */
222  enz_cst_params( core::Size block) const;
223 
225  enz_cst_params_missing_in_pose( core::pose::Pose const & pose ) const;
226 
228  ordered_constrained_positions( core::pose::Pose const & pose) const;
229 
230  core::Size
231  mcfi_lists_size() const;
232 
233  //MatchConstraintFileInfoListCOP
234  //mcfi_list( Size index ) const;
235 
236  core::Size
237  enz_cst_params_size() { return cst_pairs_.size(); }
238 
241  return target_downstream_res_; }
242 
243 protected:
244 
245  utility::vector1< EnzConstraintParametersOP > cst_pairs_; // contains information about the residue pair constraints
246 
247 private:
248 
249  //void
250  //clear_pose_specific_data();
251 
252  //void
253  //clear_pose_specific_data_for_block( core::Size cst_block );
254 
255  void
257  core::pose::Pose & pose,
259  ) const;
260 
261  void
263  core::pose::Pose & pose,
265  core::Size cst_block
266  ) const;
267 
268  void
270 
272 
273  //convenience data structure that contains info about upstream / upstream interactions
275 
277  //bool cst_pair_data_consistent_;
278 
279  //utility::vector1< core::scoring::constraints::ConstraintCOP > favor_native_constraints_;
280 
281  //a static version for generic access
283 
284 }; // class EnzConstraintIO
285 
286 
287 }
288 } //toolbox
289 } //protocols
290 
291 #endif