Background

Pathways are typically defined as networks of relationships between biological entities. They can be used to represent a wide variety of biological phenomena that occur on a number of levels. The scope can be anywhere from sub-cellular (e.g. the Citric Acid Cycle, which occurs entirely in the mitochondria) to across multiple organs, for things like drug biotransformation. Current research has made it abundantly clear that knowledge of pathways can greatly enhance our understanding of experimental data, particularly high-dimensional data, such as is generated from microarray experiments.

A significant problem faced by developers of pathway-related software is that the concept of pathways is by no means set in stone. What constitues a particular pathway can be highly subjective and is constantly exposed to changing and expanding scientific knowledge. Therefore, software that cannot readily deal with new and unforeseen classes of data is severely limited in this field.

To solve this problem, it is necessary to design software that is highly flexible and extensible. This is possible if the software is driven by 'metadata' - information that informs the code about the types and structure of the kinds of data that it is dealing with. In addition, we must make sure that biological data is only loosely coupled with its graphical representation