module-set

This is a set of modules. A module represents a functional component composing the model. A module is composed of the following children; property, port-set, physical-quantity-set, event-set and morphology. A module is given its ID (module-id) by a UUID which is unique across insilico models. For an insilico model to be registered to a model database, the root module of the model must be encapsulated. A database ID (db-id) is given to only a capsule module which encapsulates the root module of the model. A db-id is sequential number controlled by the database server. Notice that thus not all modules have db-id. See Section IV for the specification related to the db-id.

A module must specify its type as one of the following: functional-unit, container, or capsule. The functional-unit includes many features, such as physical-quantities, to model a physiological function. The container does not possess physical-quantities for itself and is supposed to represent a conceptual box to gather several modules, e.g. a “network” which may be composed of several cells. The capsule module is a kind of symbol of a physiological function which is implemented by several modules. The capsule module itself thus does not possess any physical-quantities but has only input/output ports as its interfaces. See section 4.2 for details of ports. The capsule module is linked by the edge to modules which are encapsulated by this capsule module. Several modules can be encapsulated directly by one capsule module.

<is:module type="capsule" module-id="15813F35-625B-4234-A31F-1F9AF23AFC1D" db-id="28">

1 property

The property of module includes the following children tags; name, capsulation indicating conditions if this module is encapsulated, template indicating if this module is a template module, track which is a trace of development history of the module, and time-discretization that represents the time unit or the time scale of the dynamics evolution of the module and time step used in numerical integration. keyword-set describes keywords for this module. frame-coordinate describes the spatial configuration of the morphology defined on this module. description is for describing this module.

<is:property>
  ... children tags of property ...
</is:property>

1.1 name

Name of the module with any text.

<is:name>I_K channel</is:name>

1.2 capsulation

This has an attribute state indicating that this module is encapsulated if state is true or that this module is not encapsulated by any capsules if it is false. If this module is encapsulated by a capsule module, then a child tag capsulated-by specifies the capsule module by its module-id. A capsule module can be also encapsulated by another capsule module. The tag capsulated-by specifies only the capsule module that encapsulates the module at the most interior level.

<is:capsulation state="true"> 
  <is:capsulated-by module-id="15813F35-625B-4234-A31F-1F9AF23AFC1D"/>  
</is:capsulation>
<is:capsulation state="false"/>

1.3 template

This tag has an attribute state that takes either true or false. If state is true, it means that this capsule module and modules under this capsule module represent a template of module(s). If it is false this capsule module is not template. A template of module(s) must be encapsulated. A template modules can include another template modules which are encapsulated by themselves.

<is:template state="true"/>
<is:template state="false"/>

1.4 track

To trace the development history of each module, database ID (db-id) of the insilico model which includes this module as its element is recorded in a child tag involved with the date of the creation of the module. Since the db-id is assigned to an insilico model by database server when the model is registered, before the registration the model does not have its db-id. In that case, a value “this” is written in involved tag instead of the db-id. When the model is registered to the database, “this” will be replaced by a newly given db-id.

<is:track>
  <is:involved db-id="this" date="2008-06-06"/>
  <is:involved db-id="26" date="2007-10-17"/>
</is:track>

In the above example, the second line of this track information shows that this module was created on 17 October 2007 in the model with db-id=”26”. Then the model with db-id=”26” in the database was imported to a currently developed new model as its module on 6 June 2008, and the entry at top raw was created. If the new model is registered to the database, “this” will be replaced by the newly assigned db-id. This track information will remain until this module is deleted even if any properties of the model that includes this module or this module itself are modified.

1.5 time-discretization

This defines time unit and time step to be used in discretization of time for numerical simulation of the module. This tag is defined only to the capsule type modules. Then modules directly encapsulated by this capsule module use the same configuration with this capsule module. Because every capsule module can have this information (time-discretization), a model can have several time scales. unit-id is given as an attribute. step, step-min, step-max are given as children tags of time-discretization, which are used in numerical integration.

Notice that time-discretization is defined also in model’s header, which is supposed to be used as default value. If a capsule module does not have time-discretization, the default configuration which is written in model header section is applied to the capsule module and modules in the capsule module.

<is:time-discretization unit-id="3">
  <is:step>0.01</is:step>
  <is:step-min>0.001</is:step-min>
  <is:step-max>0.1</is:step-max>
