— the global portal for all things SBML

No size restrictions

The Level 2 definition of Compartment includes restrictions on the permitted values of the attribute spatialDimensions. Specifically, the spatial dimensions are restricted to integer values, and those values must be from 0 to 3 inclusive. In developing the Level 3 Core specification, we realized that these explicit restrictions were both unnecessary and prevented the ability to express models with fractal dimensions. The restrictions are unnecessary because any typical model will use integer dimensions anyway, while disallowing models with fractal geometries seems arbitrary and unbefitting a general representation format for systems biology. If someone were to define a model with compartments having fractal geometries, SBML should be able to encode it.

The spatialDimensions attribute will not have default value (following the no-defaults principle of Level 3), but in addition, unlike most other cases where optional attributes had default values, spatialDimensions will remain optional. This is because in models that specify complete units, the spatialDimensions attribute actually becomes redundant: the measurement unit used for the compartment size necessarily embodies the number of spatial dimensions. Moreover, the value of this attribute cannot alter the mathematics of a model—a simulator has to run the model as given, regardless of whether a compartment has an inconsistent spatialDimensions attribute value. The conclusion drawn from this is that spatialDimensions is more akin to an annotation, and therefore should be optional.

Changes compared to Level 2

For the reasons given above, Level 3 Core removes restrictions on the spatialDimensions, and defines the data type to be double instead of int. The new definition of the Compartment component is shown below:

(Note that this diagram also shows changes due to the removal of CompartmentType and the removal of the outside attribute .)

Notable implications

While spatialDimensions is optional, it is considered good practice to specify a value for every compartment in a model. This may allow software tools that do not interpret units nevertheless to be able to do some operations that benefit from knowing whether a compartment is, e.g., two-dimensional or three-dimensional.

Retrieved from ""

This page was last modified 05:05, 11 June 2009.

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 05:05, 11 June 2009.