Urdar - A digital ecology

This page contains an applet which illustrates the dynamics of the artificial life system Urdar accompanied by a tutorial and a description of the system. In order to run the applet you need to have Java Runtime Environment installed.


Introduction - The origin and maintenance of biodiversity has been a long standing question among ecologists. One of the simplest ecological system where biodiversity emerges, and is stably maintained, is in populations of E. coli growing in a homogeneous environment limited by a single resource, usually glucose. The diversity is facilitated by cross-feeding (syntrophy), where one strain partially degrades the limiting resource into a secondary metabolite which is then utilised by a second strain. The platform Urdar is aimed at investigating the evolution of cross-feeding, but not in the context of a specific biological system, but instead we extract and analyse the general principles governing systems where cross-feeding might emerge.

Cross-feeding - The dynamics of cross-feeding can in general terms be described by the figure below.

The agents in the model digest binary strings by applying CA-rules, transforming r to r'. To each such metabolic step we can associate a difference in energy dE (visualised with dot- ted lines). The reproduction of each agent depends on how much it can decrease the energy of the binary string and oc- curs with probability P(dE) (represented by the arrows on the left hand side). The binary strings exist in a common pool which they enter (and leave) at a rate gamma, as shown by the arrows on the right hand side.

This framework is very general and in Urdar we have made the following choices:

(i) The agents a are chosen to be nearest-neighbour one-dimensional elementary cellular automata (CA), one of the simplest notions of digital algorithms.

(ii) The metabolites r are taken to be binary strings

(iii) The energy function E is taken to be an approximation of the Shannon entropy, which gives an estimate of the amount of disorder a binary string contains, associating a low entropy (low level of disorder) with a high "energy" state of the string, i.e. we set E = 1 - s.

(iv) The reproduction probability P is an increasing function defined by:

Implementation - The dynamics, depicted schematically in the above figure, in the model during one update can be described in the following way:

1. Each agent in the population picks randomly a resource string rj from the resource pool R and transform it accord- ingly to its CA-rule and then puts the transformed string back into the resource pool.

2. The efficiency of the "metabolic process" just occurred is evaluated by measuring the energy difference dE of the string before and after the "digestion/transformation". This is done by drawing a random number x uniformly between 0 and 1, and if P (dE) > x the agent reproduces.

3. With probability mu the offspring will be mutated uniformly to another CA-rule.

4. In order to keep energy flowing into the system, after all agents have been updated, a fraction gamma of the strings are replaced with high energy binary strings.

Dynamics - The growth rate of a species (i.e. CA-rule) depends on how good it is at increasing the disorder of the food-strings in the resource pool. This in turn depends on the composition of the resources which is determined by the totality of species present in the system. Thus we see that the fitness of a species is not easily defined and is contingent on the ecosystem as a whole. This gives rise a large degree of species co-existence as can be seen in the applet.


The applet illustrates a couple of basic features of the system described below:

- Species distribution. This panel shows the time evolution of the species frequencies. The number of species in the system is 256 and the total population size sis kept at constant value of 1024 individuals.

- Food strings. This illustrates a sample of the binary strings in the resource pool. For high flow rates it is dominated by ordered black strings, but for lower rates it looks more like static.

- Cross-feeding network. A network view of the cross-feeding dependencies between the species. A link connects species A and B if the strings transformed by A have subsequently been digested by B.

- Reproduction rate. This plots the rate at which the agents reproduce. A maximum rate of 1 means that all agents in the population divide every update.

- Ecosystem efficiency. By comparing the energy level of the strings flowing in and out of the system we can get a measure of how efficiently the system makes use of the food strings. The ecosystem efficiency reaches its maximum if all the possible energy has been extracted from the strings.

Two parameters of the system can be controlled by the user: the flow rate of food strings into the system and the mutation rate.