# Jakob Lykke Andersen¶

Postdoc/Research Fellow

E-mail
Snail Mail
Earth-Life Science Institute (ELSI)
Tokyo Institute of Technology
2-12-1-I7E-323 Ookayama, Meguro, Tokyo
152-8550, Japan

Dept. of Mathematics & Computer Science
University of Southern Denmark
Campusvej 55
DK-5230 Odense M
Denmark
Office
At IMADA: No. Ø-18-512a-2 (see map and map)
At ELSI: ELSI-1, room 320

## Research¶

I am a research fellow in the ELSI Origins Network (EON), where I work on formal methods for modelling and analysing chemical systems (algorithmic cheminformatics). I am in general interested in algorithmics, and in particular graph algorithms.

Before joining EON I was a Ph.D. student in computer science at the University of Southern Denmark and Universität Leipzig (cotutelle). My advisors were Daniel Merkle and Peter F. Stadler, and the title of my project was “Analysis of Generative Chemistries”.

### Publications¶

ORCID: 0000-0002-4165-3732

(BibTeX)

• A Generic Framework for Engineering Graph Canonization Algorithms
Jakob L. Andersen, Daniel Merkle
To appear in Proceedings of the Twentieth Workshop on Algorithm Engineering and Experiments, ALENEX 2018
• An Intermediate Level of Abstraction for Computational Systems Chemistry
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, Peter F. Stadler
To appear in Philosophical Transactions of the Royal Society of London A: Mathematical, Physical and Engineering Sciences
• Chemical Graph Transformation with Stereo-Information
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, Peter F. Stadler
Graph Transformation - 10th International Conference, ICGT 2017, 54-69, 2017 [ DOI ]
• A Software Package for Chemically Inspired Graph Transformation
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. Graph Transformation - 9th International Conference, ICGT 2016, 73-88, 2016 [ DOI | TR ]
• In silico Support for Eschenmoser’s Glyoxylate Scenario
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. Israel Journal of Chemistry, 55(8):919-933, 2015. [ DOI | TR ]
• 50 Shades of Rule Composition — From Chemical Reactions to Higher Levels of Abstraction
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. Formal Methods in Macro-Biology, 8738:117-135, 2014. [ DOI ]
• Conference version: Towards an Optimal DNA-Templated Molecular Assembler
Jakob L. Andersen, Christoph Flamm, Martin M. Hanczyc, and Daniel Merkle. ALIFE 14: The Fourteenth Conference on the Synthesis and Simulation of Living Systems, 14:557-564, 2014. [ DOI | http ]
Journal version: Towards Optimal DNA-Templated Computing
Jakob L. Andersen, Christoph Flamm, Martin M. Hanczyc, and Daniel Merkle. International Journal of Unconventional Computing, 11(3-4):185-203, 2015. [ http ]
• Generic Strategies for Chemical Space Exploration
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. International Journal of Computational Biology and Drug Design, 7(2/3):225-258, 2014. [ DOI | TR ]
• Navigating the Chemical Space of HCN Polymerization and Hydrolysis: Guiding Graph Grammars by Mass Spectrometry Data.
Jakob L. Andersen, Tommy Andersen, Christoph Flamm, Martin M. Hanczyc, Daniel Merkle, and Peter F. Stadler. Entropy, 15(10):4066-4083, 2013. [ DOI | http ]
• Inferring chemical reaction patterns using rule composition in graph grammars.
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. Journal of Systems Chemistry, 4(1):4, 2013. [ DOI | http ]
• Maximizing output and recognizing autocatalysis in chemical reaction networks is NP-complete.
Jakob L. Andersen, Christoph Flamm, Daniel Merkle, and Peter F. Stadler. Journal of Systems Chemistry, 3(1):1, 2012. [ DOI | http ]

## Software¶

• MedØlDatschgerl (MØD): I am the author of MØD, a package for graph-based cheminformatics.
• Sphinx: Sphinx is a documentation tool that supports multiple programming languages (domains). For version 1.3 I rewrote the C++ domain and has since maintained it.

## Installing Boost from Source¶

### Basic Installation¶

Boost uses a custom build system which may be difficult to use. The general procedure for compiling and installing Bosot is the following.

1. ./bootstrap.sh

Optionally give --prefix=some/path to specify a non-standard installation path. Also, see below if using a custom Python version.

2. See below if using a custom Python version or custom GCC installation.

3. ./b2

Probably give -j N (similar to GNU Make) to compile with N threads.

4. ./b2 install

Optionally give --prefix=some/path to specify a non-standard installation path (if not done earlier).

After bootstrap.sh has been run, the file project-config.jam has been created, which can be edited to customise installation path and a lot of other things. All edits should be done before running b2.

### Custom Python Version (e.g., Python 3 for Boost.Python)¶

This can be achieved in multiple ways. If the custom version (here assumed to be 3.3) is installed in the normal system location, then passing --with-python=python3 to bootstrap.sh should work. This adds a line similar to “using python : 3.3 ;” to project-config.jam. After compilation (running b2) the file stage/lib/libboost_python3.so should exist. If not, it did not detect Python 3 properly.

If Python is installed in a non-standard location, add the a line similar to “using python : 3.3 : python3 : /path/to/python/3/installtion/include ;” to project-config.jam, where the last path is the path to the include-folder of the Python-installation.

### Custom GCC Version¶

Before running b2 create the file user-config.jam in the root of the home dir (see here for the full documentation). Put a line similar to “using gcc : : /path/to/g++-4.8” in the file.

## Compiling Graphviz with svg:cairo¶

Graphviz can load SVG images and place them inside vertices. However, the specific case where the output is PDF requires that Graphviz is compiled with librsvg and libpangocairo. Unfortunately this is not the case for the default package in Ubuntu. To compile a custom version with these libraries you can do the following (on Ubuntu).

1. Install the dev-versions of the libraries: sudo apt-get install librsvg2-dev libpango1.0-dev.
2. Download the source package of Graphviz and do the normal autotools dance. Note that the build system of Graphivz does not currently support out-of-source builds.

## LaTeX¶

### Graphviz and OpenBabel¶

Put the content of graphvizObabel.sty in the preamble (or use \usepackage{graphvizObabel} when the file is in the same directory). Use pdflatex as compiler with the -shell-escape option (don’t use that option with code you don’t trust!). The following macros are now available. They should all be used as substitude for \includegraphics. The options in all macros can be omitted, and they will be passed down to \includegraphics.

• \graphvizBase[options]{layout engine}{complete graph data}: for compiling and including a general graphviz graph.
• \neatoGraph[options]{graph data}: expands to \graphvizBase[options]{neato}{graph {graph data}}
• \neatoDigraph[options]{graph data}: expands to \graphvizBase[options]{neato}{digraph {graph data}}
• \obabel[options]{smiles string}: uses OpenBabel to draw the molecule in 2D.

The graphviz macros requires graphviz to be installed and have dot in the path. The obabel macro requires OpenBabel 2.3 or higher to be installed and have obabel in the path.