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:
-
Graph structure. This level is used to present structure of
biological system as a clustered graph that further can be visualized as a
diagram.
- 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.
- 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
|