Molecule energy estimation ala Jankowski et al. More...
#include <MoleculeDecomposition.hh>
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 ComponentContainer & | getGroups (void) throw (std::logic_error) |
static const ComponentContainer & | getInteractions (void) throw (std::logic_error) |
static const ComponentContainer & | getSmallMolecules (void) throw (std::logic_error) |
static size_t | getThioesterNumber (sgm::SubGraphMatching &matcher, sgm::Graph_Interface &molGraph) |
Protected Attributes | |
const MoleculeComponent * | curComponent |
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::GraphMatching * | fullMatcher |
the graph matching implementation to be used More... | |
sgm::SubGraphMatching * | matcher |
the sub graph matching implementation to be used More... | |
DecompositionReporter * | reporter |
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... | |
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
Definition at line 38 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 139 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 444 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 442 of file MoleculeDecomposition.hh.
|
inherited |
Definition at line 27 of file RingReporter.hh.
|
inherited |
Definition at line 25 of file RingReporter.hh.
ggl::chem::MoleculeDecomposition::MoleculeDecomposition | ( | sgm::GraphMatching & | fullMatcher, |
sgm::SubGraphMatching & | matcher | ||
) |
construction
fullMatcher | the graph matching implementation to be used |
matcher | the sub graph matching implementation to be used |
ggl::chem::MoleculeDecomposition::MoleculeDecomposition | ( | sgm::GraphMatching & | fullMatcher, |
sgm::SubGraphMatching & | matcher, | ||
DecompositionReporter & | reporter | ||
) |
construction with a given reporter
fullMatcher | the graph matching implementation to be used |
matcher | the sub graph matching implementation to be used |
reporter | the decomposition reporter to be used |
|
virtual |
|
staticprotected |
Corrects the mapping of cyclic phosphates. Due to their symmetric symmetric pattern they are matched twice. Thus, one oxygen is mapped too much.
curMatchedIDs | the node sets for each match that has to be corrected |
|
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.
curMatchedIDs | the node sets for each match that has to be corrected |
|
protected |
Extend the labeling of a phosphate chain starting from a given phosphorus node using a specified component label.
m | the molecule to label |
mNodeLabel | the node label access for m |
mNodeIndex | the node index access for m |
idxNextP | the phosphorus node to start the labeling |
compID | the label for the phosphate chain |
|
staticprotected |
Computes the number of amide matches within the molecule where for nitrogen atom involved in two amides only one occurrence is counted
matcher | the sub graph matcher to be used |
molGraph | the molecule graph to check |
double ggl::chem::MoleculeDecomposition::getEnergy | ( | const Molecule & | mol | ) |
Decomposes the given molecule into MoleculeComponents and derives an estimate of its energy in kcal/mol.
mol | the molecule to be analyzed |
|
staticprotected |
Access to the groups member. This function initializes the container if not already done.
|
staticprotected |
Access to the interactions member. This function initializes the container if not already done.
|
staticprotected |
Access to the smallMolecules member. This function initializes the container if not already done.
|
staticprotected |
Computes the number of thioester matches within the molecule where for sulfur atoms involved in two thioester only one occurrence is counted
matcher | the sub graph matcher to be used |
molGraph | the molecule graph to check |
|
protected |
Checks whether or not a given ring fragment is present in the molecule.
ringFragment | the ring fragment to check |
match | the node matching that triggered the check |
|
virtual |
Handles the occurence of a MoleculeComponent within a decomposed molecule graph.
componentPattern | the pattern of the MoleculeComponent to be matched. |
targetMol | the molecule graph the pattern was found within |
match | contains 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.
|
virtual |
Is called to report a ring. The ring is stored for lookup of ring constraints of the MoleculeComponents matched.
graph | the graph that contains the ring |
ringList | the ring to report |
Implements sgm::RingReporter.
|
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.
graph | the graph that contains the ring |
ringList | the ring list to convert |
|
staticprotected |
energy contribution term for a middle phosphate within a phosphate chain
Definition at line 177 of file MoleculeDecomposition.hh.
|
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.
|
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.
|
staticprotected |
Definition at line 156 of file MoleculeDecomposition.hh.
|
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.
|
staticprotected |
correction term for each three-membered ring independently of the atom labels
Definition at line 160 of file MoleculeDecomposition.hh.
|
staticprotected |
Definition at line 173 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 251 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 253 of file MoleculeDecomposition.hh.
|
protected |
set of all nodes participating in a ring within the current molecule handled
Definition at line 257 of file MoleculeDecomposition.hh.
|
protected |
string encoding of all rings within the current molecule grouped by their type
Definition at line 296 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 249 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 302 of file MoleculeDecomposition.hh.
|
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.
|
staticprotected |
Definition at line 146 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 304 of file MoleculeDecomposition.hh.
|
protected |
Definition at line 299 of file MoleculeDecomposition.hh.
|
staticprotected |
Definition at line 149 of file MoleculeDecomposition.hh.