This page contains an applet which illustrates the dynamics of the
artificial life system Urdar. Below the applet, you can find a tutorial and a
description of the system. In order to run the applet you need to have Java Runtime Environment installed.
The source code of the full model and documentation can be downloaded here.
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.
(iv) The reproduction probability P is an increasing
function defined by:
- 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
- (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.
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
3. With probability mu the offspring will be mutated uniformly to
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
- 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
- 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.