edit SideBar

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

T U T O R I A L - BioModel Engineering with Petri Nets

latest update: April 05, 2019, at 12:22 AM

still under construction
This page provides a collection of material (papers, slides and biochemically interpreted Petri nets) illustrating selected aspects of BioModel Engineering; used, e.g., for the PhD course held at the Graduate School of the Ca' Foscari University Venezia/Italy in July 2016.


Basic materials

  • [BHM15]
    MA Blätke, M Heiner and W Marwan:
    BioModel Engineering with Petri Nets;
    In Algebraic and Discrete Mathematical Methods for Modern Biology, (R Robeva, Ed.), Elsevier Inc., pages 141–193, March 2015. [ url ] [ doi ] [ BibTeX ]
    (Textbook chapter, introducing QPN, SPN, CPN, HPN and its coloured counterparts, without any formal definitions.)
  • all pn's for figures and running example in [BHM15]
  • [HGD08]
    M Heiner, D Gilbert and R Donaldson:
    Petri Nets for Systems and Synthetic Biology;
    In SFM 2008, (M Bernardo, P Degano and G Zavattaro, Eds.), Springer, pages 215–264, 2008. [ pdf ] [ doi ] [ BibTeX ]
    (Textbook chapter, introducing QPN, SPN, and CPN; provides also formal definitions for most technical notions.)
  • [BHM11]
    MA Blätke, M Heiner, and W Marwan:
    Tutorial - Petri Nets in Systems Biology;
    Technical report, Otto von Guericke University Magdeburg, Magdeburg Centre for Systems Biology, August 2011. [ pdf ] [ BibTeX ]
    (A self-contained tutorial, Chapter 8 might also serve as a brief Charlie manual.)


  • Snoopy - GUI tool to construct, animate and simulate Petri nets (QPN, SPN, CPN, HPN, and their coloured counterparts)
  • Charlie - GUI tool for QPN analysis by standard Petri net theory
  • Marcie - CLI tool for QPN and SPN analysis, including model checking
  • Spike - CLI tool for continuous, stochastic & hybrid simulation of (coloured) Petri nets
  • MC2 - simulative model checking



  • Systems and Synthetic Biology, a brief introduction (slides)
  • Petri nets - a bit of history (slides)
  • Petri nets in a nutshell (slides)
  • Developing Bio Petri nets, four approaches (slides)

Petri nets of some basic structures

  • (pn) - to introduce the firing rule: 2H2 + O2 -> 2H2O
  • (pn) - some basic scenarios
  • (pn) - metabolic vs. signal transduction networks
  • (pn) - transcription + translation (gene - mRNA - protein)
  • (pn) - layout options - (screenshot)

hints re web-based animation:

  • logical nodes not highlighted;
  • firing of logical transitions/hierarchy buggy;
  • no support of splines, constants;
  • download the net and animate locally; when opening the net, chose 'do nothing'.

Petri nets of some case studies

  • (pn) - combined glycolysis/pentose phosphate pathway in erythrocytes [Reddy 1994], [H98.sld], ..., [H16.mcc]
  • (pn) - apoptosis [GON 2003], [HKW04], [HK04]
  • (pn) - RKIP/ERK signalling pathway, inspired by [Cho 2003]; [GH06], [HDG10]
  • (pn) - signalling cascade, inspired by [Levchenko 2000]; [GHL07b], [HGD08]
  • (pn) - self-powered biosensor template [GHR+08]
  • (pn) - repressilator, inspired by [Phillips 2008]; [LH14]
  • (pn) - circadian clock, inspired by [Vilar 2002]; [BHM15]
  • (pn) - Lotka–Volterra system (prey/predator)
  • (pn) - E. coli core [SGH18]



  • (slides) - properties and related analysis techniques

partial order versus interleaving semantics

  • (pn) - example RKIP/ERK signalling pathway
  • partial order semantics: (pn) - one partial order run
  • interleaving semantics: (slides) - reachability graph (occurrence graph, marking graph)

structural and behavioural properties

  • (pn) - orthogonality of boundedness, liveness, reversibility
  • (pn) - static vs dynamic conflicts
  • (pn) - various boundedness and liveness degrees, compare Fig. 7 in [HGD08]
  • (pn) - a simple example, see Fig. 12 in [HGD08] for its reachability graph
  • (pn) - net classes (SM, SG, FC/EFC, ES); for formal definitions see Def. 7 in [HGD08]