</is:time-discretization>

1.6 keyword-set

Several keywords (as many as the user want) to characterize this module are listed for further knowledge discovery based on ontology. Each word is described in the keyword tag which has a keyword-id attribute. The keyword-id must be positive number.

<is:keyword-set>
  <is:keyword keyword-id="1">cardiac muscle</is:keyword>
  <is:keyword keyword-id="2">arrhythmia</is:keyword>
</is:keyword-set>

1.7 frame-coordinate

A module can be characterized by geometrical information, that is the location of the origin of the local coordinate and angle of the local coordinate with respect to those of parent module. They are, respectively, described in the origin and rotation tags. The origin and rotation are defined in a local coordinate system whose origin is on the frame of the parent module, or the global coordinate. To specify the local or global coordinate, type attribute in frame-coordinate tag is used as type=”local” or type=”global”.

The parent-child relationship is defined according to structural edges. In the case of modules connected by edges with include and constituent types, parent-child relationship is clearly defined, i.e. a module comprehending the other is parent. In the case of edges with attachment type, the direction of the edge is considered to define parent-child relationship as a matter of practical convenience, i.e. the upstream of the edge corresponds to parent.

If one needs to utilize those information in other place such as other modules it needs to be implemented as physical-quantity. For example a vector with three elements can be used as a position vector to specify the frame origin. Then these physical-quantities can be altered dynamically as other physical-quantity(s) according to the dynamics described by ordinary/partial differential equations and/or algebraic equations.

<is:frame-coordinate>
  <is:origin> ... </is:origin>
  <is:rotation> ... </is:rotation>
</is:frame-coordinate>

1.7.1 origin

The origin is described as a vector with three elements using MathML. This is a position vector from the origin of the world coordinate to the origin of the local coordinate sticked to this module.

<is:origin format="mathml">
  <m:math>
    <m:vector>
      <m:cn>3</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
    </m:vector>
  </m:math>
</is:origin>

A physical-quantity can be used in MathML expression. For example if there is a vector physical-quantity origin_vect, the origin will be written as follows

<is:origin format="physical-quantity">origin_vect</is:origin>

or even using three scalar physical-quantities,

<is:origin format="mathml">
  <m:math>
    <m:vector>
      <m:ci>x</m:ci><m:ci>y</m:ci><m:ci>z</m:ci>
    </m:vector>
  </m:math>
</is:origin>

is possible.

1.7.2 rotation

The rotation is described in three ways specified by an attribute type taking either matrix, eulerangle or quaternion.

The rotation with type=”matrix” is given by a rotation matrix written in MathML or a physical-quantity. A format attribute taking either mathml or physical-quantity specifies if the value is given by MathML or a physical-quantity.

When type=”eulerangle” the first, second and third axes and rotation angle for each of them must be described in tags first, second and third, respectively. The unit of the angle also must be written in the angle-unit tag by giving the unit-id as an attribute. Each angle can be given by a numerical value or a physical-quantity. A format attribute taking either numerical or physical-quantity specifies if the value is given by numerical value or a physical-quantity.

When type=”quaternion” a vector representing the rotation axis and the angle must be described. The vector is written in a tag axis, and the angle is written in a tag angle. The unit of the angle must be written in a tag angle-unit. The vector can be given by a MathML or a physical-quantity. A format attribute taking either mathml or physical-quantity specifies if the value is given by MathML or a physical-quantity. And the angle can be given by a numerical value or a physical-quantity. A format attribute taking either numerical or physical-quantity specifies if the value is given by numerical value or a physical-quantity.

<is:rotation type="matrix" format="mathml">
  <m:math>
    <m:matrix>
      <m:matrixrow>
        <m:cn>3</m:cn><m:cn>0</m:cn><m:cn>1</m:cn>
      </m:matrixrow>
      <m:matrixrow>
        <m:cn>0</m:cn><m:cn>2</m:cn><m:cn>0</m:cn>
      </m:matrixrow>
      <m:matrixrow>
        <m:cn>0</m:cn><m:cn>1</m:cn><m:cn>2</m:cn>
      </m:matrixrow>
    </m:matrix>
  </m:math>
</is:rotation>
<is:rotation type="eulerangle">
  <is:angle-unit unit-id="8"/>
  <is:first axis="x" format="numerical">0.4</is:first>
  <is:second axis="y" format="numerical">1.1</is:second>
  <is:third axis="x" format="numerical">0</is:third>
