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
protocols
match
downstream
LigandConformerBuilder.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 protocols/match/downstream/LigandConformerBuilder.hh
12
/// @brief
13
/// @author Alex Zanghellini (zanghell@u.washington.edu)
14
/// @author Andrew Leaver-Fay (aleaverfay@gmail.com), porting to mini
15
/// @author Florian Richter (floric@u.washington.edu)
16
17
#ifndef INCLUDED_protocols_match_downstream_LigandConformerBuilder_hh
18
#define INCLUDED_protocols_match_downstream_LigandConformerBuilder_hh
19
20
// Unit headers
21
#include <
protocols/match/downstream/LigandConformerBuilder.fwd.hh
>
22
23
// Package headers
24
#include <
protocols/match/downstream/DownstreamBuilder.hh
>
25
#include <
protocols/toolbox/match_enzdes_util/LigandConformer.fwd.hh
>
26
#include <
protocols/match/BumpGrid.fwd.hh
>
27
// AUTO-REMOVED #include <protocols/match/Hit.hh>
28
29
// Project headers
30
#include <
core/types.hh
>
31
#include <
core/chemical/ResidueType.fwd.hh
>
32
#include <
core/conformation/Residue.fwd.hh
>
33
#include <
core/scoring/etable/count_pair/CountPairFunction.fwd.hh
>
34
35
// Numeric headers
36
// AUTO-REMOVED #include <numeric/HomogeneousTransform.hh>
37
38
// Utility headers
39
#include <utility/pointer/ReferenceCount.hh>
40
41
// C++ headers
42
#include <list>
43
44
#include <utility/fixedsizearray1.hh>
45
#include <utility/vector1.hh>
46
47
#ifdef WIN32
48
#include <
protocols/toolbox/match_enzdes_util/LigandConformer.hh
>
49
#endif
50
51
52
53
namespace
protocols {
54
namespace
match
{
55
namespace
downstream {
56
57
class
LigandConformerBuilder
:
public
DownstreamBuilder
{
58
public
:
59
typedef
DownstreamBuilder
parent
;
60
61
public
:
62
LigandConformerBuilder
();
63
64
LigandConformerBuilder
(
LigandConformerBuilder
const
& );
65
66
// for collision checking
67
//LigandConformerBuilder( LigandConformerBuilder const & , core::chemical::ResidueTypeCOP upstream_restype );
68
69
virtual
~LigandConformerBuilder
();
70
71
virtual
72
DownstreamBuilderOP
73
clone
()
const
;
74
75
virtual
76
std::list< Hit >
77
build
(
78
HTReal
const
& atom3_frame,
79
Size
const
scaffold_build_point_id,
80
Size
const
upstream_conf_id,
81
Size
const
external_geometry_id,
82
core::conformation::Residue
const
& upstream_residue
83
)
const
;
84
85
86
/// @brief goes through the list of conformers and does rms calculations (overlaid
87
/// on the relevant_atom_indices) between them. any conformers that have an rms
88
/// < rmsd_unique_cutoff_ will be grouped together in a conformer_group
89
void
90
determine_redundant_conformer_groups
(
91
utility::vector1< core::Size >
const
& relevant_atom_indices
92
);
93
94
virtual
95
void
96
set_bb_grid
(
97
BumpGridCOP
bbgrid
98
);
99
100
virtual
bool
101
hits_potentially_incompatible
()
const
;
102
103
virtual
bool
compatible
(
104
Hit
const
& my_hit,
105
DownstreamBuilder
const
& other,
106
Hit
const
& other_hit,
107
bool
first_dispatch =
true
108
)
const
;
109
110
virtual
bool
compatible
(
111
Hit
const
& my_hit,
112
LigandConformerBuilder
const
& other,
113
Hit
const
& other_hit,
114
bool
first_dispatch =
true
115
)
const
;
116
117
virtual
118
void
119
require_atom_to_reside_in_active_site
(
120
core::id::AtomID
const
&
id
121
);
122
123
virtual
124
ProbeRadius
125
atom1_radius
()
const
;
126
127
virtual
128
ProbeRadius
129
atom2_radius
()
const
;
130
131
virtual
132
ProbeRadius
133
atom3_radius
()
const
;
134
135
virtual
136
bool
137
atom1_belongs_in_active_site
()
const
;
138
139
virtual
140
bool
141
atom2_belongs_in_active_site
()
const
;
142
143
virtual
144
bool
145
atom3_belongs_in_active_site
()
const
;
146
147
148
virtual
149
Real
150
atom1_atom2_distance
()
const
;
151
152
virtual
153
Real
154
atom2_atom3_distance
()
const
;
155
156
/// @brief Returns an angle in degrees between the three downstream atoms.
157
virtual
158
Real
159
atom1_atom2_atom3_angle
()
const
;
160
161
virtual
162
void
163
coordinates_from_hit
(
164
Hit
const
& hit,
165
utility::vector1< AtomID >
const
& atom_indices,
166
utility::vector1< Vector >
& atom_coords
167
)
const
;
168
169
virtual
170
core::pose::PoseCOP
171
downstream_pose_from_hit
(
172
Hit
const
& hit
173
)
const
;
174
175
virtual
176
Size
177
n_possible_hits_per_at3frame
()
const
;
178
179
public
:
180
// Initialization
181
182
/// @brief Specify the residue, with coordinates, that's being used as the downstream
183
/// partner. This class is meant to be used in conjuction with the ClassicMatchAglrotihm,
184
/// and therefore the initialization routines are specific for that algorithm. In this
185
/// initialization function, one must list atoms "D1, D2 and D3" in the convention of
186
/// describing the rigid-body orientation between three atoms of the upstream partner
187
/// (atoms U3, U2 & U1) and three atoms of the downstream partner (atoms D1, D2 & D3) in terms
188
/// of 2 angles, 1 distance, and 3 dihedrals. The user must also list the 3 atoms used to
189
/// define the orientation frame of the downstream ligand. It is essential to the
190
/// matching algorithm that the same three orientation atoms are used for all LigandConformerBuilders.
191
void
192
initialize_from_residue
(
193
Size
atom1,
194
Size
atom2,
195
Size
atom3,
196
Size
orientation_atom1,
197
Size
orientation_atom2,
198
Size
orientation_atom3,
199
core::conformation::Residue
const
& residue
200
);
201
202
void
203
initialize_upstream_residue
(
204
core::chemical::ResidueTypeCOP
upstream_res,
205
core::scoring::etable::count_pair::CountPairFunctionCOP
count_pair = 0
206
);
207
208
void
ignore_h_collisions
(
bool
setting );
209
210
virtual
211
toolbox::match_enzdes_util::LigandConformerOP
212
get_lig_conformers
(
core::Size
conf_id)
const
;
213
214
// virtual
215
// utility::vector1< utility::vector1< std::pair< core::Size, core::Real > > >
216
// get_min_sep_d2_from_upstream_atoms() const;
217
218
virtual
219
core::chemical::ResidueTypeCOP
220
get_upstream_restype
()
const
;
221
222
/*Real6
223
global_orientation_from_frame3(
224
HTReal const & frame3
225
) const;
226
227
HTReal
228
frame_from_global_orientation(
229
Real6 orientation
230
) const;*/
231
232
private
:
233
234
std::list< Hit >
235
build_conformer_group
(
236
Size
const
confgrp_id,
237
HTReal
const
& atom3_frame,
238
Size
const
scaffold_build_point_id,
239
Size
const
upstream_conf_id,
240
Size
const
external_geometry_id,
241
core::conformation::Residue
const
& upstream_residue
242
)
const
;
243
244
void
245
initialize_upstream_nonbonded_min_separation_d2
();
246
247
void
248
initialize_conformers
(
core::conformation::Residue
const
& residue );
249
250
251
private
:
252
253
core::chemical::ResidueTypeCOP
downstream_restype_
;
254
core::chemical::ResidueTypeCOP
upstream_restype_
;
255
256
bool
ignore_h_collisions_
;
257
bool
idealize_conformers_
;
258
259
/// The indices of the three atoms defining the orientation of the
260
/// ligand in the global coordinate frame
261
/// These indices are in the restype indexing of atoms.
262
utility::fixedsizearray1< Size, 3 >
orientation_atoms_
;
263
utility::fixedsizearray1< Size, 3 >
atoms_123_
;
264
utility::fixedsizearray1< ProbeRadius, 3 >
radii_123_
;
265
utility::fixedsizearray1< bool, 3 >
ats123_reqd_in_active_site_
;
266
267
utility::vector1< ProbeRadius >
atom_radii_
;
268
utility::vector1< bool >
atom_required_in_active_site_
;
269
270
utility::vector1< Size >
non_collision_detection_atoms_reqd_in_active_site_
;
271
272
/// Grouped into sets compatible ligand conformers
273
Real
rmsd_unique_cutoff_
;
274
utility::vector1< utility::vector1< Size >
>
conformer_group_indices_
;
275
utility::vector1< Size >
conformer_group_for_conformer_
;
276
utility::vector1< toolbox::match_enzdes_util::LigandConformerOP >
lig_conformers_
;
277
278
/// Detect collision between the upstream residue (sidechain?!) conformation and the atoms of the
279
/// downstream residue
280
utility::vector1< utility::vector1< std::pair< Size, Real >
> >
min_sep_d2_from_upstream_atoms_
;
281
282
};
283
284
}
285
}
286
}
287
288
#endif
Generated on Sat Jun 1 2013 11:59:27 for Rosetta 3.5 by
1.8.4