Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EnzdesLoopsFile.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 protocols/toolbox/match_enzdes_util/EnzdesLoopsFile.hh
11 ///
12 /// @brief
13 /// @author Florian Richter, floric@u.washington.edu, april 2009
14 
15 
16 
17 
18 #ifndef INCLUDED_protocols_toolbox_match_enzdes_util_EnzdesLoopsFile_hh
19 #define INCLUDED_protocols_toolbox_match_enzdes_util_EnzdesLoopsFile_hh
20 
21 
24 
25 // AUTO-REMOVED #include <protocols/toolbox/match_enzdes_util/EnzdesBaseProtocol.fwd.hh>
26 
27 
28 //#include <core/conformation
29 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
30 #include <core/types.hh>
31 
32 #include <utility/io/izstream.fwd.hh>
33 // AUTO-REMOVED #include <utility/vector1.hh>
34 
35 #include <string>
36 
37 #include <utility/vector1_bool.hh>
38 #include <utility/pointer/ReferenceCount.hh>
39 
40 
41 namespace protocols {
42 namespace toolbox {
43 namespace match_enzdes_util {
44 
45 //tiny helper class for EnzdesLoopInfo
47 
48 public:
49 
51 
52  virtual
54 
55  virtual
56  bool
57  read_data( utility::io::izstream & data );
58 
59  virtual
60  void
61  write_data() const;
62 
63  core::Size targ_res() const {
64  return targ_res_; }
65 
67  targ_atom_names() const{
68  return targ_atom_names_; }
69 
72  return targ_base_atom_names_; }
73 
76  return targ_base2_atom_names_; }
77 
80  return loopres_atom_names_; }
81 
84  return loopres_base_atom_names_; }
85 
89 
90 
92  num_interactions() const {
93  return num_interactions_; }
94 
96  dis() const;
97 
99  loop_ang() const;
100 
102  targ_ang() const;
103 
105  loop_dih() const;
106 
108  targ_dih() const;
109 
111  lt_dih() const;
112 
113 
114 protected:
115 
116  bool
118 
119  void
121  targ_res_ = targ_res; }
122 
123  void
125  targ_atom_names_ = t_atom_names; }
126 
127  void
129  loopres_atom_names_ = l_atom_names; }
130 
131 private:
137 
139 
143 };
144 
145 
146 //tiny helper class for EnzdesLoopInfo
148 
149 public:
150 
152 
153  virtual
155 
156  bool
157  read_data( utility::io::izstream & data );
158 
159  void
160  write_data() const;
161 
162  bool
163  resA() const{
164  return resA_; }
165 
166  core::Size
167  cst_block() const {
168  return cst_block_; }
169 
170 private:
171  //if this is true it's resA, otherwise resB
172  bool resA_;
173 
175 
176 };
177 
178 
180 {
181 
182 
183 public:
184  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
185  virtual ~EnzdesLoopInfo();
186 
187  EnzdesLoopInfo();
188 
189  bool
190  read_loops_file_block( utility::io::izstream & data );
191 
192  bool
193  check_data_consistency( bool report = false ) const;
194 
195  bool
197  return ss_strings_.size() != 0; }
198 
199  bool
200  pdb_numb() const {
201  return pdb_numb_;}
202 
203  bool
204  pose_numb() const {
205  return pose_numb_;}
206 
207  core::Size
208  start_pdb() const {
209  return loop_start_pdb_; }
210 
211  core::Size
212  stop_pdb() const {
213  return loop_end_pdb_; }
214 
215  char
216  start_pdb_chain() const {
217  return loop_start_pdb_chain_; }
218 
219  char
220  stop_pdb_chain() const {
221  return loop_end_pdb_chain_; }
222 
223  core::Size
224  start() const {
225  return loop_start_; }
226 
227  core::Size
228  stop() const {
229  return loop_end_; }
230 
231  core::Size
232  min_length() const {
233  return min_length_; }
234 
235  core::Size
236  max_length() const {
237  return max_length_; }
238 
239 
241  ss_strings() const {
242  return ss_strings_; }
243 
246  return res_interactions_; }
247 
250  return cstres_interactions_; }
251 
252  //still unimplemented
253  bool
255  return preserve_buried_contacts_; }
256 
257  //still unimplemented
258  bool
261 
262 
263 protected:
264 
265  /// @brief generate all secondary structure strings that correspond to
266  /// the given blueprint. A blueprint is a string containing a succession
267  /// of the following substrings: 1 ss-char followed by '(', a number and ')'
268  /// or 1 ss-char followed by '(', a number, '-', a second number, and ')',
269  /// i.e. H(3-5)L(2-3)H(8)L(5-10)E(4-5)L(2-3)
270  /// the function interprets this string to mean a helix of length between
271  /// 3 and 5, followed by a loop of length 2 or 3, followed by helix of
272  /// length 8, followed by a loop of length between 5 and 10, followed
273  /// by a sheet of length 4 or 5, followed by a loop of length 2 or 3.
274  /// the function then generates one string for every possible combination
275  /// of secondary structure elements that correspond to this blueprint.
276  /// in the above example, a total of 3*2*1*6*2*2 = 144 different secondary
277  /// structure strings will be generated. for every one of these strings,
278  /// the function checks whether its length is within min_length_ and max_length_,
279  /// and if this is the case, the string gets saved in the ss_strings_ vector.
280  void
281  generate_ss_strings_from_blueprint( std::string const & ss_blueprint );
282 
283 //data
284 private:
285 
286  //some basic information about the loop
290 
292 
293 
294  //user specified secondary structure strings
296 
297  //unimplemented at the moment
299 
300  //unimplemented at the moment
302 
304 
306 
307 };
308 
309 /// @brief class to process an enzdes loops file
311 {
312 
313 public:
314  ///@brief Automatically generated virtual destructor for class deriving directly from ReferenceCount
315  virtual ~EnzdesLoopsFile();
316 
317  EnzdesLoopsFile();
318 
319  bool
321 
323  loop_info( core::Size l ) const;
324 
325  bool
326  file_read() const {
327  return file_read_; }
328 
330  return enzloops_.size(); }
331 
332  void
333  clear();
334 
335 private:
336 
338 
340 
341 
342 }; //class EnzdesLoopsFile
343 
344 
345 } //match_enzdes_util
346 } //toolbox
347 } //protocols
348 
349 
350 
351 
352 #endif //