</is:rotation>
<is:rotation type="quaternion">
  <is:angle-unit unit-id="8"/>
  <is:angle format="numerical">1.4</is:angle>
  <is:axis format="mathml">
    <m:math>
      <m:vector>
        <m:cn>1</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
      </m:vector>
    </m:math>
  </is:axis>
</is:rotation>

Instead of writing matrixes and vectors in MathML, a physical-quantity can be used in the definitions. In such case, an attribute format must be given as ”physical-quantity” and ref-physical-quantity-id specifies the ID of the physical-quantity. This feature is useful when an angle or an origin vector vary in time or used in other modules.

<is:rotation type="matrix" format="physical-quantity">
  pq_rot_matrix
</is:rotation>
<is:rotation type="eulerangle">
  <is:angle-unit unit-id="8"/>
  <is:first axis="x" format="physical-quantity" ref-physical-quantity-id="7"/>
  <is:second axis="y" format="physical-quantity" ref-physical-quantity-id="8"/>
  <is:third axis="x" format="physical-quantity" ref-physical-quantity-id="9"/>
</is:rotation>
<is:rotation type="quaternion">
  <is:angle-unit unit-id="8"/>
  <is:angle format="physical-quantity" ref-physical-quantity-id="3"/>
  <is:axis format="physical-quantity" ref-physical-quantity-id="4"/>
</is:rotation>

1.8 description

This is free text to explain what this module is.

<is:description>can be long sentence</is:description>

2 port-set

This is a set of ports which are a kind of entrances and exits of physical quantities characterizing the module. A port has a direction (in or out) and port-id given by sequential number within a module. A port with direction=”in” is referred to as an input port, and “out” to an output port, in this document. A module has several physical-quantities, which describe quantitative characteristics such as a state and/or a parameter of the module. A value of a physical quantity of this module goes out from an output port to be used by other modules. In the case of direction=”out”, a physical-quantity that goes out through this output port must be specified by its ID (physical-quantity-id) as an attribute ref-physical-quantity-id of the port. In the case of direction=”in”, ref-physical-quantity-id is not specified. Note that a physical-quantity that receives a value from the input port specifies the port-id. A port is characterized by its name and description.

<is:port-set>
  <is:port direction="out" port-id="1" ref-physical-quantity-id="2">
    <is:name>V</is:name>      
    <is:description>Membrane potential</is:description>
  </is:port>
  <is:port direction="in" port-id="2">
    <is:name>I_ext</is:name>
    <is:description>External stimulus current</is:description>
  </is:port>
</is:port-set>

If the module is a capsule module, the attribute ref-physical-quantity-id in a port with direction=“out” must be omitted.

3 physical-quantity-set

4 event-set

Events are used mainly in agent-based simulations, but is available for other scenes. When an event is evoked, this module calls a controller specified by its controller-id described in the call tag. To evoke an event, a certain condition is needed to be satisfied, which is defined in the situation tag.

<is:event-set>
  <is:event>
    <is:call controller-id="1" operation-id="2"/>
    <is:situation>
      <is:definition format="mathml">
        <m:math> ... </m:math>
      </is:definition>
    </is:situation>
    <is:description>
      free text description
    </is:description>
  </is:event>
</is:event-set>

4.1 call

A call has controller-id and operation-id to specify a controller and one of operation that the controller has.

4.2 situation

A situation defines a criterion to evoke an event, i.e. when the criterion is fulfilled, the event is evoked and an operation in a controller is called. In a situation, mathematical conditions are described in mathml format in a definition tag. In the mathematical description, physical-quantities defined in this module are available.

4.3 description

Free text to describe this event is written here.

5 morphology

Only one morphology can be assigned in a module. A morphology is composed of several geometries defined in the geometry-set section. Segements defined in segment-set are used for specifying particular region in the morphology to define, for example, a boundary condition. The spatial-discretization tag describes conditions for simulations using the finite element method.

<is:morphology>
  <is:geometry-set>
    <is:geometry geometry-id="1" type="solid" dim="3">
      ... children tags of geometry ...
    </is:geometry>
  </is:geometry-set>
  <is:segment-set>
    <is:segment>
      ... children tags of segment ...
    </is:segment>
  </is:segment-set>
  <is:spatial-discretization>
    ... children tags of spatial-discretization ...
  </is:spatial-discretization>
