I did my PhD in the Coloured Petri Nets group here in Aarhus, but since I finished my PhD and changed my research field to bioinformatics I haven't touched Petri nets. Now, that I'm stating to get interested in systems biology, I seem to run into them again and again.
A lot of people seem interested in modelling biological systems in various types of Petri nets. I sort of see why. Petri nets have been used in modelling a wide variety of dynamic systems, so why not apply them to biological systems as well?
The papers I've read have left me a bit disappointed, though.
Most of the papers I've read seem to just add extensions to Petri nets for the sake of adding the extensions (or as excuse to get a paper published, you pick). I won't blame Petri nets nor systems biology for this, though. I've seen this in every single formalism I've read up on. It is a kind of feature creep that we computer scientists just cannot seem to avoid. Whenever we see an ever so tiny potential problem with a computer language, we immediately find a way to fix it and rarely do we worry if it is worth the problem to fix or if what it is fixing is really that much of a problem in the first place. For some reason, we just cannot keep things simple.
Anyway, I'm going to ignore this particular problem in this post and instead ask, what do Petri nets add to systems biology?
What do Petri nets add to systems biology?
Most papers I've read seem to just use Petri nets as a front-end for some other formalism. Some use Petri nets as a graphical way of specifying differential equations or some use (stochastic) Petri nets just as a front-end for Gillespie simulations.
If Petri nets are just used as a front-end for something else, then is that really the way to go? Sure, it is probably easier to get a feeling for a system by looking at a network than by looking at a set of coupled differential equations, but the lack of compositionality in Petri nets does mean that a lot of systems end up as "spaghetti networks", so perhaps process algebra was a better approach here? The same goes for setting up stochastic simulations.
Don't get me wrong, I do like Petri nets. I especially like that their graphical representation. I am just a bit disappointed that that is all they seem to bring to the table.
So far, the only paper I've seen that actually uses "good old" Petri net theory -- p- and t-invariants, in this case -- is the paper I read today (and incidentally the paper that got me thinking about all of this):
Simon Hardy and Pierre N. Robillard
Bioinformatics Advance Access published online on November 22, 2007
and even that paper seems to me to basically be modelling using differential equations. I might be wrong here, though, I haven't read it that thoroughly yet. They do extract some signalling information from simulations and I didn't quite get to which degree they need the net structure (as opposed to just the set of ODEs) to extract that.
Am I reading the wrong papers, or just missing the point here? If you know of any papers I really ought to read to get the point of using Petri nets in systems biology, then please let me know!
Practising what I preach?
Now after reading through all this it might surprise you that I will use stochastic Petri nets in the systems biology class I teach with Casten Wiuf this term.
It is not so much because of the nets, though. We want to use stochastic processes in the class and compare them with differential equation modelling to contrast deterministic ("large number of molecules") models. The text book we use
Darren J. Wilkinson
Chapman & Hall/CRC, 2006.
uses stochastic Petri nets, and that made the choice for us.
But is it the right choice? Would I actually use Petri nets myself if I had to model a biological system?
Honestly, I do not know. I am very familiar with nets from my PhD work, but not in the context of systems biology. I wouldn't know the right tools to use. I could easily end up programming simulators or numerical analysis methods myself, and then I am not sure I would gain much from starting out with nets.
I guess I really need to read up on Petri nets in systems biology... but where should I start?