BALL 1.5.0
numericalSAS.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4
5#ifndef BALL_STRUCTURE_NUMERICALSAS_H
6#define BALL_STRUCTURE_NUMERICALSAS_H
7
8#ifndef BALL_COMMON_H
9# include <BALL/common.h>
10#endif
11
12#ifndef BALL_DATATYPE_OPTIONS_H
14#endif
15
16#ifndef BALL_MATHS_SURFACE_H
17# include <BALL/MATHS/surface.h>
18#endif
19
20#ifndef BALL_MATHS_VECTOR3_H
21# include <BALL/MATHS/vector3.h>
22#endif
23
24namespace BALL
25{
26 class Atom;
27 class AtomContainer;
28 template <typename Key, typename T>
29 class HashMap;
30 class TriangulatedSphere;
31
45 {
46 public:
50
54 {
58 static const String COMPUTE_AREA;
59
63 static const String COMPUTE_VOLUME;
64
72 static const String COMPUTE_SURFACE;
73
83
92
99
102 static const String PROBE_RADIUS;
103 };
104
108 {
112 static const bool COMPUTE_AREA;
113
117 static const bool COMPUTE_VOLUME;
118
122 static const bool COMPUTE_SURFACE;
123
128 static const bool COMPUTE_SURFACE_PER_ATOM;
129
133 static const bool COMPUTE_SURFACE_MAP;
134
140 static const Size NUMBER_OF_POINTS;
141
145 static const float PROBE_RADIUS;
146 };
148
149
152
154
155
158
161 NumericalSAS(const Options& options);
162
165 virtual ~NumericalSAS();
167
170
171 void operator() (const AtomContainer& fragment);
172
179 float getTotalArea() const {return total_area_;}
180
188
195 const HashMap<const Atom*, float>& getAtomAreas() const {return atom_areas_;}
196
203 float getTotalVolume() const {return total_volume_;}
204
212
219 const HashMap<const Atom*, float>& getAtomVolumes() const {return atom_volumes_;}
220
227 Surface& getSurface() {return surface_;}
228
235 const Surface& getSurface() const {return surface_;}
236
244
251 const HashMap<const Atom*, Surface>& getSurfacePerAtom() const {return atom_surfaces_;}
252
259 std::vector< std::pair<Vector3, Surface> >& getSurfaceMap() {return atom_surface_map_;}
260
267 const std::vector< std::pair<Vector3, Surface> >& getSurfaceMap() const {return atom_surface_map_;}
268
270
274
275 protected:
278
283
286
289
292
295
298
301
304
306 std::vector< std::pair<Vector3, Surface> > atom_surface_map_;
307 };
308
310} // namespace BALL
311
312#endif // BALL_STRUCTURE_NUMERICALSAS_H
#define BALL_CREATE(name)
Definition: create.h:62
Definition: constants.h:13
char Atom[5]
Definition: PDBdefs.h:257
HashMap< const Atom *, float > & getAtomAreas()
Definition: numericalSAS.h:187
const std::vector< std::pair< Vector3, Surface > > & getSurfaceMap() const
Definition: numericalSAS.h:267
const Surface & getSurface() const
Definition: numericalSAS.h:235
const HashMap< const Atom *, Surface > & getSurfacePerAtom() const
Definition: numericalSAS.h:251
const HashMap< const Atom *, float > & getAtomVolumes() const
Definition: numericalSAS.h:219
HashMap< Atom const *, float > atom_volumes_
mapping of atom to SAS volume
Definition: numericalSAS.h:294
HashMap< Atom const *, Surface > atom_surfaces_
mapping of atom to surface
Definition: numericalSAS.h:303
Surface & getSurface()
Definition: numericalSAS.h:227
AtomContainer const * fragment_
the AtomContainer we are bound to
Definition: numericalSAS.h:285
HashMap< Atom const *, float > atom_areas_
mapping of atom to SAS area
Definition: numericalSAS.h:288
float getTotalVolume() const
Definition: numericalSAS.h:203
const HashMap< const Atom *, float > & getAtomAreas() const
Definition: numericalSAS.h:195
Size computeSphereTesselation_(TriangulatedSphere &result, int num_points)
std::vector< std::pair< Vector3, Surface > > atom_surface_map_
vector of (atom center, surface)
Definition: numericalSAS.h:306
std::vector< std::pair< Vector3, Surface > > & getSurfaceMap()
Definition: numericalSAS.h:259
Surface surface_
the SAS as a surface
Definition: numericalSAS.h:300
HashMap< const Atom *, float > & getAtomVolumes()
Definition: numericalSAS.h:211
float total_area_
total solvent accessible area of the fragment
Definition: numericalSAS.h:291
HashMap< const Atom *, Surface > & getSurfacePerAtom()
Definition: numericalSAS.h:243
float total_volume_
total solvent accessible volume of the fragment
Definition: numericalSAS.h:297
static const String PROBE_RADIUS
Definition: numericalSAS.h:102
static const String COMPUTE_SURFACE_MAP
Definition: numericalSAS.h:91
static const String COMPUTE_SURFACE
Definition: numericalSAS.h:72
static const String NUMBER_OF_POINTS
Definition: numericalSAS.h:98
static const String COMPUTE_VOLUME
Definition: numericalSAS.h:63
static const String COMPUTE_AREA
Definition: numericalSAS.h:58
static const String COMPUTE_SURFACE_PER_ATOM
Definition: numericalSAS.h:82
static const Size NUMBER_OF_POINTS
Definition: numericalSAS.h:140
static const bool COMPUTE_SURFACE_PER_ATOM
Definition: numericalSAS.h:128
static const float PROBE_RADIUS
Definition: numericalSAS.h:145
static const bool COMPUTE_SURFACE
Definition: numericalSAS.h:122
static const bool COMPUTE_SURFACE_MAP
Definition: numericalSAS.h:133
static const bool COMPUTE_AREA
Definition: numericalSAS.h:112
static const bool COMPUTE_VOLUME
Definition: numericalSAS.h:117
#define BALL_EXPORT
Definition: COMMON/global.h:50