Generated on Wed Apr 29 2015 11:51:41 for GGL-4.1.2 by doxygen 1.8.3.1
Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes
ggl::chem::MoleculeDecomposition Class Reference

Molecule energy estimation ala Jankowski et al. More...

#include <MoleculeDecomposition.hh>

Inheritance diagram for ggl::chem::MoleculeDecomposition:
Inheritance graph
[legend]

Data Structures

class  DecompositionReporter
 
class  MC_MC_RingNode
 
class  priority_order
 
class  RingDescriptor
 descriptor of a ring within the molecule More...
 

Public Types

typedef std::list< size_t > RingList
 type of a list of node indices that form a ring More...
 
typedef std::set< size_t > RingNodes
 type of a set of node indices that form a ring More...
 

Public Member Functions

double getEnergy (const Molecule &mol)
 
 MoleculeDecomposition (sgm::GraphMatching &fullMatcher, sgm::SubGraphMatching &matcher)
 
 MoleculeDecomposition (sgm::GraphMatching &fullMatcher, sgm::SubGraphMatching &matcher, DecompositionReporter &reporter)
 
void reportHit (const sgm::Pattern_Interface &componentPattern, const sgm::Graph_Interface &targetMol, const sgm::Match &match)
 
void reportRing (const sgm::Graph_Interface &graph, const RingList &ringList)
 
virtual ~MoleculeDecomposition ()
 destruction More...
 

Static Public Member Functions

static RingNodes toRing (const Graph_Interface &graph, const RingList &ringList)
 

Protected Types

typedef std::set
< MoleculeComponent,
priority_order
ComponentContainer
 
typedef boost::property_map
< Molecule, PropNodeIndex >
::const_type 
NodeIndexMap
 node index map typedef for shorter parameter lists More...
 
typedef boost::property_map
< Molecule, PropNodeLabel >
::type 
NodeLabelMap
 node label map typedef for shorter parameter lists More...
 

Protected Member Functions

size_t extendPolyphosphateChain (Molecule &m, NodeLabelMap &mNodeLabel, NodeIndexMap &mNodeIndex, const size_t idxNextP, const size_t compID)
 
bool isValidRingFragment (const MoleculeComponent::RingFragment &ringFragment, const sgm::Match &match)
 

Static Protected Member Functions

static void correctCyclicPhosphates (std::set< std::set< size_t > > &curMatchedIDs)
 
static void correctEnclosedPhosphates (std::set< std::set< size_t > > &curMatchedIDs)
 
static size_t getAmideNumber (sgm::SubGraphMatching &matcher, sgm::Graph_Interface &molGraph)
 
static const ComponentContainergetGroups (void) throw (std::logic_error)
 
static const ComponentContainergetInteractions (void) throw (std::logic_error)
 
static const ComponentContainergetSmallMolecules (void) throw (std::logic_error)
 
static size_t getThioesterNumber (sgm::SubGraphMatching &matcher, sgm::Graph_Interface &molGraph)
 

Protected Attributes

const MoleculeComponentcurComponent
 the currently matched MoleculeComponent More...
 
std::set< std::set< size_t > > curMatchedIDs
 the matched set of node indices for current MoleculeComponent More...
 
RingNodes curMolRingNodes
 
std::map
< MoleculeComponent::RingFragmentType,
std::vector< RingDescriptor > > 
curMolRings
 
double energy
 the energy of the currently parsed molecule More...
 
sgm::GraphMatchingfullMatcher
 the graph matching implementation to be used More...
 
sgm::SubGraphMatchingmatcher
 the sub graph matching implementation to be used More...
 
DecompositionReporterreporter
 an optional decomposition reporter More...
 

Static Protected Attributes

static double contributionMiddlePhosphate
 
static double correctionHydroCarbon
 
static double correctionPerAmide
 
static double correctionPerHeteroaromaticRing
 correction term for each heteroaromatic ring within the molecule More...
 
static double correctionPerThioester
 
static double correctionPerThreeMemberedRing
 
static double correctionVicinalChlorine
 correction term for vicinal chlorines within the molecule More...
 
static ComponentContainer groups
 
static ComponentContainer interactions
 set of all interaction patterns to be screened for More...
 
static ComponentContainer smallMolecules
 set of all small molecules to be screened for More...
 

Detailed Description

   Molecule decomposition approach to analyze a molecules thermodynamics.
   The approach follows the paper by Jankowski et al. (2008)

   Group Contribution Method for Thermodynamic Analysis of Complex
    Metabolic Networks
   Matthew D. Jankowski, Christopher S. Henry, Linda J. Broadbelt
    and Vassily Hatzimanikatis
   Biophysical Journal, Volume 95, Issue 3, 1487-1499, 1 August 2008
   doi:10.1529/biophysj.107.124784
