Researchers in quantitative systems biology make use of a large number of different software packages for modeling, analysis, visualization, and general data manipulation. The Systems Biology Workbench (SBW), is a software framework that allows heterogeneous application components-written in diverse programming languages and running on different platforms-to communicate and use each others' capabilities via a fast binary encoded-message system. Our goal was to create a simple, high performance, open-source software infrastructure which is easy to implement and understand. SBW enables applications (potentially running on separate, distributed computers) to communicate via a simple network protocol. The interfaces to the system are encapsulated in client-side libraries that we provide for different programming languages.
At the last count, there were over 250 different packages for simulating cellular networks (see www.sbml.org ). This proliferation of tools has resulted in a variety of capabilities and interfaces. Though welcome in many respects, this proliferation has resulted in two unwelcome side effects:
1. Each tool uses its own format, often undocumented, to store models. The result is that a model saved in one tool cannot be loaded into another. This obviously hinders the free exchange of models from one tool to another.
2. The second problem is that many of the tools duplicate each other's capabilities. Writing simulation tools takes time, and many of the projects are short-lived, which means that the authors are unable to develop the tools very far. As a result, many of the tools provide similar functionality. Unlike other software development communities, there is little tradition of code reuse in the system biology community. As a result, the community has seen much duplicated effort.
Model Interchange The first problem, that of model exchange, has been addressed by introducing a standard format for all tool writers to employ. This standard is called Systems Biology Markup Language (SBML) Along with CellML (www.cellml.org), the introduction of a standard format is beginning to make a significant impact on tools writers, and the majority of the most widely used tools now employ SBML as a means to exchange models.
Code Reuse The second issue is more difficult to address, that is how to encourage code reuse in the community. Our attempt to resolve this has been to develop a software framework called the System Biology Workbench. The workbench allows different tools to expose programmatic functionality to other tools. This means that a developer can now build on previous work without having to understand in detail the often intricate internal workings of other tools. All a developer need know is the interface that the tool exposes. Thus, a particular tool may expose a time-dependent simulation interface from a simulation tool, another tool developer-rather than invent another simulation tool-can exploit this capability and develop a new tool that can carry out additional functions. The workload for the second developer is greatly reduced, and they can instead concentrate on novel functionality.
This work is and was supported through the generous support of NIH, DARPA and the DOE