Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HBondFeatures.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/features/HBondFeatures.hh
11 /// @brief report HBond geometry and scores to features Statistics Scientific Benchmark
12 /// @author Matthew O'Meara (mattjomeara@gmail.com)
13 
14 #ifndef INCLUDED_protocols_features_HBondFeatures_hh
15 #define INCLUDED_protocols_features_HBondFeatures_hh
16 
17 // Unit Headers
20 
21 //External
22 #include <boost/uuid/uuid.hpp>
23 
24 // Project Headers
25 #include <core/types.hh>
27 #include <core/pose/Pose.fwd.hh>
31 
35 
36 // Utility Headers
37 #include <utility/vector1.hh>
38 #include <utility/tag/Tag.fwd.hh>
39 
40 // C++ Headers
41 #include <string>
42 
43 namespace protocols{
44 namespace features{
45 
46 /// @brief How a hydrogen bond should be defined See note for
47 /// definition_type_ below.
48 enum HBDefType {
50  hbdef_ENERGY, // define what constitutes a hydrogen bond by its energy
51  hbdef_AHDIST, // define what constitutes a hydrogen bond by the A-H distance
53 };
54 
55 
56 
58 public:
59  HBondFeatures();
60 
63 
64  HBondFeatures( HBondFeatures const & src );
65 
66  virtual ~HBondFeatures();
67 
68  ///@brief return string with class name
70  type_name() const;
71 
72  ///@brief generate the table schemas and write them to the database
73  void
75  utility::sql_database::sessionOP db_session) const;
76 
77 private:
78  void
80  utility::sql_database::sessionOP db_session) const;
81 
82  void
84  utility::sql_database::sessionOP db_session) const;
85 
86  void
88  utility::sql_database::sessionOP db_session) const;
89 
90  void
92  utility::sql_database::sessionOP db_session) const;
93 
94  void
96  utility::sql_database::sessionOP db_session) const;
97 
98  void
100  utility::sql_database::sessionOP db_session) const;
101 
102  void
104  utility::sql_database::sessionOP db_session) const;
105 
106  void
108  utility::sql_database::sessionOP db_session) const;
109 
110  void
112  utility::sql_database::sessionOP db_session) const;
113 
114 public:
115  ///@brief return the set of features reporters that are required to
116  ///also already be extracted by the time this one is used.
119 
120  ///@brief get what criteria should be used to define what
121  ///constitutes a hydrogen bond
122  // Undefined, commenting out to fix PyRosetta build HBDefType definition_type() const;
123 
124  ///@brief set what criteria should be used to define what
125  ///constitutes a hydrogen bond
126  // Undefined, commenting out to fix PyRosetta build void definition_type( HBDefType definition_type );
127 
128 
129  ///@brief get the definition threshold that should be
130  ///used to define what constitutes a hydrogen bond
131  // Undefined, commenting out to fix PyRosetta build core::Real definition_threshold() const;
132 
133  ///@brief set the definition threshold that should be
134  ///used to define what constitutes a hydrogen bond
135  // Undefined, commenting out to fix PyRosetta build void definition_threshold( core::Real definition_threshold );
136 
137  void
138  parse_my_tag(
139  utility::tag::TagPtr const tag,
141  protocols::filters::Filters_map const & /*filters*/,
142  protocols::moves::Movers_map const & /*movers*/,
143  core::pose::Pose const & /*pose*/);
144 
145  ///@brief collect all the feature data for the pose
146  core::Size
148  core::pose::Pose const & pose,
149  utility::vector1< bool > const & relevant_residues,
150  boost::uuids::uuid struct_id,
151  utility::sql_database::sessionOP db_session);
152 
153  void
155  core::pose::Pose const & pose,
156  boost::uuids::uuid struct_id,
157  core::Size site_id,
158  core::Size resNum,
159  core::Size atmNum,
160  bool is_donor,
161  utility::sql_database::sessionOP db_session);
162 
163  void
165  core::pose::Pose const & pose,
166  core::Size resNum,
167  core::Size atmNum,
168  core::Size heavy_atmNum,
169  boost::uuids::uuid struct_id,
170  core::Size site_id,
171  utility::sql_database::sessionOP db_session);
172 
173  void
175  core::pose::Pose const & pose,
176  core::Size resNum,
177  core::Size atmNum,
178  boost::uuids::uuid struct_id,
179  core::Size site_id,
180  core::id::AtomID_Map< core::Real > const & atom_sasa_s,
181  core::id::AtomID_Map< core::Real > const & atom_sasa_m,
182  core::id::AtomID_Map< core::Real > const & atom_sasa_l,
184  core::id::AtomID_Map< core::Real > const & site_hbond_energies,
185  utility::sql_database::sessionOP db_session);
186 
187  void
189  core::pose::Pose const & pose,
190  core::Size resNum,
191  core::Size atmNum,
192  boost::uuids::uuid struct_id,
193  core::Size site_id,
194  utility::sql_database::sessionOP db_session);
195 
196  void
198  core::scoring::hbonds::HBond const & hbond,
199  boost::uuids::uuid struct_id,
200  core::Size hbond_id,
201  core::id::AtomID_Map< core::Size > const & site_ids,
203  utility::sql_database::sessionOP db_session);
204 
205  void
207  core::pose::Pose const & pose,
208  core::scoring::hbonds::HBondOptions const & hbond_options,
209  core::scoring::hbonds::HBond const & hbond,
210  boost::uuids::uuid struct_id,
211  core::Size hbond_id,
212  utility::sql_database::sessionOP db_session);
213 
214  void
216  core::pose::Pose const & pose,
217  core::scoring::hbonds::HBond const & hbond,
218  boost::uuids::uuid struct_id,
219  core::Size hbond_id,
220  utility::sql_database::sessionOP db_session);
221 
222  void
224  core::pose::Pose const & pose,
225  core::scoring::hbonds::HBond const & hbond,
226  boost::uuids::uuid struct_id,
227  core::Size hbond_id,
228  utility::sql_database::sessionOP db_session);
229 
230 
231 private:
232 
234 
235  // The standard Rosetta definition of a hydrogen bond is when the
236  // hbond energy < 0. However, to detect the distribution around
237  // this threhsold it can be useful to define hydrogen bonds
238  // differently, either by a higher energy thershold or using some
239  // other threshold, like the distance between the acceptor and the
240  // hydrogen.
243 };
244 
245 } // namespace
246 } // namespace
247 
248 #endif // include guard