main page
namespaces
classes
files
GGL home
Generated on Wed Apr 29 2015 11:51:40 for GGL-4.1.2 by
doxygen
1.8.3.1
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
src
ggl
chem
MoleculeComponent.hh
Go to the documentation of this file.
1
2
#ifndef GGL_CHEM_MOLECULECOMPONENT_HH_
3
#define GGL_CHEM_MOLECULECOMPONENT_HH_
4
5
#include <string>
6
#include <vector>
7
#include <vector>
8
9
#include "
sgm/Pattern.hh
"
10
#include "
ggl/Graph.hh
"
11
12
namespace
ggl {
13
namespace
chem {
14
15
/*! @brief Molecule component definition
16
*
17
* Describes a molecule component that e.g. is used by
18
* ggl::chem::MoleculeDecomposition
19
* to assess thermodynamic properties of a molecule. It describes the
20
* molecule component pattern to be matched and the according
21
* properties.
22
*
23
* @author Martin Mann - 2010 - http://www.bioinf.uni-freiburg.de/~mmann/
24
*/
25
class
MoleculeComponent
{
26
27
public
:
28
29
//! type of the pattern graph
30
typedef
ggl::Graph
PatternGraph
;
31
32
//! type of a node ID set
33
typedef
std::set<size_t>
NodeSet
;
34
35
//! type of a Match_Constraint vector
36
typedef
sgm::Pattern_Interface::ConstraintVec
ConstraintVec
;
37
38
//! type of a ring fragment definition, i.e. a list of nodes
39
typedef
std::vector< size_t >
RingFragmentList
;
40
41
//! different types of ring fragments to consider
42
enum
RingFragmentType
{
43
RF_aromaticHydrocarbon
= 0
44
,
RF_heteroaromatic
= 1
45
,
RF_nonaromatic
= 2
46
,
RF_undefined
= 3
47
};
48
49
//! a ring fragment description
50
class
RingFragment
{
51
public
:
52
//! the type of the ring fragment
53
RingFragmentType
type
;
54
//! the definition of the ring fragment node list
55
RingFragmentList
fragment
;
56
57
//! construction
58
//! @param type the type to set
59
//! @param fragment the fragment definition to set
60
RingFragment
(
const
RingFragmentType
&
type
61
,
const
RingFragmentList
&
fragment
);
62
};
63
64
//! container for ring fragments
65
typedef
std::vector< RingFragment >
RingFragVec
;
66
67
public
:
68
//! description of the component to be matched
69
std::string
description
;
70
//! the priority of this component
71
//! (used in ggl::chem::MoleculeDecomposition for an ordering)
72
size_t
priority
;
73
//! the free energy contribution of the component
74
//! (used in ggl::chem::MoleculeDecomposition for energy calculations)
75
double
freeEnergy
;
76
//! the pattern to be matched for this component
77
PatternGraph
pattern
;
78
//! the set of node IDs from the pattern that are described by this
79
//! component
80
NodeSet
compIDs
;
81
//! additional matching constraints
82
ConstraintVec
constraints
;
83
//! additional ring fragments information that has to be matched
84
RingFragVec
ringFragments
;
85
86
public
:
87
//! default construction
88
MoleculeComponent
();
89
90
//! copy construction
91
//! @param toCopy the object to make this a copy of
92
MoleculeComponent
(
const
MoleculeComponent
& toCopy );
93
94
//! destruction
95
~MoleculeComponent
();
96
97
//! assignment operator
98
//! @param toCopy the object to make this a copy of
99
//! @return access to the changed *this object
100
MoleculeComponent
&
101
operator =
(
const
MoleculeComponent
& toCopy );
102
103
};
104
105
}
// namespace chem
106
}
// namespace ggl
107
108
#endif
/* GGL_CHEM_MOLECULECOMPONENT_HH_ */