</is:morphology>

5.1 geometry-set

A morphology data used in the module is described in the geometry tags. The geometry tag has three attributes ”geometry-id”, ”type” and ”dim”. An attribute geometry-id is given as a sequential positive integer which is unique within a module. An attribute type specifies if the morphology is ”solid” or ”shell”. For example, if the type is solid with a sphere, the morphology is defined as a stuffed ball, and must be treated as volume data. If the type is shell, the geometry is defined as a surface of the ball. Similarly in cases of 2D objects, a shell of a circle, for example, means that the geometry is defined as a boundary of the circle with empty inside.

An attribute dim gives the dimension of the geometry, taking either ”0”, ”1”, ”2” or ”3”.

There are layout and constitution children tags, in which, respectively, the origin coordinate and rotation angle with respect to the local coordinate sticked to this module are described.

<is:geometry-set>
  <is:geometry geometry-id="1" type="solid" dim="3">
    <is:name>bottom</is:name>
    <is:layout>
      <is:origin>
        ... children tags of origin ...
      </is:origin>
      <is:rotation>
        ... children tags of rotation ...
      </is:rotation>
    </is:layout>
    <is:constitution type="...">
      ... children tags of constitution ...
    </is:constitution>
    <is:description>This geometry represents xxx</is:description>
  </is:geometry>
</is:geometry-set>

5.1.1 name

Name of the geometry with any text.

<is:name>bottom</is:name>

5.1.2 layout

The layout defines the location of the origin of the morphological object and its rotation with respect to the local coordinate in children tags origin and rotation, respectively. The origin must be described as a vector with three elements using MathML. The syntax of the rotation is the same with the rotation in the frame of the module property. See frame-coordinate|frame-coordinate for details.

<is:layout>
  <is:origin>
    <m:math>
      <m:vector>
        <m:cn>0</m:cn><m:cn>1</m:cn><m:cn>0.5</m:cn>
      </m:vector>
    </m:math>
  </is:origin>
  <is:rotation type="eulerangle">
    <is:angle-unit unit-id="8"/>
    <is:first axis="x" format="numerical">0.3</is:first>
    <is:second axis="y" format="numerical">1</is:second>
    <is:third axis="z" format="numerical">0</is:third>
  </is:rotation>
</is:layout>

5.1.3 constitution

An attribute type specifies the way to define the morphology, taking either ”parametric”, ”primitive”, ”vertex” or ”external”. When the type is external, the attribute iref in child tag reference specifies the path to the morphological data located in the local machine, and xref specifies the remote address, such as URL of the internet, if the resource file defining the morphology is at remote. If the type is other than external, the definition of the morphological data is described within this section in the format specified according to the type.

A constitution tag has children tags length-unit and type specific tags.

The length-unit specifies the ID of unit for length.

Each of parametric, primitive, vertex and external types is explained below.

5.1.3.1 parametric

The morphology is defined by mathematical expression using dummy variables. The dummy variables in the dummy-variable-set are used to depict a boundary as explicit functions with a certain range, which are defined in the section tag in the section-set tag. To write a geometry of the morphology in mathml format, left-hand-side of the equation defining each piece of the geometry must be x, y and z. Units of length and angle must be defined. For example to describe a cylinder with radius 1 and height 2, the boundary expressions are x=cos(2 Pi s), y=sin(2 Pi s) and z=t where s ∈ [0, 1] and t ∈ [0, 2].

<is:constitution type="parameteric">
  <is:length-unit unit-id="1"/>
  <is:dummy-variable-set>
    <is:dummy-variable>
      <is:name> s </is:name>
      <is:start> 0 </is:start>
      <is:end> 1 </is:end>
    </is:dummy-variable>
    <is:dummy-variable>
      <is:name> t </is:name>
      <is:start> 0 </is:start>
      <is:end> 2 </is:end>
    </is:dummy-variable>
  </is:dummy-variable-set>
  <is:section-set>
    <is:section>
      <m:math>
        mathml expression of x = cos(2 Pi s)
      </m:math>
    </is:section>
    <is:section>
      <m:math>
        mathml expression of y = sin(2 Pi s)
      </m:math>
    </is:section>
    <is:section>
      <m:math>
        mathml expression of z = t
      </m:math>
    </is:section>
  </is:section-set>
