Previous topic

Libraries of Modules in Synthetic Biology

Next topic

Specification of Multi-cellular Systems

This Page

Specification of Geometric DistributionΒΆ

The spatial distribution of the different cell types in multi-cellular systems such as tissues or colonies of cells plays a crucial role in processes involved in cell signalling [Burkhard2007]. The Infobiotics modelling language allows the user to capture characteristic spatial distribution in multi-cellular systmes using finite point lattices as described in this section.

A finite point lattice, lattice for short, is a grid of regularly distributed spatial points in Rn (n=1 or 2 in the current version of the Infobiotics Workbench). A lattice is determined by a set of basis vectors {b1,..,bn}, and two sets of lower and upper integer bounds, {l1, ...,ln} and {u1,...,un} respectively. The points of a regular lattice are then obtained as all the possible linear combinations of the basis vectors with integer coefficients within the given bounds:

Lat = { p = c1* b1+ ... + cn* bn: ciis an integer between li and ui}

Note that a point in a lattice is uniquely identified by the coefficients ci and therefore it will be represented as (c1, ..., cn).

Each point in a lattice is associated with a neighbourhood, set of points assumed to be near the given one. A neighbourhood of size k is determined by a set of vectors {n1,..,nk}. Given a point p in a lattice its k neighbours are computed as pi = p + ni.

We also associate with each point in the lattice a regular polygon, (typically a square, rectangle or hexagon) used to produced a tesellation of the space. This polygon is determined by a set of vectors {v1, ..., vq} used to compute each vertix, vertixi, of the polygon associated with a point in the lattice p as vertixi = p + vi. The name of the polygon used for the tesellation is normally used as an adjective for the lattice, below we present the most commonly used lattices so far in models developed within the Infobiotics workbench, namely, square, rectangular and hexagonal lattices.

alternate text

Example of a square lattice with a neighbourhood of four points. The lattice is determined by the basis vectors {b1, b2}, the neighbourhood {n1,n2,n3,n4} and the polygon defined by the vertices {v1,v2,v3,v4}.

alternate text

Example of a rectangular lattice where each point has a neighbourhood of eight points.

alternate text

Example of a hexagonal lattice with a neighbourhodd of six points

A regular lattice must be specified in the Infobiotics Workbech in a text file with the extension .lat in order to allow its reusability in order muti-cellular systems with the same geometrical distribution but different cell types. The components of a lattice are specified according to the following general skeleton:

lattice latticeName

   dimension d
   xmin      x1
   xmax      x2
   ymin      y1
   ymax      y2

   parameters
         ...
   endParameters

   basis
         ...
   endBasis

   vertices
         ...
   endVertices

   neighbours
         ...
   endNeighbours

An identifier latticeName is associated with the lattice specification that consists of the enumeration of the components of a lattice. The dimension, one or two, is declared following the key word dimension. The lower and upper bounds for the first and possibly the second coefficients used in the generation of the lattice points is stated next after the keywords xmin, xmax, ymin and ymax. The last two can be omitted if the dimension of the lattice is one. Paramaters used in the definition of the basis, vertix and neirghbour vectors must be declared within the block parameters ... endParameters as parameter parameterName value=val .

The basis vectors are specified in the block basis ... endBasis, the vertices in the block vertices ... endVertices and the neighbours in the block neighbours ... endNeighbours. Each vector must be declared as (firstComponent, secondComponent).

For example, in our running example we use the following square lattice

lattice rectangular

   dimension 2
   xmin      0
   xmax      10
   ymin      0
   ymax      30

   parameters
       parameter a value = 1
   endParameters

   basis
       (a,0)
       (0,a)
   endBasis

   vertices
       (a/2,a/2)
       (-a/2,a/2)
       (-a/2,-a/2)
       (a/2,-a/2)
   endVertices

   neighbours
       (1,0)
       (-1,0)
       (0,1)
       (0,-1)
   endNeighbours