Generated on Wed Apr 29 2015 11:51:40 for GGL-4.1.2 by doxygen 1.8.3.1
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  */
26 
27  public:
28 
29  //! type of the pattern graph
31 
32  //! type of a node ID set
33  typedef std::set<size_t> NodeSet;
34 
35  //! type of a Match_Constraint vector
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
47  };
48 
49  //! a ring fragment description
50  class RingFragment {
51  public:
52  //! the type of the ring fragment
54  //! the definition of the ring fragment node list
56 
57  //! construction
58  //! @param type the type to set
59  //! @param fragment the fragment definition to set
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
78  //! the set of node IDs from the pattern that are described by this
79  //! component
81  //! additional matching constraints
83  //! additional ring fragments information that has to be matched
85 
86  public:
87  //! default construction
89 
90  //! copy construction
91  //! @param toCopy the object to make this a copy of
92  MoleculeComponent( const MoleculeComponent& toCopy );
93 
94  //! destruction
96 
97  //! assignment operator
98  //! @param toCopy the object to make this a copy of
99  //! @return access to the changed *this object
101  operator = (const MoleculeComponent& toCopy );
102 
103  };
104 
105 } // namespace chem
106 } // namespace ggl
107 
108 #endif /* GGL_CHEM_MOLECULECOMPONENT_HH_ */