The `GGL (Graph Grammar Library)` is an object oriented `ANSI
C++` library to implement and apply graph rewrite systems. It
implements a Double Push Out (DPO) approach. The library is highly modular
and uses state-of-the-art algorithms and data structures. To this end, it
uses the `Boost Graph Library (BGL)` for the internal graph
representation and efficient (sub)graph isomorphism approaches as
the `VF2` algorithm.

Beside its general applicability, it features an extensive chemistry module
to handle grammar-based graph transformation in Chemistry. Since a chemical
reaction can be viewed as graph transformation from the set of educt graphs
to the set of product graphs, the `GGL` can be used to iteratively
expand the topology of chemical reaction network, starting from a set of
chemical reactions (graph rewrite rules) and set of molecules (vertex and
edge labeled graphs) using the general DPO framework of the GGL.

Furthermore, the GGL chemistry module sports efficient cheminformatics
algorithms, for instance to estimate reaction rates or a molecule's energy
or aromaticity. Furthermore, it comes with a port to the well
established `Open Babel Library`.

The `GGL` can processes molecules
in SMILES
or GML
format. Graph rewrite rules are usually formulated in GML.

The latest source code is now hosted on GitHub https://github.com/BackofenLab/GGL

The library comes as `GNU autotools` source code distributions
together with a set of utility tools compiled along with the
library. Furthermore, API and tutorial generation is part of the source
code package as well.

- GGL 4.1.2 source code distribution (2017-03-13)
- old versions:
#### Dependencies

- Boost Library
- Open Babel Library (optionally)

### Documenation

- API documentation (online)
- Graph grammar rule GML tutorial (PDF)
- Molecular groups GML tutorial (PDF)

### Literature

**Atom mapping with constraint programming.**

Martin Mann, Feras Nahar, Norah Schnorr, Rolf Backofen, Peter F Stadler and Christoph Flamm

*Algo Mol Biol***9**:23, (2014).

| doi:10.1186/s13015-014-0023-3 |**The Graph Grammar Library - a generic framework for chemical graph rewrite systems.**

Martin Mann, Heinz Ekker, and Christoph Flamm

In*Proc. of International Conference on Model Transformation (ICMT) 2013*, LNCS, to appear, (2013).

| doi:10.1007/978-3-642-38883-5_5 | arXiv:1304.1356 |*In silico*Evolution of early Metabolism.

Alexander Ullrich, Markus Rohrschneider, Peter F Stadler, and Christoph Flamm

*Artifical Life***17**(2):87-108, (2011).

| doi:10.1162/artl_a_00021 | preprint |**Evolution of Metabolic Networks: A Computational Framework.**

Christoph Flamm, Alexander Ullrich, Heinz Ekker, Martin Mann, Daniel Högerl, Markus Rohrschneider, Sebastian Sauer, Gerik Scheuermann, Konstantin Klemm, Ivo L. Hofacker, and Peter F. Stadler

*J Sys Chem***1**:4, (2010).

| doi:10.1186/1759-2208-1-4 | preprint |**A Graph-Based Toy Model of Chemistry.**

Gil Benkö, Christoph Flamm and Peter F. Stadler

*J Chem Inf Comput Sci.*,**43**(4):1085-1093, (2003).

| doi:10.1021/ci0200570 | preprint |

### Contact

Martin Mann <mmann@informatik.uni-freiburg.de>

Christoph Flamm <xtof@tbi.univie.ac.at>