Posts Tagged ‘sbgn’

So I have an SBGN-ML file, what’s next?

Thursday, March 22nd, 2012

The Systems Biology Graphical Notation (SBGN) is a system for drawing pathways in a very precise and standardized way. But the problem is that the software support is spotty at best. The LibSBGN project is here to help improve that situation (For a bit of history, see here and here). As part of this project, we created a file format for SBGN files, named SBGN Markup Language or SBGN-ML.

Let me break that alphabet soup down for you:

  1. SBGN: the graphics
  2. LibSBGN: the software
  3. SBGN-ML: the file format

Suppose you manage to procure a SBGN-ML file. You may then reasonably ask what you can do with it. Until fairly recently, the only answer that we could give to non-programmers was “not much”. That is quickly changing however. I’ll present three things you can do with an SBGN-ML file right now.

1. Open it in PathVisio

Using the following webstart link, you can open PathVisio with the SBGN-plug-in pre-installed. (More information about the state of this plug-in, see the help page). Then go to File->Import… and select SBGN-ML from the file type drop-down.

2. Convert them into an image from the Command-Line

If you want to convert a bunch of SBGN-ML files to images, it’s easier to do it from the command-line. For this purpose I created a little script. First download the sbgn-to-png tarball. Unzip it, and run it from the command line using “sh sbgn-to-png.sh “.

3. Open it in SBGN-ED

The SBGN-ED tool is an alternative to PathVisio for editting pathway diagrams. SBGN-ED has won the annual SBGN competition in the category “Best software support” twice in a row.

When comparing PathVisio and SBGN-ED, the latter is probably a bit better when it comes to editing Process Description diagrams, whereas PathVisio deals better with Entity Relationship diagrams. The only caveat is that at this time of writing, SBGN-ED only supports an older version of SBGN-ML. For this reason, files generated by SBGN-ED can be read by PathVisio, but not the other way around. An update should arrive very soon though.

First release of LibSBGN

Thursday, February 10th, 2011

After months of work, last week we finally released the first version of LibSBGN.

LibSBGN logo

So what is LibSBGN? The Systems Biology Graphical Notation (SBGN), is a standard for drawing pathways. It prescribes exactly how to draw a biochemical reaction, how one can display the effect of heat on protein degradation, or how you should present the formation of a protein complex. It’s unambiguous: no matter how complex the drawing gets, it can be interpreted in only one way. SBGN is the result of many discussions, arguments and debates, over the course of several years and it’s therefore really well thought out.

Good software support is essential to make SBGN succeed as a standard. LibSBGN was created in an attempt to encourage uptake. As the name implies, LibSBGN is a software library that should make it easy to incorporate SBGN in pathway tools.

LibSBGN is only a software component, it’s not a ready to use end-product by itself. So this announcement is probably only interesting to bioinformatics developers. Nevertheless, I hope that it will soon lead to an increased uptake of SBGN in pathway tools, which should benefit end-users of those tools as well.

LibSBGN is already supported by a few applications, including of course PathVisio. To make sure that it works exactly the same in each tool, we’ve created a comparison gallery, containing several test-cases rendered by each tool. All the diagrams should look exactly the same for each tool. This comparison page has proven tremendously useful to check for bugs and misunderstandings.

This is only the first release, there is still a lot to do. This first release only supports a part of SBGN called process description (PD). The coming months will see lots of work on the remaining parts of SBGN, entity relationships (ER), and activity flow (AF). And after that we’ve planned more features, such as validation rules and file format conversion.

This is the first tangible result from something that was set in motion at a meeting in Wittenberg. LibSBGN community: thanks for your hard work and congratulations on this first milestone.

Going to COMBINE 2010

Saturday, July 31st, 2010

COMBINE 2010 is a meeting about all systems biology standards: SBML, SBGN, BioPAX, … etc. It’s from October 6 to 9 in Edinburgh, just before the ICSB conference.

Registration just opened, I’ve already signed up.

SBGN 5.5 Hackathon writeup

Sunday, April 25th, 2010

The goal of Systems Biology Graphical Notation or SBGN is to define a set of standard shapes for things like reactions, enzymes, genes, metabolites, compartments etc. For example, here is the reaction that takes place in your body after an alcoholic beverage, using SBGN notation.

Alcohol dehydrogenase as SBGN diagram

The SBGN community organizes regular meetings or “hackathons”, where specs are discussed and new SBGN-related software is presented. This year I was present at the meeting held at Wittenberg in Germany (where you can still find the church door where Luther pinned his 95 theses). Here is my writeup, by no means complete, just a collection of impressions.

Vanted SBGN-ED
In the category SBGN-related software, Tobias Czauderna demonstrated SBGN-ED,  a new plugin for Vanted that lets you create diagrams in SBGN format. Especially interesting is the nice validator that can tell you if you drew something that is not allowed by the SBGN specifications. A very complete SBGN editor and probably one of the nicest out there. No link yet, but there will be a publication very soon.

Vanted BridgeDb plugin
Unfortunately a few presentations had to be canceled the first day due to the volcanic ash that was plaguing the European skies. To fill the gaps in the agenda, we just started hacking on random stuff. One result of this was a Vanted BridgeDb plugin that I made together with Christian Kuklas. Christian immediately found a number of bugs and requested new features in BridgeDb. There is not yet an easy way to install the plugin, but if you’re interested you can play with the source code

SBGN Exchange format
The second and third day, most participants managed to overcome the disruption of the air traffic and join the conference. Besides discussion on the planned next release of SBGN, there was another important topic: LibSBGN.

SBGN currently only exists as a specification of glyphs and symbols and what they mean, there is no computer file format. But there are now several software packages out there that deal with SBGN, and they need a standard exchange format to work together.

The existing standard file formats for pathways, SBML and BioPAX, do not store  layout information, i.e. they do not store the position of the elements of a diagram. According to the SBGN spec, layout information does not carry any meaning. Biologically the diagram means the same thing, no matter if elements are arranged vertically, horizontally, in a circle, or in random order. So you would think there is no problem.

But as it turns out, it’s exactly the layout information that has to be exchanged between pathway software. It turns out that a good pathway layout is really hard to do automatically, so once you have painstakingly defined a layout you want to preserve it. So weirdly enough we want an SBGN file format to exchange information that is not part of the SBGN spec at all.

Because there is no standard, the current tools all defined their own ad-hoc file format out of necessity. The lack of a standard file format is really becoming an impediment to cooperation. There has been a lot of talk how this should look like, XML? DTD? GML? Object model? But in my opinion it doesn’t matter too much in the end, you just have to make a decision and stick with it. We’ve been able to turn a lot of discussion into tangible results in the form of a new SourceForge project, and uploaded some small samples and the beginnings of an XML Schema definition. Hopefully we can keep the momentum and get it mostly done by the next SBGN meeting.

jSBML
Not related to SBGN directly, but I found it interesting nontheless: A new java native library for SBML is being developed called jSBML. There already existed a library called libSBML, but it’s written in C++. Because LibSBML was considered a “good-enough” solution for java programs, the SBML community for a long time resisted the notion of a native java library. But it turned out that many SBML-based Java projects were actually developing their own native library anyway. Ironically,  the tendency to avoid duplication of work actually led to multiple incomplete projects that all duplicated each other. Sometimes it’s best to accept reality.