Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
hbonds.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
11 /// @brief
12 /// @author
13 
14 #ifndef INCLUDED_core_scoring_hbonds_hbonds_hh
15 #define INCLUDED_core_scoring_hbonds_hbonds_hh
16 
21 
22 #include <core/pose/Pose.fwd.hh>
23 
28 #include <utility/vector1.hh>
29 
30 
31 namespace core {
32 namespace scoring {
33 namespace hbonds {
34 
35 void
37  pose::Pose const & pose,
38  bool const calculate_derivative,
39  HBondSet & hbond_set
40 );
41 
42 void
44  pose::Pose const & pose,
45  bool const calculate_derivative,
46  HBondSet & hbond_set,
47  bool const exclude_bb = false,
48  bool const exclude_bsc = false,
49  bool const exclude_scb = false,
50  bool const exclude_sc = false);
51 
52 ///@breif Fill HBondSet using the distance between the acceptor and
53 ///hydrogen atoms as the definitional cutoff. Do not exclude any
54 ///contacts and do not evaluate derivatives.
55 void
57  pose::Pose const & pose,
58  Real const AHdist_threshold,
59  HBondSet & hbond_set);
60 
61 void
63  HBondSet const & hbond_set,
64  EnergyMap & emap
65 );
66 
67 /*void
68 get_hbond_energies(
69  HBondSet const & hbond_set,
70  EnergyMap & emap);*/
71 
72 void
74  HBondDatabase const & database,
75  conformation::Residue const & don_rsd,
76  conformation::Residue const & acc_rsd,
77  Size const don_nb,
78  Size const acc_nb,
79  bool const evaluate_derivative,
80  bool const exclude_don_bb,
81  bool const exclude_don_bsc,
82  bool const exclude_acc_scb,
83  bool const exclude_acc_sc,
84  // output
85  HBondSet & hbond_set
86 );
87 
88 void
90  HBondDatabase const & database,
91  conformation::Residue const & don_rsd,
92  conformation::Residue const & acc_rsd,
93  Size const don_nb,
94  Size const acc_nb,
95  bool const evaluate_derivative,
96  bool const exclude_don_bb,
97  bool const exclude_don_bsc,
98  bool const exclude_acc_scb,
99  bool const exclude_acc_sc,
100  HBondOptions const & options,
101  // output
102  EnergyMap & emap
103 );
104 
105 void
107  HBondDatabase const & database,
108  conformation::Residue const & rsd,
109  bool const evaluate_derivative,
110  HBondSet & hbond_set);
111 
112 
113 void
115  HBondDatabase const & database,
116  conformation::Residue const & rsd,
117  bool const evaluate_derivative,
118  HBondOptions const & options,
119  EnergyMap & emap);
120 
121 Real
123  HBEvalTuple const & hbe_type,
124  int const don_nb,
125  int const acc_nb,
126  HBondOptions const & options);
127 
128 // TODO: clean up this code duplication:
129 
130 //The membrane version of identify_hbonds_1way use the MembraneEmbed
131 //object cached with the pose to compute a membrane-aware
132 //environmental dependence hydrogen bonding potential.
133 // See for example http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2694939/
134 
135 //One way to clean this up is to do the following
136 // create a base class HBondEnvironment
137 // Derive -> HBondNeighborCountEnvironment which has the number of neighbors for the donor and acceptor residues
138 // Derive -> HBondMembraneEnvironment which stores the MembraneEmbed or some subset of it
139 // extend the interface to hbond_set to get a HBondEnvironment. This will require adding additional member data to the hbond_set
140 // modify the identify_hbonds_1way interface to take a reference to an HBondEnvironment
141 // use the passed in HBondEnvironment to compute the environmental weight in identify_hbonds_1way
142 // Note: care will have to be taken to not create and destroy lots of copies of HBondEnvironment objects
143 
144 // Once this has been done, please remove all traces of the identify_hbonds_1way_membrane functions.
145 void
147  HBondDatabase const & database,
148  conformation::Residue const & don_rsd,
149  conformation::Residue const & acc_rsd,
150  Size const don_nb,
151  Size const acc_nb,
152  bool const evaluate_derivative,
153  bool const exclude_don_bb,
154  bool const exclude_don_bsc,
155  bool const exclude_acc_scb,
156  bool const exclude_acc_sc,
157  // output
158  HBondSet & hbond_set,
159  pose::Pose const & pose
160 );
161 
162 void
164  HBondDatabase const & database,
165  conformation::Residue const & don_rsd,
166  conformation::Residue const & acc_rsd,
167  Size const don_nb,
168  Size const acc_nb,
169  bool const evaluate_derivative,
170  bool const exclude_don_bb,
171  bool const exclude_don_bsc,
172  bool const exclude_acc_scb,
173  bool const exclude_acc_sc,
174  HBondOptions const & options,
175  // output
176  EnergyMap & emap,
177  pose::Pose const & pose
178 );
179 
180 Real
182  pose::Pose const & pose,
183  int const don_nb,
184  int const acc_nb,
185  Vector const & Hxyz,
186  Vector const & Axyz
187 );
188 
189 Real
191  Vector const & normal,
192  Vector const & center,
193  Real const & thickness,
194  Real const & steepness,
195  int const don_nb,
196  int const acc_nb,
197  Vector const & Hxyz,
198  Vector const & Axyz
199 );
200 
201 Real
203  HBEvalType const & hbe_type,
204  EnergyMap const & emap,
205  bool const intra_res
206 );
207 
208 
209 bool
210 nonzero_hbond_weight( ScoreFunction const & scorefxn );
211 
212 /*void
213 get_atom_hbond_derivative(
214  id::AtomID const & atom,
215  HBondSet const & hbond_set,
216  EnergyMap const & weights,
217  Vector & f1,
218  Vector & f2
219 );*/
220 
221 }
222 }
223 }
224 
225 #endif