Loading...
Searching...
No Matches
numericalSAS.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_NUMERICALSAS_H
#define BALL_STRUCTURE_NUMERICALSAS_H
#ifndef BALL_COMMON_H
# include <BALL/common.h>
#endif
#ifndef BALL_DATATYPE_OPTIONS_H
# include <BALL/DATATYPE/options.h>
#endif
#ifndef BALL_MATHS_SURFACE_H
# include <BALL/MATHS/surface.h>
#endif
#ifndef BALL_MATHS_VECTOR3_H
# include <BALL/MATHS/vector3.h>
#endif
namespace BALL
{
class Atom;
class AtomContainer;
template <typename Key, typename T>
class HashMap;
class TriangulatedSphere;
class BALL_EXPORT NumericalSAS
{
public:
struct BALL_EXPORT Option
{
static const String COMPUTE_AREA;
static const String COMPUTE_VOLUME;
static const String COMPUTE_SURFACE;
static const String COMPUTE_SURFACE_PER_ATOM;
static const String COMPUTE_SURFACE_MAP;
static const String NUMBER_OF_POINTS;
static const String PROBE_RADIUS;
};
struct BALL_EXPORT Default
{
static const bool COMPUTE_AREA;
static const bool COMPUTE_VOLUME;
static const bool COMPUTE_SURFACE;
static const bool COMPUTE_SURFACE_PER_ATOM;
static const bool COMPUTE_SURFACE_MAP;
static const Size NUMBER_OF_POINTS;
static const float PROBE_RADIUS;
};
BALL_CREATE(NumericalSAS)
NumericalSAS();
NumericalSAS(const Options& options);
virtual ~NumericalSAS();
void operator() (const AtomContainer& fragment);
float getTotalArea() const {return total_area_;}
HashMap<const Atom*, float>& getAtomAreas() {return atom_areas_;}
const HashMap<const Atom*, float>& getAtomAreas() const {return atom_areas_;}
float getTotalVolume() const {return total_volume_;}
HashMap<const Atom*, float>& getAtomVolumes() {return atom_volumes_;}
const HashMap<const Atom*, float>& getAtomVolumes() const {return atom_volumes_;}
Surface& getSurface() {return surface_;}
const Surface& getSurface() const {return surface_;}
HashMap<const Atom*, Surface>& getSurfacePerAtom() {return atom_surfaces_;}
const HashMap<const Atom*, Surface>& getSurfacePerAtom() const {return atom_surfaces_;}
std::vector< std::pair<Vector3, Surface> >& getSurfaceMap() {return atom_surface_map_;}
const std::vector< std::pair<Vector3, Surface> >& getSurfaceMap() const {return atom_surface_map_;}
Options options;
protected:
void setDefaultOptions_();
Size computeSphereTesselation_(TriangulatedSphere& result, int num_points);
AtomContainer const* fragment_;
HashMap<Atom const*, float> atom_areas_;
float total_area_;
HashMap<Atom const*, float> atom_volumes_;
float total_volume_;
Surface surface_;
HashMap<Atom const*, Surface> atom_surfaces_;
std::vector< std::pair<Vector3, Surface> > atom_surface_map_;
};
} // namespace BALL
#endif // BALL_STRUCTURE_NUMERICALSAS_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
BALL::AtomContainer
Definition atomContainer.h:32
BALL::Atom
Definition atom.h:90
BALL::HashMap
HashMap class based on the STL map (containing serveral convenience functions).
Definition hashMap.h:74
BALL::NumericalSAS::getAtomAreas
HashMap< const Atom *, float > & getAtomAreas()
Definition numericalSAS.h:187
BALL::NumericalSAS::NumericalSAS
NumericalSAS()
BALL::NumericalSAS::getSurfaceMap
const std::vector< std::pair< Vector3, Surface > > & getSurfaceMap() const
Definition numericalSAS.h:267
BALL::NumericalSAS::getSurface
const Surface & getSurface() const
Definition numericalSAS.h:235
BALL::NumericalSAS::getSurfacePerAtom
const HashMap< const Atom *, Surface > & getSurfacePerAtom() const
Definition numericalSAS.h:251
BALL::NumericalSAS::getAtomVolumes
const HashMap< const Atom *, float > & getAtomVolumes() const
Definition numericalSAS.h:219
BALL::NumericalSAS::atom_volumes_
HashMap< Atom const *, float > atom_volumes_
mapping of atom to SAS volume
Definition numericalSAS.h:294
BALL::NumericalSAS::atom_surfaces_
HashMap< Atom const *, Surface > atom_surfaces_
mapping of atom to surface
Definition numericalSAS.h:303
BALL::NumericalSAS::getSurface
Surface & getSurface()
Definition numericalSAS.h:227
BALL::NumericalSAS::fragment_
AtomContainer const * fragment_
the AtomContainer we are bound to
Definition numericalSAS.h:285
BALL::NumericalSAS::atom_areas_
HashMap< Atom const *, float > atom_areas_
mapping of atom to SAS area
Definition numericalSAS.h:288
BALL::NumericalSAS::getTotalVolume
float getTotalVolume() const
Definition numericalSAS.h:203
BALL::NumericalSAS::getAtomAreas
const HashMap< const Atom *, float > & getAtomAreas() const
Definition numericalSAS.h:195
BALL::NumericalSAS::computeSphereTesselation_
Size computeSphereTesselation_(TriangulatedSphere &result, int num_points)
BALL::NumericalSAS::atom_surface_map_
std::vector< std::pair< Vector3, Surface > > atom_surface_map_
vector of (atom center, surface)
Definition numericalSAS.h:306
BALL::NumericalSAS::setDefaultOptions_
void setDefaultOptions_()
BALL::NumericalSAS::getSurfaceMap
std::vector< std::pair< Vector3, Surface > > & getSurfaceMap()
Definition numericalSAS.h:259
BALL::NumericalSAS::surface_
Surface surface_
the SAS as a surface
Definition numericalSAS.h:300
BALL::NumericalSAS::getAtomVolumes
HashMap< const Atom *, float > & getAtomVolumes()
Definition numericalSAS.h:211
BALL::NumericalSAS::getTotalArea
float getTotalArea() const
Definition numericalSAS.h:179
BALL::NumericalSAS::total_area_
float total_area_
total solvent accessible area of the fragment
Definition numericalSAS.h:291
BALL::NumericalSAS::getSurfacePerAtom
HashMap< const Atom *, Surface > & getSurfacePerAtom()
Definition numericalSAS.h:243
BALL::NumericalSAS::options
Options options
Definition numericalSAS.h:273
BALL::NumericalSAS::total_volume_
float total_volume_
total solvent accessible volume of the fragment
Definition numericalSAS.h:297
BALL::Options
Definition options.h:48
BALL::String
Definition string.h:57
BALL::TriangulatedSphere
Definition triangulatedSurface.h:388
common.h
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
BALL::Surface
TSurface< float > Surface
Definition surface.h:488
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
options.h
BALL::NumericalSAS::Default
Definition numericalSAS.h:108
BALL::NumericalSAS::Default::NUMBER_OF_POINTS
static const Size NUMBER_OF_POINTS
Definition numericalSAS.h:140
BALL::NumericalSAS::Default::COMPUTE_SURFACE_PER_ATOM
static const bool COMPUTE_SURFACE_PER_ATOM
Definition numericalSAS.h:128
BALL::NumericalSAS::Default::PROBE_RADIUS
static const float PROBE_RADIUS
Definition numericalSAS.h:145
BALL::NumericalSAS::Default::COMPUTE_SURFACE
static const bool COMPUTE_SURFACE
Definition numericalSAS.h:122
BALL::NumericalSAS::Default::COMPUTE_SURFACE_MAP
static const bool COMPUTE_SURFACE_MAP
Definition numericalSAS.h:133
BALL::NumericalSAS::Default::COMPUTE_AREA
static const bool COMPUTE_AREA
Definition numericalSAS.h:112
BALL::NumericalSAS::Default::COMPUTE_VOLUME
static const bool COMPUTE_VOLUME
Definition numericalSAS.h:117
BALL::NumericalSAS::Option
Definition numericalSAS.h:54
BALL::NumericalSAS::Option::PROBE_RADIUS
static const String PROBE_RADIUS
Definition numericalSAS.h:102
BALL::NumericalSAS::Option::COMPUTE_SURFACE_MAP
static const String COMPUTE_SURFACE_MAP
Definition numericalSAS.h:91
BALL::NumericalSAS::Option::COMPUTE_SURFACE
static const String COMPUTE_SURFACE
Definition numericalSAS.h:72
BALL::NumericalSAS::Option::NUMBER_OF_POINTS
static const String NUMBER_OF_POINTS
Definition numericalSAS.h:98
BALL::NumericalSAS::Option::COMPUTE_VOLUME
static const String COMPUTE_VOLUME
Definition numericalSAS.h:63
BALL::NumericalSAS::Option::COMPUTE_AREA
static const String COMPUTE_AREA
Definition numericalSAS.h:58
BALL::NumericalSAS::Option::COMPUTE_SURFACE_PER_ATOM
static const String COMPUTE_SURFACE_PER_ATOM
Definition numericalSAS.h:82
surface.h
vector3.h