Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a piece of software that can easily take a representation of a biochemical network from a SBML file and translate it into a Petri Net?

Specifically, I'm looking for something that can give me the Petri Net in the matrix representation (one matrix each for Pre, Post, etc.). Something that translates from SBML to a Petri Net markup language (I think that there's one called PNML) would still leave me with my original problem of having to parse a markup language.

share|improve this question

We are developing a tool, iBioSim, which may have some of the functionality that you are looking for. We have support for developing Petri net models which are then saved as SBML using our model editor. Essentially, places are specially annotated parameters while transitions are specially annotated events. We can also translate these SBML models of Petri nets into a Petri net file format though it is one of our own design and not a standard. It does not, however, translate an arbitrary SBML file into a Petri net. We could likely add such support, but I'm not entirely sure what the resulting model could be used for. Namely, it would encode each species as a place and reaction as a transition, but it would be an infinite state (or very large) system in most practical cases. We do, however, have a method that translates our genetic circuit models expressed in SBML into a finite state stochastic Petri net through a series of abstractions (see Madsen et al, CIBCB 2012).

If I knew more about the purpose of your translation, I could perhaps provide a better answer.

share|improve this answer

I also would recommend looking at iBioSim (, but if that doesn't work for you, and you end up having to roll your own, you can move a step up from parsing the markup language directly by using libsbml ( This will give you semantic access to the events and reactions and other elements in the SBML file. From there, you could programmatically either write out the matrix representation, or perform your analysis directly.

share|improve this answer

Snoopy has the ability to translate between many Petri net formats, SBML, and other formats.

share|improve this answer
can you point me towards any documentation on the petri net formats mentioned in the Snoopy documentation? In particular, I'd be interested to know more about the XSPN and HPN formats. – tel Apr 22 '13 at 2:07
Based on the Snoopy FAQ, it looks like XSPN is "extended stochastic Petri net" and HPN appears to be "hybrid Petri net". I'm not familiar with them, but a Google search appears to find a variety of sources of more information about them. Maybe some describe the formats. If that fails to turn up a format description, you could email and ask Monika Heiner, the lead on Snoopy (her contact info is on the Snoopy web pages). – mhucka Apr 22 '13 at 18:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.