BioUML - open source Java framework for systems biology

 
 Site Content 
 About 
    Home 
    Development roadmap 
    Team 
    Contact us 
    Acknowledgements 
    Donations 
 
 
 Software 
    Downloads 
 
 
 News & Events 
    News 
    Forum 
    Conferences 
 
 
 Documentation 
    Workbench user guide 
    Network edition 
    Publications 
    Presentations 
    Architecture overview 
    BioUML API (javadoc) 
    BioUML meta model 
    Diagram markup language 
    Module concept 
    Extension points 
    SBML support 
    Philosophical notes 
 
     
  BioUML meta model

BioUML meta model provides a formalism for comprehensive description, visualization and simulation of wide range of biological and other complex systems.

Meta model levels
Problem domain issues
Graph structure
Diagram type concept

Note: BioUML meta model uses ru.biosoft.access library that provides a framework for processing of hierarchically organized data.
Two main concepts of the framework are DataElement and DataCollection. DataCollection defines main methods for processing series of data. It can be thought as similar to a table in traditional semantics of relational databases. At the same time DataCollection can be thought as a generic form of java.util.Collection, where developers may use traditional methodology for working with Collection. DataElement is an interface that should be implemented by classes whose instances are elements of DataCollection.


Meta model levels

BioUML meta model splits model description to three levels:

  1. Graph structure. This level is used to present structure of  biological system as a clustered graph that further can be visualized as a diagram.
  2. Database level. Each diagram element contains 'kernel' that is an object from a concrete database. By this way we wrap database content into a set of objects that are associated with diagram elements. Package biouml.standard defines most common data types for modeling biological pathways and they mapping into simple text database.
  3. Executable model. Any diagram element can be element of executable (mathematical) model, for example it can be variable or equation. Each element of executable model should implement Role interface and should be associated with some diagram element. Now we have implemented support for simulating biological systems using system of ordinary differential equations. Latter we plan implement support for Petri nets, boolean networks and Markov chains.

 


Core classes of BioUML meta model.


Problem domain issues

The suggested meta model is domain neutral and can be used for formalized description, visualization and simulation not only biological complex systems.

Problem domain is taken into account by following way:

  • database content - diagram elements are associated with problem domain database content.

  • diagram view builder - it allows to build graph view that take into account problem domain peculiarity, for example biological pathway diagram view builder uses specific views for different pathway elements: proteins are shown as circles, genes as rectangles, substances as squares.

  • semantic controller - provides semantic integrity of the diagram during its editing. It takes into account problem domain constraints, for example if some specie is removed on biological pathway diagram, all related reactions should be removed too.

Package biouml.standard defines diagram types for modeling biological pathways as well as most common biological data types (gene, protein, RNA, substance, reaction, etc.) and they mapping into simple text database.


Graph structure

Package biouml.model defines classes used to present structure of  biological system as a clustered graph. It also defines concept of diagram and module that will be described latter.

Class DiagramElement is an abstract class to define common attributes for all graph elements:

kernel - database object that corresponds to this diagram element. parent - compartment to which this diagram element belongs.
name - the diagram element name. Usually it is the database object name. The name should be unique in the scope of the parent compartment.
title - diagram element title to be shown on the diagram. Usually it is the database object name.
comment - arbitrary comment as plain or html text.
view - diagram element view generated by DiagramViewBuilder database object name or identifier.
role - role that tis diagram element plays in mathematical model.

Node class defines attributes specific for graph node, namely:

location - graph node location (top left corner).
edges - graph edges connected with this node.
image - arbitrary image that can be used as this graph node view.
background - some background view. It is generally used to select or highlight graph node.

Edge class defines attributes specific for directed graph edges. Currently we use straight line as edge line path. However we plan introduce complex line path in BioUML bersion 0.7.2.

input - input graph node
output - output graph node
inPort - edge line path starting point
outPort - edge line path end point

Compartment is extension of Node class. It contains other diagram elements: nodes, edges or other internal compartments. It uses DataCollection framework to handle internal diagram elements. Specific compartment attributes are:

shape - the compartment shape. Currently compartment shape can be rectangle, round rectangle or ellipse.
shapeSize - size of compartment shape.
shapeColor - color of compartment shape.

Diagram is extension of Compartment class. It is specific attribute are DiagramType and DiagramViewOptions that are described below.


Diagram type concept

All diagrams are instances of the same class Diagram. To take into account different diagram types, Diagram contains type attribute that is instance of DiagramType class. DiagramType is responsible for visualization and semantic control of specific diagram. For this purpose it uses specialized subclasses of DiagramViewBuilder (to generate diagram view) and SemanticController to check the diagram semantics. DiagramType also defines what classes (database objects) can be used as nodes and edges.

DiagramType and related classes



Copyright © 2001-2008 Institute of Systems Biology. All rights reserved.