Introduction

Overall

The dynamics of biophysical functions usually can be described by a set of ordinary differential equations, partial differential equations, and IF-THEN rules including agent-based simulation models. Although it is difficult to archive biological functions because they are phenomena in the time domain, once they are modeled by those equations, it is possible to store them in a database for reuse since the models are merely mathematical, i.e. symbolic, descriptions. To receive the full benefit of modeling, each model in the database should include not only equations but also meta-information such as names of authors, model descriptions, information of the original paper in which the model was published, and so on in order to facilitate reuse of the model in the database. We have been developing a markup language called “insilicoML” or “ISML” to describe models using mathematical equations as well as meta-information.

The format of insilicoML (ISML) is defined using the W3C XML specification. Other markup languages, such as CellML and SBML have been developed using also XML to describe mathematical models of biophysical objects. The insilicoML is compatible with CellML at least version 1.1 at this moment. CellML and insilicoML are complementary in the sense of model description capability. We chose XML format since it can be an intermediate format among other languages (Fig. 1) because of its high extensibility. For example, to perform high specific simulation, computer languages such as C++ or C++ with MPI for parallel computation is suitable. For bifurcation analysis of the dynamical systems, applications xppaut and BUNKI are useful. Once a user describe the model in ISML, the model can be translated into other languages according to each purpose. The model in ISML includes enough information for such conversions.


Fig.2.

Fig. 2. Biological system is considered as an aggregate of modules. For example, a segment of a spinal cord is considered as a module. Then each neurons composing the segment is also considered as a module located at a one level lower than the module of the spinal cord segment. In this way, a group of modules is treated as one module. And this is a way to express the hierarchical structure of the physiological functions in the model.


We consider a target biological system as an aggregate of elements referred to as modules (Fig. 2). Modules are characterized by a system-level unique ID number, name, physical quantities representing dynamic or static sates with mathematical implementation defining the dynamics how the states evolute in time, and geometrical information that includes morphological information of shape, rotation and position, among others. Modules can affect functionally to each other through the interexchange of the values of physical quantities (Fig. 3). The value of physical quantity of a module goes out through an output port of the module to the input port on the other module indicated as a destination by an edge of type “functional”. The edges linking modules represent not only functional relationships among modules but also the structural or logical relationships. The structural relationships defined as the edge meaning “include” and “constituent” to represent hierarchical relationships, and “attachment” to represent modules are glued each other. Modules also can import morphological data (numerical data) and time-series data acquired by experiments or simulations and can utilize them in the model. By this feature, modeling with ISML can be a good way to combine wet and dry researches.


Fig.3.

Fig. 3. Each module is quantitatively characterized by physical quantities which represent dynamical variable (state) of differential equation, constant parameter and also can be assigned a time series data or morphological data. A functional edge (dotted line with an arrow head) indicate the flow of the numerical information. A structural edge represents hierarchical structure of the model (parent-child relationship). For example, the value of physical-quantity V in the left module goes out through a output port and is transmitted to the right module as indicated by the functional edge. The value is input to physical-quantity V in the right module through a port and utilized within the module. The right module has two children modules as its lower structure.


Another important idea employed in ISML is called “encapsulation”. A set of modules are clustered by declaring encapsulation, and are lapped by a capsule module as a representative of the modules in the cluster (Fig. 4). The capsule module has input and output ports which are sole interfaces to access to the inside modules from outside of the capsule. In this case, an input port of the capsule module is associated with an input port of the destination modules in the capsule module by a yet another type of edge “forwarding”, because this is a similar concept of port-forwarding of the ethernet. Similarly an output port of a module inside of the capsule module connects to an output port of the capsule module by “forwarding” edge. A module capsulated by a capsule module can also be capsulated by another capsule module, which means that encapsulation can nest. An encapsulated module is considered to belong to the scope of the capsule module at the most interior level. A capsule module is considered as a simple symbol of a certain physiological function. By encapsulation, the cluster of the modules can be easily reused in other part of the model or in the other models.

Encapsulation

Another important idea employed in ISML is called “encapsulation”. A set of modules are clustered by declaring encapsulation, and are lapped by a capsule module as a representative of the modules in the cluster (Fig. 4). The capsule module has input and output ports which are sole interfaces to access to the inside modules from outside of the capsule. In this case, an input port of the capsule module is associated with an input port of the destination modules in the capsule module by a yet another type of edge “forwarding”, because this is a similar concept of port-forwarding of the ethernet. Similarly an output port of a module inside of the capsule module connects to an output port of the capsule module by “forwarding” edge. A module capsulated by a capsule module can also be capsulated by another capsule module, which means that encapsulation can nest. An encapsulated module is considered to belong to the scope of the capsule module at the most interior level. A capsule module is considered as a simple symbol of a certain physiological function. By encapsulation, the cluster of the modules can be easily reused in other part of the model or in the other models.


Fig.4.

Fig. 4. Encapsulation is a way to increase a reusability of modules. A capsule defines a certain name space. Modules outside of scope of the capsule cannot access to modules in the capsule directly. A capsule module has output and input ports as like interfaces. So, the connection between a module in a capsule and a module outside of the capsule must be bypassed via the port on the capsule. A dashed arrow labeled as Forwarding Edge links from an input port of the capsule to an input port of a module, or from an output port of a module to an output port of the capsule. The capsules can be nested, i.e., a capsule can include other capsule.

Template / Instance

We also introduced a new idea to ISML1.0, that is the “template” or “template module”. This is used to create models which include many objects that have common nature but with different parameter values. For example, sodium ions in an agent-based model and motor neurons in a model of spinal cord. There are many sodium ions in the simulated space which have same porperty but with different position (parameter). In such case, once a template module of sodium ion is created, many ion objects are created as the “instances” of the template. Instances are like “copy” of the template module but can have different parameter values, thus they can behave independently to each other. Any encapsulated module(s) can be declared as a template. It means that not only a single module but also an aggregate of modules can be treated as a template if they are encapsulated.

Connections from instances to other modules are represented by connections between the template to the target modules. For example, if there is an edge from an output port Pa on the template module to an input port Pb on a target module, then every instance of the template has an edge from the output port Pa to the target module’s input port Pb. This means that the input port Pb receives multiple inputs. As a rule of ports, one input port can receive only one edge connection. But in the case of instances, the multiple connections from the instances are allowed to converge to one input port of the target module exceptionally. The port receiving multiple inputs can deal with those inputs as a kind of bundle of inputs. For example, if a port receives five inputs carrying membrane potential, the module receiving the inputs can sum up those five voltages using iteration-like calculation method.

isml/specifications/introduction.txt · Last modified: 2010/09/03 17:32 by okamoto
Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0