Author
Martin Mann - 2010 - http://www.bioinf.uni-freiburg.de/~mmann/

Definition at line 38 of file MoleculeDecomposition.hh.

Member Typedef Documentation

Definition at line 139 of file MoleculeDecomposition.hh.

typedef boost::property_map< Molecule, PropNodeIndex>::const_type ggl::chem::MoleculeDecomposition::NodeIndexMap
protected

Definition at line 444 of file MoleculeDecomposition.hh.

typedef boost::property_map< Molecule, PropNodeLabel>::type ggl::chem::MoleculeDecomposition::NodeLabelMap
protected

Definition at line 442 of file MoleculeDecomposition.hh.

typedef std::list<size_t> sgm::RingReporter::RingList
inherited

Definition at line 27 of file RingReporter.hh.

typedef std::set<size_t> sgm::RingReporter::RingNodes
inherited

Definition at line 25 of file RingReporter.hh.

Constructor & Destructor Documentation

ggl::chem::MoleculeDecomposition::MoleculeDecomposition ( sgm::GraphMatching fullMatcher,
sgm::SubGraphMatching matcher 
)

construction

Parameters
fullMatcherthe graph matching implementation to be used
matcherthe sub graph matching implementation to be used
ggl::chem::MoleculeDecomposition::MoleculeDecomposition ( sgm::GraphMatching fullMatcher,
sgm::SubGraphMatching matcher,
DecompositionReporter reporter 
)

construction with a given reporter

Parameters
fullMatcherthe graph matching implementation to be used
matcherthe sub graph matching implementation to be used
reporterthe decomposition reporter to be used
virtual ggl::chem::MoleculeDecomposition::~MoleculeDecomposition ( )
virtual

Member Function Documentation

static void ggl::chem::MoleculeDecomposition::correctCyclicPhosphates ( std::set< std::set< size_t > > &  curMatchedIDs)
staticprotected

Corrects the mapping of cyclic phosphates. Due to their symmetric symmetric pattern they are matched twice. Thus, one oxygen is mapped too much.

Parameters
curMatchedIDsthe node sets for each match that has to be corrected
static void ggl::chem::MoleculeDecomposition::correctEnclosedPhosphates ( std::set< std::set< size_t > > &  curMatchedIDs)
staticprotected

Corrects the mapping of enclosed primary phosphates. Due to their symmetric symmetric pattern they are matched all along the phosphate fragment and not only at the ends.

Parameters
curMatchedIDsthe node sets for each match that has to be corrected
size_t ggl::chem::MoleculeDecomposition::extendPolyphosphateChain ( Molecule m,
NodeLabelMap mNodeLabel,
NodeIndexMap mNodeIndex,
const size_t  idxNextP,
const size_t  compID 
)
protected

Extend the labeling of a phosphate chain starting from a given phosphorus node using a specified component label.

Parameters
mthe molecule to label
mNodeLabelthe node label access for m
mNodeIndexthe node index access for m
idxNextPthe phosphorus node to start the labeling
compIDthe label for the phosphate chain
Returns
the length of the chain
static size_t ggl::chem::MoleculeDecomposition::getAmideNumber ( sgm::SubGraphMatching matcher,
sgm::Graph_Interface molGraph 
)
staticprotected

Computes the number of amide matches within the molecule where for nitrogen atom involved in two amides only one occurrence is counted

Parameters
matcherthe sub graph matcher to be used
molGraphthe molecule graph to check
Returns
the number of amides within the molecule
double ggl::chem::MoleculeDecomposition::getEnergy ( const Molecule mol)

Decomposes the given molecule into MoleculeComponents and derives an estimate of its energy in kcal/mol.

Parameters
molthe molecule to be analyzed
Returns
an estimate of its energy in kcal/mol
static const ComponentContainer& ggl::chem::MoleculeDecomposition::getGroups ( void  ) throw (std::logic_error)
staticprotected

Access to the groups member. This function initializes the container if not already done.

Returns
the groups container to be matched. std::logic_error in case the group initialization failed which should never happen
static const ComponentContainer& ggl::chem::MoleculeDecomposition::getInteractions ( void  ) throw (std::logic_error)
staticprotected

Access to the interactions member. This function initializes the container if not already done.

Returns
the interactions container to be matched. std::logic_error in case the group initialization failed which should never happen
static const ComponentContainer& ggl::chem::MoleculeDecomposition::getSmallMolecules ( void  ) throw (std::logic_error)
staticprotected

Access to the smallMolecules member. This function initializes the container if not already done.

Returns
the smallMolecules container to be matched. std::logic_error in case the group initialization failed which should never happen
static size_t ggl::chem::MoleculeDecomposition::getThioesterNumber ( sgm::SubGraphMatching matcher,
sgm::Graph_Interface molGraph 
)
staticprotected