</is:constitution>

5.1.3.2 primitive

This type defines several primitive objects of the morphology, such as sphere, cube, circle, etc as shown in the table below. The variety of the objects is specified in the sub-type attribute of the constitution. To specify each primitive object, several parameters such as diameter, length of an edge, etc are described in parameter tags in the parameter-set tag with giving the type attribute to specify the parameter meaning.

The length-unit and angle-unit tags also need to be provided here for specifying an ID of unit for length and angle respectively.

<is:constitution type="primitive" sub-type="circle">
  <is:length-unit unit-id="1"/>
  <is:angle-unit unit-id="8"/>
  <is:parameter-set>
    <is:parameter type="rad1">8.9</is:parameter>
    <is:parameter type="rad2">1.7</is:parameter>
  </is:parameter-set>
</is:constitution>
<is:constitution type="primitive" sub-type="cuboid">
  <is:length-unit unit-id="1"/>
  <is:angle-unit unit-id="8"/>
  <is:parameter-set>
    <is:parameter type="side1">5.8</is:parameter>
    <is:parameter type="side2">1.2</is:parameter>
    <is:parameter type="height">3</is:parameter>
  </is:parameter-set>
</is:constitution>

The sub-type of the composition tag takes either point, line, circle, arc, sector, triangle, regular-triangle, rectangle, regular-rectangle, polygon, sphere, cone, triangular-pyramid, quadrangular-pyramid, polyangular-pyramid, cylinder, triangular-prism, cuboid, polyangular-prism. Each of them is defined by parameters summarized in the following table.

Sub-type Parameter types Note
point
line x, y, z
arc rad1, theta-start, theta-stop
circle rad1, rad2
sector rad1, rad2, theta-start, theta-stop
triangle angle, side1, side2 The angle is formed by two edges is necessary
rectangle side1, side2
regular-triangle side1
regular-rectangle side1
polygon side1, number Number of vertexes is necessary. Only regular-polygon is considered (length of edges are the same).
sphere rad1, rad2, theta-start, theta-stop, phi-start, phi-stop, capping
cone rad1, height, capping
cylinder rad1, rad2, height, capping
triangular-pyramid, triangular-prism angle, side1, side2, height, capping
quadrangular-pyramid side1, side2, height, capping
cuboid side1, side2, height
polyangular-pyramid, polyangular-prism side1, number, height, capping Only regular-polygon is considered
taurus rad1, rad2, rad3, theta-start, theta-stop, capping

Primitives have default segments (e.g. cicle has two line type segments). See Morphology primitives and FreeFem++ functions for details of default segments or segment-set section for isml specifications.

5.1.3.3 vertex

This type defines an object by giving the coordinates of vertexes in the n tag (representing “node”) in the node-set tag. Every n has id as an attribute which is sequential integer number starting form 1. The coordinate of a node is written by three numbers (x, y and z) separated by a comma. The axis of the coordinate is defined on this morphology (in layout). The total number of nodes (number of n tags) is written in n-total as an attribute of the node-set tag. A unit of coordinates of the nodes must be defined in length-unit tag. The element-set tag defines how nodes are linked to make a surface or volume. An attribute surface takes either tri0, tri1, squ0, or squ1, representing, respectively, triangle with 3 nodes, triangle with 6 nodes (higher order), square with 4 nodes, and square with 8 nodes (higher order). Similarly the attribute volume takes either tet0, tet1, hex0 or hex1, representing, respectively, tetrahedron with 4 nodes, tetrahedron with 10 nodes (higher order), hexahedron with 8 nodes, and hexahedron with 20 nodes (higher order ) on this morphology (in layout).. The element-set has children tags named s and v corresponding to surface and volume, respectively. Values of these tags are list of node ids separated by comma. The order of nodes defining an area is counterclockwise. The front or inner side of the surface is determined as the direction of tip of the right-hand thumb with the index finger directing counterclockwise around the area.

The total number of surfaces (number of s tags) is described in s-total as an attribute of element-set tag. Similarly the total number of volumes (number of v tags) is written in v-total as an attribute.