place/transition invariants

  • (slides) - T-invariants
  • (pn) - (slides) - transition invariants / elementary modes / extreme pathways
  • (slides) - modularisation by T-invariants
  • for formal definitions see Def. 8 in [HGD08]
  • (pn) - to introduce T-invariants
  • (pn) - ex mass-action component (live) and its P/T-invariants
  • (pn) - another example, compare Fig. 8 in [HGD08]
  • (pn) - basic structures of P/T-invariants
  • (pn) - combinatorial explosion of P/T-invariants
  • structured T-invariant representation using atomic fragments
  • pseudo-code algorithm for invariant computation, Algorithm 1 in [H09]
  • modular computation of invariants

siphon / trap / bad siphon

  • for formal definitions see Def. 9, 10, and Theorem 1 in [HGD08]
  • (pn) - siphon / trap / bad siphon, compare Fig. 11 in [HGD08]
  • (pn) - a minimal P-invariant properly containing a bad siphon, see slides for more details;

model checking



  • (slides) - Markov chains and functional safety, an introduction
  • (slides) - stochasticity, explained by mass/action pattern [Gilmore, SFM2008]

Stochastic Petri nets of some case studies

  • (spn) - transcription + translation (gene - mRNA - protein)
  • (spn) - (partial order run) - RKIP/ERK signalling pathway
  • (spn, unbounded) - (spn, bounded) - repressilator [LH14]
  • (spn) - lac operon, an example of prokaryotic gene regulation (using a scheduled transition) [Lehr07]
  • (spn) - phosphate regulation (using immediate and scheduled transitions) [MRH12]
  • (spn) - (spn with constants) - Lotka–Volterra system (prey/predator)

hints re web-based animation:

  • inhibitory arcs buggy
  • no support of stochastic animation/simulation


. . . from Petri nets to Ordinary Differential Equations (ODEs)


  • (slides) - a cpn uniquely defines an ODEs
  • (slides) - a case study: the RKIP/ERK signalling pathway [HDG10]
  • (slides) - a case study: signalling cascade [HGD08]
  • (slides) - a case study: hypoxia [HS10]




. . . from Petri nets to Partial Differential Equations (PDEs)

  • (slides) - and then there was colour

. . . more case studies



(slides) - BioModel Engineering for genome-scale models

SBML files

Petri nets


General rules

  • deadline (strict): 30 September 2016
  • you can work in groups of up to two students
  • please submit a short report (3-5 p.) summarising:
    1. Task (a paragraph describing the task)
    2. Material (any input you started from, such as Petri nets, tools, etc.)
    3. Methods (any methods you applied to obtain the results)
    4. Results (summary of the main findings)
    5. References
    6. Appendix (List of any complementary sources and a description how to use them)
  • provide any complementary sources, required to reproduce your results, e.g.
    • Petri nets developed
    • source code/scripts developed
    • movies produced
  • Project allocation can be changed, but only once.

Project proposals, overview

  1. DNA walker
  2. Converting an ODE model into a discrete model, 1
  3. Converting an ODE model into a discrete model, 2
  4. Snoopy mini clips
  5. Charlie mini clips
  6. Comparing the tool suite Snoopy/Charlie/Marcie with Monalisa
  7. Charlie regression testing
  8. Parameter scanning /sensitivity analysis over Marcie traces
  9. Debug Snoopy's web-based Petri net animation NEW
  10. ANDL <-> Prolog converter NEW
  11. If you have an own idea of a potentially suitable project, please contact me so we can discuss it. NEW

Project allocation

Hint: Please contact me immediately, if you should encounter major problems while working on the project. If required, project allocation can be changed, but only once.

Project proposals, more details

(1) DNA walker