Computes the number of thioester matches within the molecule where for sulfur atoms involved in two thioester only one occurrence is counted

Parameters
matcherthe sub graph matcher to be used
molGraphthe molecule graph to check
Returns
the number of thioester within the molecule
bool ggl::chem::MoleculeDecomposition::isValidRingFragment ( const MoleculeComponent::RingFragment ringFragment,
const sgm::Match match 
)
protected

Checks whether or not a given ring fragment is present in the molecule.

Parameters
ringFragmentthe ring fragment to check
matchthe node matching that triggered the check
Returns
true, if the ring fragment is matched; false otherwise
void ggl::chem::MoleculeDecomposition::reportHit ( const sgm::Pattern_Interface componentPattern,
const sgm::Graph_Interface targetMol,
const sgm::Match match 
)
virtual

Handles the occurence of a MoleculeComponent within a decomposed molecule graph.

Parameters
componentPatternthe pattern of the MoleculeComponent to be matched.
targetMolthe molecule graph the pattern was found within
matchcontains the indices of the matched pattern nodes in the target graph. match[i] corresponds to the mapping of the ith vertex in the pattern graph.

Implements sgm::Match_Reporter.

void ggl::chem::MoleculeDecomposition::reportRing ( const sgm::Graph_Interface graph,
const RingList ringList 
)
virtual

Is called to report a ring. The ring is stored for lookup of ring constraints of the MoleculeComponents matched.

Parameters
graphthe graph that contains the ring
ringListthe ring to report

Implements sgm::RingReporter.

static RingNodes sgm::RingReporter::toRing ( const Graph_Interface graph,
const RingList ringList 
)
staticinherited

Utility class that converts a RingList, i.e. a list of nodes when traversing a ring within a graph, into the set of nodes that form the ring.

Parameters
graphthe graph that contains the ring
ringListthe ring list to convert
Returns
the list of nodes traversing the ring

Field Documentation

double ggl::chem::MoleculeDecomposition::contributionMiddlePhosphate
staticprotected

energy contribution term for a middle phosphate within a phosphate chain

Definition at line 177 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionHydroCarbon
staticprotected

correction term if a molecule is a hydrocarbon, i.e. it contains only H and C

Definition at line 153 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionPerAmide
staticprotected

correction term for each amide within the molecule; note, for nitrogen atom involved in two amides only one occurrence is considered

Definition at line 165 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionPerHeteroaromaticRing
staticprotected

Definition at line 156 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionPerThioester
staticprotected

correction term for each thioester within the molecule; note, for sulfur atom involved in two amides only one occurrence is considered

Definition at line 170 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionPerThreeMemberedRing
staticprotected

correction term for each three-membered ring independently of the atom labels

Definition at line 160 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::correctionVicinalChlorine
staticprotected

Definition at line 173 of file MoleculeDecomposition.hh.

const MoleculeComponent* ggl::chem::MoleculeDecomposition::curComponent
protected

Definition at line 251 of file MoleculeDecomposition.hh.

std::set< std::set<size_t> > ggl::chem::MoleculeDecomposition::curMatchedIDs
protected

Definition at line 253 of file MoleculeDecomposition.hh.

RingNodes ggl::chem::MoleculeDecomposition::curMolRingNodes
protected

set of all nodes participating in a ring within the current molecule handled

Definition at line 257 of file MoleculeDecomposition.hh.

std::map< MoleculeComponent::RingFragmentType, std::vector< RingDescriptor > > ggl::chem::MoleculeDecomposition::curMolRings
protected

string encoding of all rings within the current molecule grouped by their type

Definition at line 296 of file MoleculeDecomposition.hh.

double ggl::chem::MoleculeDecomposition::energy
protected

Definition at line 249 of file MoleculeDecomposition.hh.

sgm::GraphMatching* ggl::chem::MoleculeDecomposition::fullMatcher
protected

Definition at line 302 of file MoleculeDecomposition.hh.

ComponentContainer ggl::chem::MoleculeDecomposition::groups
staticprotected

set of all groups that are matched exclusively starting with the one with lowest priority value

Definition at line 143 of file MoleculeDecomposition.hh.

ComponentContainer ggl::chem::MoleculeDecomposition::interactions
staticprotected

Definition at line 146 of file MoleculeDecomposition.hh.

sgm::SubGraphMatching* ggl::chem::MoleculeDecomposition::matcher
protected

Definition at line 304 of file MoleculeDecomposition.hh.

DecompositionReporter* ggl::chem::MoleculeDecomposition::reporter
protected

Definition at line 299 of file MoleculeDecomposition.hh.

ComponentContainer ggl::chem::MoleculeDecomposition::smallMolecules
staticprotected

Definition at line 149 of file MoleculeDecomposition.hh.


The documentation for this class was generated from the following file: