First day of the new teaching term…

Today is the first day of this years first teaching term.  We have four a year, of seven weeks, with exams in between.

This term I’m teaching two classes:

Both are classes optional classes for the students, and developed by me together with my co-lecturers (Christian N.S. Pedersen for string algorithms and Carsten Wiuf for systems biology).  That means we have a lot of freedom in how we run the class and what we cover.

String algorithms

String algorithms we have taught three times before, so I expect it to be very little work.  I have lecture notes and slides from earlier, and we don’t plan to make any major changes this year.  We cover the most basics in string algorithms, so even if the text book is getting a bit dated, we don’t have to change the class much.  The basics in string algorithms is essentially just suffix trees (which is the most important data structure to know in this field) and a few classical string search algorithms.

Next year we are thinking about having two string algorithms classes; the basic one and a second one covering more recent topics, e.g. genome assembly for next generation sequencing data.  That would be a bit more work, but I’m planning on running a journal club this year to read up on it.

Systems biology

Systems biology is more of a problem.  We have had the class once before, but didn’t particularly like how we ran it, so we need to come up with a new strategy for this year.  We are meeting this afternoon to discuss it.  The first lecture is on Friday.

The problem is that it is such a large field, so picking some “basic” topics is pretty hard.

26-43=-17

Systems biology exams

Today we (Carsten Wiuf and myself) held the exams for our Systems Biology class. This is the first time we teach this class, so we weren’t quite sure how to evaluate it.

The class was a theoretical introduction to systems biology — the full name of the class is Mathematical Models in Systems Biology — and we have covered some simple ODE modelling of systems, some stochastic modelling using stochastic Petri nets and implemented bits and pieces in R.

To test that our students knew how to do all three, we wanted to cover all three at the exam, so we did the following: each student got a small system to model, both deterministically as ODEs and stochastic as SPNs, and then they should explain what the system did (qualitatively, at least) and finally show that it behaved the predicted way by implementing it.

All in all I think it went pretty well.

The SBML discrete stochastic models test suite

ResearchBlogging.org

Good test suites (and benchmark suites) are important for software (and model) development, but can be pretty hard to come up with for stochastic models or software relying on probabilistic algorithms.In this issue of Bioinformatics there is an application note describing such a test suite:

The SBML discrete stochastic models test suite
Evans, Gillesipe and Wilkinson
Bioinformatics 2008 24(2):285-286.

Their approach is pretty simple: compare your simulations with the expected value and see if it falls outside the expected range (from known or previously simulated sd). As such, there is not really that to it. The models are also pretty simple, so while they will be useful for catching obvious bugs in a general simulator, I am not sure they will help catching more complex bugs. Of course, you do need to have the simple stuff working before you can tackle the harder problems, so it could still be useful.

Anyway, I am not planning on implementing a general SBML simulator, so it is not that much use to me, except that I am teaching a Systems Biology class where we are using Wilkinson’s book so the models in the test suite matches the exercises I am giving my students, and I can use the test suite to test their programming. Neat.


Citation, for Research Blogging:Evans, T.W., Gillespie, C.S., Wilkinson, D.J. (2007). The SBML discrete stochastic models test suite. Bioinformatics, 24(2), 285-286. DOI: 10.1093/bioinformatics/btm566

Petri Nets and Systems Biology

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):

Petri net-based method for the analysis of the dynamics of signal propagation in signaling pathways

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

Stochastic modelling for systems biology

Stochastic modelling for systems biology

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?

Mathematical modeling in systems biology

The next term is approaching, and this term I teach the course Mathematical Modeling in Systems Biology.

From the course description:

Biological systems such as cells, regulatory gene networks and protein interaction complexes cannot be understood from reflections on the individual components (genes, mRNA, proteins etc) alone, but must be understood through considerations involving all components at the same time. Naturally, that ̈places heavy demands on the way we perceive the system. Systems biology is concerned with modelling the dynamics of biological systems at a “systems level”, i.e. by considering the interactions of all the components of a system rather than the isolated properties of
the components. This course will present mathematical techniques for modelling dynamic systems in this context, with the main focus on stochastic modelling and computer simulation techniques for analysing dynamical systems.

After this course the participants will have insight into techniques for modelling the dynamics of biological systems, including the distinction between a system and its components, and how the performance of the system depends on more than the individual components alone. The method of work at the course will also train the participants to plan and complete projects and to present and communicate professional problems.

For the course homepage I’m using BiRC’s skeletonz system, ’cause I’m fed up with the university’s AULA system.