For a summary see MCC modell form which also provides two references with more background info for the model (let me know when you don't get access to the papers).

The model itself is available here in PNML, a format which can be read by snoopy (via Marcie's stand-alone format converter).

The task is

  • to understand the model,
  • to apply all analysis techniques introduced in the course (as far as possible), and
  • to represent it in a more condense way using coloured pn (which will be introduced in the last week), see Section 7.7.

(2) Converting an ODE model into a discrete model, 1

The paper xyz comes with an ODE model provided in the SBML exchange format. The task consists in converting this model into a sound discrete model (qpn, spn). You can check if you got it right by comparing the averaged stochastic behaviour with the continuous behaviour.

(3) Converting an ODE model into a discrete model, 2

As the previous task, but for the paper:

(4) Snoopy mini clips

The textbook chapter [BHM15] contains a couple of exercises enumerating in detail the steps required for certain Snoopy scenarios, see, e.g., 7.1-7.3, 7.8, 7.11/7.17/7.24, 7.12. Additionally, the answers for some other exercises are best given by showing how it has to be done with the Snoopy tool, see e.g., 7.4, 7.13, 7.15, 7.18, 7.25, 7.27, 7.28.

See also [BHM11] for some basic use cases.

There are simple public tools around which allow you to record what happens within a window on your machine, even combined with voice recording (requires good english), and by this way to produce tiny video clips making up together a kind of tutorial how to operate a tool, compare

demo1 demo2 demo3 ,

or without voice recording, as done in demo4 .

Finally, the clips to be produced should be uploaded to youtube, and a website summarising the links could be the final product, to be added to the Snoopy website (if quality permits).

Having done this, you might come up with a list of further scenarios which should be provided (in the future) to assist an advanced user.

(5) Charlie mini clips

See previous task, but for Charlie.


  • [BHM11] provides some basic use cases and explains quite detailed Charlie's interface.
  • See also [Fran09] for additional background information.

(6) Comparing the tool suite Snoopy/Charlie/Marcie with Monalisa

The task is to compare the tool suite Snoopy/Charlie/Marcie with Monalisa with respect to

  • functionality (net classes supported, tool features)
  • performance

Test cases: all examples used during the course may serve, additional more expensive ones are provided.


(7) Charlie regression testing

The task is to develop a user test framework, which supports regression testing. Such a test framework can take advantage of Charlie's command line interface, which seems not to be mentioned on Charlie's website, but is explained in all details in [Fran09]. Some example calls:

tCharlie.sh --netfile=siphon_trap_test2.andl --analyze=props > siphon_trap_test2.log

tCharlie.sh --netfile=siphon_trap_test2.andl --analyze=pinv --exportFile=siphon_trap_test_p2.inv

tCharlie.sh --netfile=siphon_trap_test2.andl --analyze=siphon --computeBadSiphons=1 --exportFile=siphon_trap_test_badSiphon2.res

but, the exportFile is not generated, the result is given on stdout; ie, has to be called as:

tCharlie.sh --netfile=siphon_trap_test.andl --analyze=siphon --computeBadSiphons=1 --exportFile=siphon_trap_test_badSiphon.res > bs-log.txt

Likewise for all analysis engines. This obviously allows the integration of such a call in a test framework to iterate over a test suite (collection of test pn's), and to compare the obtained results with the expected results.

(8) Parameter scanning /sensitivity analysis over Marcie traces

requires scripting and some programming to analyse the generated traces.

(9) Debug Snoopy's web-based Petri net animation NEW

Snoopy supports the animation of Petri nets within a standard web browser (for some examples see above), which however is buggy. Further obstacles are caused by the constantly evolving web browser technology.

The task consists in testing the animation with a set of standard web browsers, which are currently in use over different platforms, and in correcting at least one of the bugs known related to:

  • animation of logical transitions
  • visualisation of inhibitory arcs
  • dealing with hierarchies

Requires skills in Javascript.

(10) ANDL <-> Prolog converter NEW

Snoopy files can be stored in ANDL format (see Marcie manual for syntax), which is a compact form and can be read and processed by Marcie. These files effectively describe graphs, and it can be useful to edit them automatically; Prolog is an effective language to achieve this, due to its logical basis and database capabilities.

The task consists in creating a program to convert between ANDL files and Prolog. The Prolog to be used is gprolog (gnuprolog), available from http://www.gprolog.org.

The definition of the pProlog format to be used is illustrated by the file prolog demo file.


  • requires skills in state-of-the art compiler techniques;
  • an ANDL syntax checker can be provided when C++ is chosen as implementation language. Then the direction ANDL -> Prolog becomes very easy.

Allocated mini projects

  • (1) - Giorgia Minello and Bruno Quintavalle (DNA walker)
  • (4) - Heider Wahsheh and Mohsin Raza Jafri (Snoopy miniclips)
  • (6) - Mauro Tempesta and Marco Fiorucci (Monalisa)
  • (8) - Francesco Palmarini and Gianpietro Basei (parameter scanning/sensitivity)

Interest indicated

… the end …

Any comments or questions are welcome. Please direct them to monika.heiner@b-tu.de Privacy Policy