This Blogpost I’d like to use to tell something about PathLayout, a separate package for layout algorithms in PathVisio.

The Paver plugin uses this package for it’s layout functions. But because it is a separate package, other plugin projects can also make use of this package.

Currently the following layout algorithms are supported:

  • Balloon:

A Layout implementation that assigns positions to vertices using associations with nested circles. (source: jung)

  • Fruchterman-Reingold:

The Fruchterman-Rheingold algorithm. (source: jung)

  • ISOM:

Meyer’s “Self-Organizing Map” layout. (source: jung)

  • Kamada-Kawai:

The Kamada-Kawai algorithm for node layout. (source: jung)

  • Spring:

A simple force-directed spring-embedder. (source: jung)

  • Prefuse:

Force-Directed layout algorithm of the Prefuse software package. (source: prefuse)


If you want to use pathlayout in your own plugin project:

  • download the jar file here. 
  • download depending on the source the following jar files (here):


– jung-api-2.0.1.jar

– jung-graph-impl-2.0.1.jar

– jung-algorithms-2.0.1.jar

– collections-generic-4.01.jar


– prefuse.jar

  • Add the downloaded jars to your lib folder
  • Use the layout enumerator from the LayoutManager class to select and instantiate your layouts





Today I’m happy to announce that PathBuilder version 0.4 is now available for download. This version has a lot improvements compared to the version 0.2 I showed in my previous blogpost. There are now 4 different menu items made available by the plugin.

Build new Pathway:

Creates a new pathway with the nodes or connections given in the input.

Add to Pathway:

adds the nodes or connections given in the input on the right side of the existing pathway.

Layout All:

applies a layout algorithm to all the nodes of the pathway.

Layout Selection:

applies a layout algorithm to the nodes selected by the user.


The creation of connections has been extended with mim-type support. And in order to help speed up and make adding nodes and connections with the manual input easier, an auto-complete function has been added. With this function it’s no longer necessary to completely spell out a mim-type or database name.


By applying the layout function on a pathway, an automated layout algorithm is run. The result is that connected nodes are drawn close to each other. After using the layout function the user can thus easily drag nodes to the right place.

In this blog post I’d like to introduce version 0.2 of the PathBuilder plugin. Version 0.1 was getting connections(two nodes connected by a line) plotted on an empty pathway. Version 0.2 was enabling an extra option to add individual nodes, this functionality was taken from the already existing MAPPbuilder plugin.

The plug-in has a menu-item in the “plugins” menu, called PathBuilder, and after clicking the option “Build Pathway” the input window shown below appears.


The input can be given either from a tab delimited text file, or by manually typing in the information in the text box at the bottom of the window. There are two input types possible, connections and nodes. The correct syntax for this is:


SystemCode[:]Id [tab]  LineType [tab] SystemCode[:]Id


Label [tab] Id [tab] DataSource

For connections, the syntax has to be exactly right, it has to contain all elements. Individual nodes however can be created based on even just a label, or just an identifier. if just an identifier is given, this identifier will be the label as well. A data source can be given by both it’s full name, or by system code.

So the following list of individual data nodes can all be drawn using PathBuilder, the result of which can be seen on the right:

A list of connections, like the following will be drawn with all lines, but without any duplicate nodes. As of now, the only line type available is a normal line, with an a straight line on the left side and an arrow on the right. This list results in the pathway on the right side of the list. The connections are drawn in the centre of the window, a maximum of 12 connections are drawn in one column.

That’s it for now, in the next blog post I will show how after drawing the connections a layout algorithm can be used to organize the nodes and lines. For extra information on this version, there’s a tutorial video available as well(click here).

Until next time!


Welcome to the homepage for my Google Summer of Code(GSoC) Project.

I’m Christ Leemans, Bsc BiomedicalScience at Maastricht University.
During my internship at the bioinformatics department I developed a plugin for pathvisio[1].
It brought me in contact with PathVisio[2] and I also heard about google summer of code during this internship.
That’s why this year I applied for GSoC with my own project proposal[3], a plugin for pathvisio, called PathBuilder.

A short description of the project:
My idea is to create a plugin that aids the user of PathVisio in pathway creation by automating the process of connecting data nodes based on knowledge from different data sources such as interaction databases and text mining of literature. The user will be able to provide a list of data identifiers(representing e.g. gene products and metabolites).The plugin will create data nodes based on this input and it will make use of the “pathwayLoom” plugin[4] to look for possible connections between these nodes. After the nodes are connected a pathway will be drawn in a way that is clear and understandable for the user.