Generated on Wed Apr 29 2015 11:51:40 for GGL-4.1.2 by doxygen 1.8.3.1
ReactionTransitionState.hh
Go to the documentation of this file.
1 #ifndef GGL_CHEM_REACTIONTRANSITIONSTATE_HH_
2 #define GGL_CHEM_REACTIONTRANSITIONSTATE_HH_
3 
4 #include "ggl/chem/ChemRule.hh"
6 
7 #include <sgm/Graph_Interface.hh>
8 #include <sgm/Match_Reporter.hh>
9 
10 
11 namespace ggl {
12  namespace chem {
13 
14 
15  /*! @brief Transition state of a reaction
16  *
17  * This class encodes an imaginary transition state (ITS) of a chemical
18  * reaction.
19  *
20  * @author Martin Mann - http://www.bioinf.uni-freiburg.de/~mmann/
21  */
23  {
24  public:
25 
26  //! access to the superclass TransitionState type
28 
29 
30  protected:
31 
32  //! the graph encoding of the imaginary transition state
33  using SuperClass::tState;
34 
35  //! SMILES representation of the imaginary transition state
37 
38  public:
39 
40  /*! Constructs an imaginary transition state based on the educts,
41  * products, and chemical GGL rule applied.
42  *
43  * @param leftSide the left side pattern of the chemical rule applied
44  * @param molecules the molecules where leftSide was mapped on
45  * @param match the mapping of nodes of leftSide on the nodes of the
46  * molecules object
47  * @param addEachComponent if set to true, than all components of the
48  * Rules LeftSidePattern are matched to an own molecule graph
49  * copy if two components map to the same molecule graph.
50  */
52  const LeftSidePattern & leftSide
53  , const sgm::Graph_Interface & molecules
54  , const sgm::Match & match
55  , const bool addEachComponent = false
56  );
57 
58  virtual ~ReactionTransitionState();
59 
60  protected:
61 
62  /*! Merges the given molecules into a rule graph such that the
63  * left side pattern of the rule maps the matched subgraph of the
64  * molecules object. This is the first step to create the imaginary
65  * transition state.
66  *
67  * @param its the intermediate transition state object to extend
68  * (NOTE : the object will be overwritten during the merge!)
69  * @param leftSide the left side pattern of the chemical rule applied
70  * @param molecules the molecule information to add to
71  * @param match the mapping of nodes of leftSide on the nodes of the
72  * molecules object
73  * @param addEachComponent if set to true, than all components of the
74  * Rules LeftSidePattern are matched to an own molecule graph
75  * copy if two components map to the same molecule graph.
76  */
77  static
78  bool
80  , const LeftSidePattern & leftSide
81  , const sgm::Graph_Interface & molecules
82  , const sgm::Match & match
83  , const bool addEachComponent = false );
84  };
85 
86 
87 ////////////////////////////////////////////////////////////////////////////////
88 ////////////////////////////////////////////////////////////////////////////////
89 
90  } // namespace chem
91 } // namespace ggl
92 
93 // implementation
94 #include "ggl/chem/ReactionTransitionState.icc"
95 
96 ////////////////////////////////////////////////////////////////////////////////
97 ////////////////////////////////////////////////////////////////////////////////
98 
99 
100 #endif /*REACTIONTRANSITIONSTATE_HH_*/
101