Transcript Document

BioUML – open source extensible Java
workbench for systems biology
http://www.biouml.org
Fedor A. Kolpakov
BioUML – Biological Universal Modeling Language – is a step
in this direction. It is imagined as a language to write a “book of
life” i.e. model of the world in biological terms.
GeneNet module
Database
Diagram types
- Ontology
- Pathway
- Pathway simulation
-…
Java objects
Gene
KEGG/pathways
module
TRANSPATH
module
…
Protein
SBML module
Meta model
"We now have unprecedented ability to collect data about nature
but there is now a crisis developing in biology, in that completely
unstructured information does not enhance understanding. We
need a framework to put all of this knowledge and data into —
that is going to be the problem in biology. We've reached the
stage where we can't talk to each other — we've all become
highly specialized. We need a framework, a framework where
people can come back to us and say, 'Yes, I understand.' Driving
toward that framework is really the big challenge."
Standard module
Database adapter
Biosoft.Ru, Novosibirsk, Russia.
Design Technological Institute of Digital Techniques, Novosibirsk, Russia.
Sydney Brenner, 2002 Nobel Prize winner said:
Plug-in based architecture
The core of BioUML workbench is meta model. It provides an abstract
layer for comprehensive formal description of wide range of biological
and other complex systems. Content of databases on biological
pathways or SBML models are expressed in terms of meta model and
then can be used by other workbench plug-ins.
Meta model is problem domain neutral and splits the system description into three interconnected levels: 1) graph structure - the system
structure is described as compartmentalized graph; 2) database level each graph element can contain reference to some database object; 3)
executable model - any graph element can be element of executable
(mathematical) model, for example it can be variable or equation.
To take into account problem domain specificity we introduce concept
of diagram type that defines diagram view builder to visualize the
graph structure as diagram using problem domain specific visual
syntax and semantic controller to provide semantic control of diagram
editing. The module concept allows to developer define new diagram
types and incorporate other databases on biological pathways into
BioUML workbench.
SBML plug-in
Meta model
Graph structure
Node
DiagramElement
kernel:DataElement
title:String
view:View
role:Role
Compartment
location:Point
image:Image
n
SemanticController
n
Edge
in:Node
out:Node
Role
DiagramType
nodes:Node[]
edges:Edge[]
Diagram
ViewBuilder
type:DiagramType
ViewOptions
diagramElement
Executable model
Equation
Variable
Diagram
view part
ExecutableModel
n
variable:Variable
equation:String
initilaValue:double
Constant
variables:Variable[]
constants:Constant[]
Diagram
editor part
n
Diagram
editor
value:double
n
Platform runtime
Analysis
tools
Legend:
inheritance
Simulation
tools
Other
tools
encapsulation
Workbench UI
Perspectives
data flow
Views,
editors
BioUML workbench is a plugin-based application framework that
provides its extensibility and possibility of seamless integration of
other tools for systems biology. It consists from a Eclipse platform
runtime kernel (http://www.eclipse.org) that supports 'plug-ins' and
a set of plug-ins that support database access, diagram editing, and
biological systems simulation.
A plug-in is the smallest unit of BioUML workbench function that
can be developed and delivered separately into BioUML workbench.
Extension points are well-defined function points in the system
where other plug-ins can contribute functionality. An extension is a
specific contribution to an extension point. Plug-ins can define their
own extension points, so that other plug-ins can integrate tightly
with them.
Plug-ins are coded in Java. A typical plug-in consists of Java code in
a JAR library, some read-only files, and other resources such as
images, message catalogs, native code libraries, etc. BioUML
workbench installation includes a plugins folder where individual
plug-ins are deployed. Each plug-in is installed in its own folder
under the plugins folder. A plug-in is described in an XML manifest
file, called plugin.xml, residing in the plug-in's folder. The parsed
contents of plug-in manifest files are made available
programmatically through a plug-in registry API provided by Eclipse
runtime.
Menus,
toolbars, etc.
plug-in
SBW plug-in
SBML plug-in allows customer to view, create and modify models in
SBML format from BioUML workbench. It supports SBML level 1
version 1 format. Support for SBML level 2 in progress.
SBW plug-in allows customer to explore available SBW modules,
their services and methods (top left pane on the picture).
SBW host object provides seamless integration between SBW and
BioUML JavaScript shell. Using this shell customer can write
sophisticated scripts for analyses and simulation of SBML models.
We have packed all models from SBML Model Repository into SBML
model repository module that can be downloaded from the site and
imported into BioUML workbench.
sbw host object functions:
help – prints description of the specified SBW object. Example:
Special module type is used to store SBML models. Unlike other
BioUML modules SBML module type has not 'Data' section. These is
due to that all information about species and reactions is defined inside
of SBML model files.
sbw.help(“BROKER”);
list – prints list of all subelements for the specified SBW object, for
example code below will print list of all methods for NOM service:
sbw.list(“edu.caltech.NOM/NOM”);
Special diagram type is used to show SBML models as diagrams. This
diagram type is very similar with BioUML standard pathway
simulation diagram type and we use the same graphic notation. These
diagram type can be used for model simulation using MATLAB plugin. The plug-in will generate MATLAB files and starts MATLAB
engine for model simulation and results visualization.
BioUML workbench screenshot. Top left pane – repository pane
that shows database modules, here SBML models from SBML
module; top right pane – diagram editor; bottom left pane – property
inspector for the component selected on the diagram; bottom right
pane – diagram editor parts, here the diagram description editor;
middle right pane – results of the systems simulation
While SBML model do not provides information about diagram layout
some very simple layout algorithm is used for initial species and
reactions layout. The user can customize the layout and store it. For
this purpose plug-in defines its own extensions to store diagram layout
data in <annotations> element.
getService – returns service object for the specified SBW object.
Getting service instance you can invoke any service method according
to its SBW signature string. Example:
nom = sbw.getService(“edu.caltech.NOM/NOM”);
descr = nom.getBuiltinFunctionInfo("usir")[0];
Top left pane shows plug-in tree, particularly: 1) sbw host
object and its methods; 2) tree of SBW objects: categories,
modules, services and their methods. Bottom left pane
shows property of selected SBW object; bottom right pane –
JavaScript shell with example code how user can get SBML
model, SBW service and invoke service methods.
loadModel – load SBML model with the given name from the
specified BioUML module.Example:
model = sbw.loadModel(“SBML model reposytory”,
“CellCycle-1991Gol.xml”);
To read SBML model as String for further analyses there is read
method. Here is an example:
nom.loadModel( model.read() );