Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SS_Killhairpins_Info.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/SS_Killhairpins_Info.hh
11 /// @brief Scoring manager class header
12 /// @author Robert Vernon (rvernon@u.washington.edu)
13 
14 
15 #ifndef INCLUDED_core_scoring_SS_Killhairpins_Info_hh
16 #define INCLUDED_core_scoring_SS_Killhairpins_Info_hh
17 
18 /// Unit headers
19 // AUTO-REMOVED #include <core/scoring/SS_Info.fwd.hh>
20 
21 /// Package headers
22 #include <core/types.hh>
23 // AUTO-REMOVED #include <core/chemical/ResidueType.fwd.hh>
24 // AUTO-REMOVED #include <core/pose/Pose.fwd.hh>
25 #include <basic/datacache/CacheableData.hh>
26 
27 // utility headers
28 // AUTO-REMOVED #include <utility/io/izstream.hh>
29 
30 /// Utility headers
31 // AUTO-REMOVED #include <utility/vector1.hh>
32 
33 /// Numeric headers
34 // AUTO-REMOVED #include <numeric/xyzVector.hh>
35 
36 // ObjexxFCL Headers
37 // AUTO-REMOVED #include <ObjexxFCL/FArray1D.hh>
38 // AUTO-REMOVED #include <ObjexxFCL/FArray2D.hh>
39 
40 // C++ headers
41 // AUTO-REMOVED #include <string>
42 #include <iosfwd>
43 
44 #include <utility/vector1.hh>
45 #include <utility/io/izstream.fwd.hh>
46 
47 
48 namespace core {
49 namespace scoring {
50 
51 //////////////////////////////////////////////////////////////////////////////////////////////////////
52 
53 struct Hairpin {
54 
55  std::pair< std::pair< core::Size, core::Size>, std::pair< core::Size, core::Size> > range_pair_;
56 
57  Hairpin();
58 
59  Hairpin( core::Size s1_1, core::Size s1_2, core::Size s2_1, core::Size s2_2);
60 
61  ~Hairpin();
62 
63  core::Size s1_start() const;
64 
65  core::Size s1_end() const;
66 
67  core::Size s2_start() const;
68 
69  core::Size s2_end() const;
70 
71  /// @brief copy assignment
72  Hairpin const &
73  operator =( Hairpin const & s );
74 
75  friend
76  std::ostream &
77  operator<< ( std::ostream & out, Hairpin const & s );
78 
79 };
80 
81 struct Hairpins {
82 
84 
85  /// @brief default constructor
86  Hairpins();
87 
88  /// @brief copy constructor
89  Hairpins(
90  Hairpins const & s
91  );
92 
93  /// @brief default destructor
94  ~Hairpins();
95 
96  /// @brief copy assignment
97  Hairpins const &
98  operator =( Hairpins const & s );
99 
100  void append_hairpin( core::Size s1_1, core::Size s1_2, core::Size s2_1, core::Size s2_2);
101 
102  void clear();
103 
105 
106  core::Size size() const;
107 
108  friend
109  std::ostream &
110  operator<< ( std::ostream & out, Hairpins const & s );
111 
112 };
113 
114 
115 //////////////////////////////////////////////////////////////////////////////////////////////////////
116 class SS_Killhairpins_Info : public basic::datacache::CacheableData {
117 public:
118 
120 
122 
123 
124  basic::datacache::CacheableDataOP
125  clone() const
126  {
127  return new SS_Killhairpins_Info( *this );
128  }
129 
130  inline
131  Hairpins const &
132  hairpins() const
133  {
134  return hairpins_;
135  }
136 
137  inline
138  Hairpins &
140  {
141  return hairpins_;
142  }
143 
144 
145  //Returns true if the two supplied residues numbers fall within a "killed" hairpin
146  bool
147  check_hairpin( core::Size const & strand1_res, core::Size const & strand2_res );
148 
149  void
150  setup_from_psipred(utility::io::izstream & input_file);
151 
152  void
153  setup_from_kill_hairpins_file(utility::io::izstream & input_file);
154 
155  void
157 
158  inline
159  bool kill_parallel() const {
160  return kill_parallel_;
161  }
162 
163  inline
164  bool kill_antiparallel() const {
165  return kill_antiparallel_;
166  }
167 
168 
169 private:
170 
172 
174 
176 
177 };
178 
179 } // ns scoring
180 } // ns core
181 
182 #endif