<is:constitution type="vertex">
  <is:length-unit unit-id="1"/>
  <is:node-set n-total="411">
    <is:n id="1">-2.1, -5.3, 0.0</is:n>
    <is:n id="2">-1.1, 0.1, 0.2</is:n>
    ...
    <is:n id="411">1.4, -1.2, 1.0</is:n>
  </is:node-set>
  <is:element-set surface="tri0" s-total="412" volume="tet0" v-total="254">
    <is:s id="1">1, 26, 31</is:s>
    <is:s id="2">31, 11, 2</is:s>
    ...
    <is:s id="412">31, 11, 2</is:s>
    <is:v id="1">1, 12, 25, 40</is:v>
    <is:v id="2">2, 26, 31, 2</is:v>
    ...
    <is:v id="254">298, 402, 310, 365</is:v>
  </is:element-set>
</is:constitution>

5.1.3.4 external

A pointer (relative file path or URL) is defined at an attribute iref for specifying local filesystem or xref for specifying remote file. An attribute format specify the format of the data, taking either vrml, vtk, stl, iges, obj, medit or gmsh. Recommended file extensions are, respectively, .wrl (.vrml), .vtk, .stl, .igs (.iges), .obj, .mesh and .msh. A length unit for coordinates of the nodes must be defined in the length-utit tag.

The mesh information is described in the meshed tag if the data in a file is meshed. If the morphology data is meshed, the state attribute must be ”true” and type attribute takes either ”volume” or ”surface”. Otherwise state is false, type attribute is empty and all other sections such as surface-element and volume-element must not be described. There are two children tags below the mesed tag, i.e. surface-element and volume-element in which mesh information for suface and volume are described, respectively.

The surface-element specifies the information of the mesh used for object surface. The type tag defines shape of mesh which takes either quad and tri. The order tag defines the order of each mesh element, which takes either 0, 1, 2 or 3. The surface-element must be provided in both cases of type=”volume” and ”surface”.

Similarly the volume-element specifies the information of the mesh used for volume object. The type tag defines shape of mesh which takes either hex, penta and tet. The order tag defines the order of each mesh element, which takes either 0, 1, 2 or 3. The volume-element must be provided in a case that type=”volume”.

<is:constitution type="external" format="vtk">
  <is:length-unit unit-id="1"/>
  <is:reference xref="http://www.physiome.jp/xxx/xxx.vtk"/>
  <is:meshed type="volume" state="true">
    <is:surface-element>
      <is:type>quad</is:type>
      <is:order>1</is:order>
    </is:surface-element>
    <is:volume-element>
      <is:type>hex</is:type>
      <is:order>1</is:order>
    </is:volume-element>
  </is:meshed>
</is:constitution>
<is:constitution type="external" format="vrml">
  <is:length-unit unit-id="1"/>
  <is:reference iref="./data/morphology/sample1.wrl"/>
  <is:meshed type="surface" state="true">
    <is:surface-element>
      <is:type>tri</is:type>
      <is:order>1</is:order>
    </is:surface-element>
  </is:meshed>
</is:constitution>
<is:constitution type="external" format="vrml">
  <is:length-unit unit-id="1"/>
  <is:reference iref="./data/morphology/sample1.wrl"/>
  <is:meshed type="" state="false" />
</is:constitution>

5.1.4 descrption

This is free text to explain what this geometry is.

<is:description>This geometry represents xxx</is:description>

5.2 segment-set

The segment-set is a list of segments, which define the groups of subsets of points composing the morphology data. The segment has a segment-id which is a sequential number and is unique within the physical-quantity. A segment has a set of a type attribute and a format attribute, as the following table:

Type Format
point, line, surface, volume geometry, node, element, segment, external, default
group segment

To define an surface using nodes, nodes must be listed in anti-clockwise direction. The front or inner side of the surface is determined as the direction of tip of the right-hand thumb with the index finger directing anti-clockwise around the area.

A segment also has a description element to explain what the segment is.

When the format=“node”, “element”, “segment”, “external” or “default”, the segment takes also ref-geometry-id attribute to specify a geometry in which nodes or elements listed as pieces are found. And the segment is composed of several pieces. An id in a piece referring either geometry-id, node-id, element-id, segment-id or default-id on the segment format as the following table:

Format Piece ID
geometry geometry-id
node node-id
element element-id
segment segment-id
default default-id

A “default-id” specifies the id of defualt segment (see Morphology primitives and FreeFem++ functions for details of default segments).

