Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HelixBundleFeatures.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 // :notabs=false:tabSize=4:indentsize=4:
4 //
5 // (c) copyright rosetta commons member institutions.
6 // (c) this file is part of the rosetta software suite and is made available under license.
7 // (c) the rosetta software is developed by the contributing members of the rosetta commons.
8 // (c) for more information, see http://www.rosettacommons.org. questions about this can be
9 // (c) addressed to university of washington uw techtransfer, email: license@u.washington.edu.
10 
11 /// @file HelixBundleFeatures.hh
12 /// @brief
13 /// @author Tim Jacobs
14 
15 #ifndef INCLUDED_protocols_features_helixAssembly_HelixBundleFeatures_hh
16 #define INCLUDED_protocols_features_helixAssembly_HelixBundleFeatures_hh
17 
18 //Unit
20 
21 //External
22 #include <boost/uuid/uuid.hpp>
23 
24 //Protocols
27 
28 //Devel
30 
31 //Utility
32 #include <utility/vector1.hh>
33 
34 namespace protocols {
35 namespace features {
36 namespace helixAssembly {
37 
39 {
41  fragment_1(frag1),
42  fragment_2(frag2)
43  {}
44 
47 
53 };
54 
56 {
57 
58 public:
59 
61 
62  virtual
64  type_name() const {
65  return "HelixBundleFeatures";
66  };
67 
68  ///@brief generate the table schemas and write them to the database
69  virtual
70  void
72  utility::sql_database::sessionOP db_session
73  ) const;
74 
75  virtual
76  void
78  utility::tag::TagPtr const tag,
80  protocols::filters::Filters_map const & /*filters*/,
81  protocols::moves::Movers_map const & /*movers*/,
82  core::pose::Pose const & pose
83  );
84 
85  ///@brief return the set of features reporters that are required to
86  ///also already be extracted by the time this one is used.
89 
90  bool
92  std::set<HelicalFragmentOP> const & frag_set
93  );
94 
95  bool
97  core::pose::Pose const & pose,
99  );
100 
101  ///@brief collect all the feature data for the pose
102  virtual
103  core::Size
105  core::pose::Pose const & pose,
106  utility::vector1<bool> const & relevant_residues,
107  boost::uuids::uuid struct_id,
108  utility::sql_database::sessionOP db_session
109  );
110 
113  boost::uuids::uuid struct_id,
114  utility::sql_database::sessionOP db_session
115  );
116 
117  void
119  core::pose::Pose const & pose,
120  HelicalFragmentOP fragment
121  );
122 
123  ///@brief create a bundle-pose from the combination of fragments
124  /// and record the "interface" SASA for each helix against the
125  /// rest of the bundle
126  void
128  core::pose::Pose const & pose,
129  std::set<HelicalFragmentOP> const & frag_set
130  );
131 
134  core::pose::Pose const & pose,
136  );
137 
138  ///@brief calculate the shared fa_attr for each pair of helices
139  /// in the bundle
140  void
142  core::pose::Pose const & pose,
143  FragmentPair & fragment_pair
144  );
145 
146  ///@brief calculate the crossing angles of the helix fragment in the bundle set
147  void
149  core::pose::Pose const & pose,
150  FragmentPair & fragment_pair
151  );
152 
153 private:
154 
155  //Maximum allowable distance, in angstroms, between any two helix ends
157 
158  //number of helices in the bundle
160 
161  //number of residues in each helix
163 
164  //minimum residue_normalized fa_attr between two helix fragments in order to be considered
165  //interacting
167 
168  //minimum fraction of
170 
171  //maximum degrees off parallel for crossing angle
173 
175 
177 };
178 
179 } //namespace helixAssembly
180 } //namespace features
181 } //namespace protocols
182 
183 #endif