Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
scoring
hbonds
hbonds_geom.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_geom_hh
15
#define INCLUDED_core_scoring_hbonds_hbonds_geom_hh
16
17
// Package headers
18
#include <
core/scoring/hbonds/types.hh
>
19
// AUTO-REMOVED #include <core/scoring/hbonds/HBondSet.fwd.hh>
20
// AUTO-REMOVED #include <core/scoring/hbonds/hbtrie/HBAtom.hh>
21
#include <
core/scoring/hbonds/HBEvalTuple.hh
>
22
#include <
core/scoring/hbonds/HBondDatabase.fwd.hh
>
23
#include <
core/scoring/hbonds/HBondOptions.fwd.hh
>
24
#include <
core/scoring/DerivVectorPair.fwd.hh
>
25
26
// Project headers
27
#include <
core/chemical/types.hh
>
28
#include <
core/conformation/Residue.fwd.hh
>
29
30
#include <
core/scoring/hbonds/hbtrie/HBAtom.fwd.hh
>
31
32
33
34
35
namespace
core {
36
namespace
scoring {
37
namespace
hbonds {
38
39
HBAccChemType
40
get_hb_acc_chem_type
(
41
int
const
aatm,
42
conformation::Residue
const
& acc_rsd
43
);
44
45
HBDonChemType
46
get_hb_don_chem_type
(
47
int
const
datm,
48
conformation::Residue
const
& don_rsd
49
);
50
51
HBEvalTuple
52
hbond_evaluation_type
(
53
hbtrie::HBAtom
const
& datm,
54
int
const
& don_rsd,
55
hbtrie::HBAtom
const
& aatm,
56
int
const
& acc_rsd
57
);
58
59
HBSeqSep
60
get_seq_sep
(
61
HBDonChemType
const
& don_chem_type,
62
HBAccChemType
const
& acc_chem_type,
63
int
const
& sep
64
);
65
66
// hbond evaluation type -- determines what scoring function to use
67
extern
Real
DUMMY_DERIV
;
68
extern
bool
DUMMY_BOOL
;
69
extern
HBGeoDimType
DUMMY_HBGEODIMTYPE
;
70
extern
HBondDerivs
DUMMY_DERIVS
;
71
extern
HBondDerivs
const
ZERO_DERIV2D
;
72
73
74
HBEvalTuple
75
hbond_evaluation_type
(
76
int
const
datm,
77
conformation::Residue
const
& don_rsd,
78
int
const
aatm,
79
conformation::Residue
const
& acc_rsd
80
);
81
82
// @brief Inner-most function for hydrogen bond energy evaluation. This function
83
// evaluates the polynomials describing the energy for a hydrogen bond in terms of
84
// its geometry. AHdis is the distance between the acceptor and the hydrogen, xD is
85
// the cosine of (180 - the angle between the acceptor, the hydrogen and the donor heavy atom),
86
// xH is the cosine of (180 - the angle between the acceptor-base, the acceptor, and the hydrogen),
87
// and chi is the dihedral defined by the acceptor-base 2, the acceptor base, the acceptor, and
88
// the hydrogen. The chi term only contributes to the energy if hbondoptions.sp2_chi_penalty()
89
// returns true. If the last 6 parameters are not specified, then the derivatives are not evaluated.
90
void
91
hbond_compute_energy
(
92
HBondDatabase
const
& database,
93
HBondOptions
const
& hbondoptions,
94
HBEvalTuple hbt,
// used internally & by geometric solvation
95
Real
const
AHdis,
// acceptor proton distance
96
Real
const
xD,
// -cos(180-theta), where theta is defined by Tanja K.
97
Real
const
xH,
// cos(180-phi), where phi is defined by Tanja K.
98
Real
const
chi,
// AB2-AB-A-H dihdral angle for sp2 hybridized acceptors
99
Real
& energy,
// main return value #1: sum of the dAH term, the xD term and the xH term.
100
bool
& apply_chi_torsion_penalty =
DUMMY_BOOL
,
// did this hbond get the chi torsion penalty?
101
HBGeoDimType
& AHD_geometric_dimension =
DUMMY_HBGEODIMTYPE
,
// measure in angle in cosine space?
102
Real
& dE_dr =
DUMMY_DERIV
,
103
Real
& dE_dxD =
DUMMY_DERIV
,
104
Real
& dE_dxH =
DUMMY_DERIV
,
105
Real
& dchipen_dBAH =
DUMMY_DERIV
,
106
Real
& dchipen_dchi =
DUMMY_DERIV
107
);
108
109
/// @brief Evaluate the hydrogen bond energy and derivatives after having first calculated
110
/// the HD and BA *u*nit vectors
111
void
112
hb_energy_deriv_u
(
113
HBondDatabase
const
& database,
114
HBondOptions
const
& hbondoptions,
115
HBEvalTuple
const
hbt,
// hbond evaluation tuple
116
Vector
const
& Hxyz,
// proton
117
Vector
const
& Dxyz,
// donor -- only needed for derivative evaluation
118
Vector
const
& HDunit,
// proton-to-donor unit vector
119
Vector
const
& Axyz,
// acceptor
120
Vector
const
& Bxyz,
// pseudo acceptor-base coordinate -- only needed for derivative evaluation
121
Vector
const
& BAunit,
// unit vector towards the acceptor base
122
Vector
const
& B2xyz,
// coordinate of acceptor-base 2
123
Real
& energy,
124
bool
const
calculate_derivative =
false
,
125
HBondDerivs & deriv =
DUMMY_DERIVS
126
);
127
128
/// @brief Evaluate the hydrogen bond energy and derivatives after having first calculated
129
/// the HD and BA *u*nit vectors; deriv type must have been chosen (why does this exist?)
130
void
131
hb_energy_deriv_u2
(
132
HBondDatabase
const
& database,
133
HBondOptions
const
& hbondoptions,
134
HBEvalTuple
const
hbt,
// hbond evaluation type
135
HBDerivType
const
deriv_type,
136
Vector
const
& Hxyz,
// proton
137
Vector
const
& Dxyz,
// donor
138
Vector
const
& HDunit,
// donor
139
Vector
const
& Axyz,
// acceptor
140
Vector
const
& Bxyz,
// pseudo acceptor-base coordinate
141
Vector
const
& BAunit,
// unit vector towards base
142
Vector
const
& B2xyz,
// coordinate of acceptor-base 2
143
Real
& energy,
144
HBondDerivs & deriv =
DUMMY_DERIVS
145
);
146
147
148
//hbond evaluation type -- determines what scoring function to use
149
void
150
hb_energy_deriv
(
151
HBondDatabase
const
& database,
152
HBondOptions
const
& hbondoptions,
153
HBEvalTuple
const
hbt,
// hbond evaluation type
154
Vector
const
& Dxyz,
// donor coords
155
Vector
const
& Hxyz,
// proton
156
Vector
const
& Axyz,
// acceptor
157
Vector
const
& Bxyz,
// acceptor base
158
Vector
const
& B2xyz,
// 2nd acceptor base for ring & SP2 acceptors
159
Real
& energy,
160
bool
const
calculate_derivative =
false
,
161
HBondDerivs & deriv =
DUMMY_DERIVS
// f1/f2 for four atoms
162
);
163
164
void
165
hb_energy_deriv
(
166
HBondDatabase
const
& database,
167
HBondOptions
const
& hbondoptions,
168
HBEvalTuple
const
hbt,
// hbond evaluation type
169
Vector
const
& Dxyz,
// donor coords
170
Vector
const
& Hxyz,
// proton
171
Vector
const
& Axyz,
// acceptor
172
Vector
const
& Bxyz,
// acceptor base
173
Vector
const
& B2xyz,
// 2nd acceptor base for ring & SP2 acceptors
174
Real
& energy,
175
HBDerivType
const
deriv_type,
176
HBondDerivs & deriv =
DUMMY_DERIVS
// f1/f2 for four atoms
177
);
178
179
Vector
180
create_acc_orientation_vector
(
181
HBondOptions
const
& hbondoptions,
182
conformation::Residue
const
& residue,
183
int
atom_id
184
);
185
186
// hack?
187
extern
Real
DUMMY_DERIV
;
188
189
190
Vector
191
create_don_orientation_vector
(
192
conformation::Residue
const
& residue,
193
int
atom_id
194
);
195
196
void
197
make_hbBasetoAcc_unitvector
(
198
HBondOptions
const
& hbondoptions,
199
chemical::Hybridization
const
& acc_hybrid,
200
Vector
const
& Axyz,
201
Vector
const
& Bxyz,
202
Vector
const
& B2xyz,
203
Vector
& PBxyz,
/// the coordinate for the pseudo-acceptor-base atom, used in derivative evaluation
204
Vector
& BAunit
205
);
206
207
void
208
assign_abase_derivs
(
209
HBondOptions
const
& hbondoptions,
210
conformation::Residue
const
& acc_rsd,
211
Size
acc_atom,
212
HBEvalTuple
const
hbe_type,
213
DerivVectorPair
const
& abase_deriv,
214
Real
weighted_energy,
215
utility::vector1< DerivVectorPair >
& acc_atom_derivs
216
);
217
218
219
}
220
}
221
}
222
223
#endif
Generated on Sat Jun 1 2013 11:37:20 for Rosetta 3.5 by
1.8.4