<is:segment segment-id="1" type="volume" format="geometry">
  <is:name>volume</is:name>
  <is:piece-set>
    <is:piece id="1" />
  </is:piece-set>
  <is:description>description about a segment</is:description>
</is:segment>
<is:segment segment-id="2" ref-geometry-id="1" type="line" format="node">
  <is:name>line</is:name>
  <is:piece-set>
    <is:piece id="21" />
    <is:piece id="22" />
  </is:piece-set>
  <is:description>description about a segment</is:description>
</is:segment>
<is:segment segment-id="3" ref-geometry-id="1" type="surface" format="element">
  <is:name>surface</is:name>
  <is:piece-set>
    <is:piece id="11" />
    <is:piece id="12" />
    <is:piece id="22" />
    <is:piece id="25" />
  </is:piece-set>
  <is:description>description about a segment</is:description>
</is:segment>
<is:segment segment-id="4" ref-geometry-id="2" type="line" format="default">
  <is:name>regular-rectangle_default_1</is:name>
  <is:piece-set>
    <is:piece id="1"/>
  </is:piece-set>
  <is:description>description about a segment</is:description>
</is:segment>

A segment group can be defined in the segment tag with type group. In this case, segment-ids are listed with piece tags in a segment section with an attribute format=“segment”.

<is:segment segment-id="6" ref-geometry-id="1" type="group" format="segment">
  <is:name>group</is:name>
  <is:piece-set>
    <is:piece id="1"/>
    <is:piece id="2"/>
    <is:piece id="3"/>
  </is:piece-set>
  <is:description>description about a segment</is:description>
</is:segment>

When the format=“external”, a pointer (relative path or URL) to segment definition file is defined in a reference tag. An attribute “iref” specifies a local file and a xref specifies a remote file. An attribute “format” specifies the data format and takes either iges, medit gmsh, or vtk.

<is:segment segment-id="5" ref-geometry-id="1" type="surface" format="external">
  <is:name>sample1</is:name>
  <is:reference format="gmsh" iref="./data/morphology/sample1.msh"/>
  <is:description>description about a segment</is:description>
</is:segment>

5.3 spatial-discretization

The spatial-discretization tag describes the information used during numerical simulation. The mesh tag gives the information how a morphology should be meshed..The number tag specifies the number of mesh nodes on a segement specified by ref-segment-id. The spacing tag specifies if the mesh nodes on a segment distribute uniformaly or not. They distribute uniformaly, the uniform attribute takes ”true”. Otherwise it takes ”false”.

<is:spatial-discretization>
  <is:mesh ref-segment-id="1">
    <is:number format="numerical">10</is:number>
    <is:spacing uniform="true/false"/>
  </is:mesh>
</is:spatial-discretization>

The division number at the number tag can be given as numerical value or a physical-quantity as shown in the example below. The format attribute takes either ”numerical” or ”physical-quantity” to specify the format of the value of the tag. In a such case of type=“physical-quantity”, a physical-quantity must be specified by its ID (physical-quantity-id) at an attribute ref-physical-quantity-id in the number tag.

<is:spatial-discretization>
  <is:mesh ref-segment-id="2">
    <is:number format="physical-quantity" ref-physical-quantity-id="9"/>
    <is:spacing uniform="true/false"/>
  </is:mesh>
</is:spatial-discretization>

6 import

This section is used for wrapping another model such as the one written in SBML. The import has an attribute type which takes either internal or external, and format takes sbml, for the moment. Definition relationships between physical-quantities and elements defined in the model imported here is in the implementation of physical-quantity. When type is internal, XML description of the model written in the format such as SBML is directly inserted under the import tag. When type is external, the URI is given as an attribute iref (for local path) or xref (for remote path).

<is:import type="internal" format="sbml">
  <sbml:sbml xmlns:sbml="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
    <sbml:model id="model">
      <sbml:listOfSpecies>
        ...
      </sbml:listOfSpecies>
      <sbml:listOfReactions>
        ...
      </sbml:listOfReactions>
      ...
    </sbml:model>
  </sbml:sbml>
</is:import>
<is:import type="external" format="sbml" iref="../model/model.sbml"/>
isml/specifications/ismodel/module-set.txt · Last modified: 2012/03/09 16:13 by ide-developer
Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0