An Artificial Life Program for DOS
Introduction
The study of Artificial Life (or a-life) may conjure images from
Mary Shelley's Frankenstein or an episode of Star Trek, but is
in fact a growing area of serious research.
Artificial Life Online from the Santa Fe Institute (New Mexico) describes the discipline as:
...studying 'natural' life by attempting to recreate biological phenomena from scratch within computers and other 'artificial' media.
It is hoped that the study of this 'synthetic biology' will
result in a better understanding of biological phenomena, as
well as lead to new adaptive techniques in computing, artificial
intelligence and robotics.
Most work in a-life has been directed towards computer simulation. Computer users will already be aware of computer viruses and worms that may be contracted from "infected" disks etc. These (usually) disruptive
'life-forms' do in fact bear more than a passing resemblance to
their biological counterparts, having the ability to 'reproduce'
and spread... and most engender 'disease' symptoms, varying from a
mischievous message, to complete destruction of stored data.
Computer a-life experiments are generally of a less threatening
nature! Areas of research include:
Whether these computer generated 'life-forms' are actually alive
is a matter for philosophical debate; some workers do believe
that they fall within the wider definitions of life, as
prescribed by the a-life discipline. The author prefers to think
of such programs as simulations that behave in a life-like
manner.
Having experimented with some of these programs, the author
became interested in the possibility of producing an a-life
model relevant to medicine; perhaps such a system, once refined,
could actually be of use in clinical decision making, drug
research etc. The result is the freeware program Cybercillin, an early
attempt at a qualitatively accurate simulation.
Program Overview
Cybercillin simulates the growth of a colony of single cell
bacteria in vitro, and the effect of an 'antibiotic' regimen.
Each individual micro-organism is capable of:
- movement
- asexual division (a 3 stage process)
- genetic mutation
- conjugation (sexual reproduction)
- death by natural causes
- death by antibiotic
- antibiotic resistance
It is important to realise that the behaviour of the colony as a
whole is not pre-programmed. Each member of the colony is
allowed to behave independently, as would happen in a biological
situation. Any emergent behaviour of the colony as a whole stems
from an evolutionary process, based on the ideas of :
- mutation
- exchange of genetic material
- natural selection
The program is written for IBM compatible computers running DOS.
It will also run in a DOS box under Windows 95. The higher the processor,
the better (286, 386, 486 etc.) - although the program will run
slowly on an old 8088 XT machine. Memory requirement is 640kb.
Monitor and video card must be able to handle colour text: 50
lines x 80 columns.
The program is packed as a zip file, 140KB in size.
General Details
The program works by keeping track of each individual
micro-organism in the colony. Each has a set of genes that
determine:
- The motility of the micro-organism.
- How often it divides asexually
- Whether it has antibiotic resistance
- Natural lifespan
Genetic variation is achieved by mutation of individual genes
during asexual division, and by conjugation (where two
micro-organisms exchange genetic material). The state of each
micro-organism in the colony is updated 5 times a second, and
represented graphically as an ASCII symbol in a 2-dimensional
bug-world (a grid 80 columns wide by 49 rows deep, surrounded by
an impenetrable boundary). While the colony remains small most
computers are powerful enough to update the display in 'real
time', but as the colony size increases the simulation slows
down (although the elapsed time is still displayed in seconds).
In order to reduce this effect, micro-organism images are not
updated every cycle. A micro-organism is only re-drawn when it :
- moves
- changes state, e.g. begins to divide
- conjugates (image re-drawn every cycle)
In order to achieve large populations, two or more micro-organisms
may occupy the same position in 2-D space; however only one can be
displayed. In consequence, as the screen becomes full, one
micro-organism may be temporarily overdrawn by another.
A penicillin-like antibiotic may be introduced into the colony
as a user-defined regimen. The antibiotic brings about the lysis
of bacteria during asexual division. The antibiotic is denatured
by 'penicillinase' secreted from resistant organisms. In the
absence of antibiotic, the colony will normally develop a few
'penicillinase' emitters by mutation. When antibiotic is
introduced, these micro-organisms are favoured by natural
selection, and the colony rapidly becomes resistant. In
addition, the 'penicillinase' emitter gene is spread by
conjugation. If the dose of antibiotic is sufficiently high,
then even the 'penicillinase' emitters can be destroyed.
The model makes the following assumptions:
- There is an unlimited food source for the micro-organisms.
- There is no build up of waste material that might affect the
development of the colony.
Click here for a detailed description of the model |
Analysis
The program is equipped with two methods for reporting on
population and gene statistics:
- On terminating the simulation, an instant report is given of
gene distribution and total numbers alive and dead.
- Before starting the simulation, an output file may be
enabled. This repeatedly writes to a disk file (at a user
defined interval), a 'snapshot' of gene distribution, population
and antibiotic level. In this way, a complete picture of the
colony over a period of time may be constructed. This file may
be read into most spreadsheet or database software for further
analysis, graphical presentation etc.
Results
The simulation performs very much as expected; bacteria can be
seen to divide, conjugate and die. Although members of the
colony are descended from a single seed, mutation and
conjugation ensure genetic diversity throughout the population.
Perhaps the most striking demonstration is the formation of
antibiotic-resistant colonies (from a non-resistant seed) in
response to poor antibiotic regimen. This can be seen in the following graph drawn from output file data:
As the colony flourishes, a number of antibiotic-resistant bacteria appear;
they will normally be in the minority, provided the mutation
rate has been set to a low value. Once the colony is exposed to
antibiotic, these resistant bacteria will be favoured (i.e. they
are harder to kill) and will form an increasing proportion of
the colony. If the antibiotic dose is too small or too
infrequent, then a large proportion of the colony becomes
resistant and survives the regimen. Any subsequent antibiotic
regimen must be considerably more aggressive in order to destroy
the colony.
The future
This is a crude simulation - population numbers and timescale
bear little relation to a real life situation. A lot of
assumptions have been made about the behaviour of the
micro-organisms; in particular, the gene model has been designed
from a software perspective rather than a biological one! The
program is slow and the bug world is 2 dimensional.
However, even this simple colony simulation behaves in many ways
like its biological counterpart; the formation of an
antibiotic-resistant colony can be clearly demonstrated.
Possible improvements include:
- Better models of micro-organism behaviour
- Better gene models
- A 3-dimensional bug world
- Realistic population numbers
- Real time performance.
In order to improve speed and colony size, future programs will
need to be written in assembly language (this program is written
in MicroSoft Visual Basic for DOS). The display of bacteria
included in this version is purely for dramatic effect, and
actually slows the simulation considerably. Future versions need
only display colony statistics; the bacteria can remain
'invisible'. In time it may be possible to produce accurate
simulations that are actually useful in clinical and research
situations, although it should be noted that bacteria only form
colonies in-vitro and not in-vivo. The program could also be
used as a teaching aid to demonstrate the development of
antibiotic resistance.
Installation, and running the program
Copy file CYCILLIN.ZIP into a suitable directory
on your hard disk, change to that directory and unpack using PKUNZIP etc.
Type CYCILLIN to run the program (or click on file in Windows file
manager etc).
The program generally follows MS Windows conventions. Use a
mouse (or press ALT) to activate menu bar, and read the help
options. Set up your own models using the parameter options -
online help is available. Note that your settings are
automatically saved at program shutdown and are restored when
you next run Cybercillin; the author's default values may be
restored by selecting default from the parameter menu list.
Begin the simulation by selecting Run Colony from the run menu list
(or just CONTROL R). Once the colony has established itself,
begin the antibiotic regimen by pressing F1. Press ESC to
end the simulation. Select exit from the run menu (or CONTROL X)
to quit the program.
Paul Smith BSc BPharm MRPharmS
Kingsclere, Hampshire, United Kingdom
Please send email to: smithoid@geocities.com
The author is a UK registered Pharmacist working in the pharmaceutical industry.
You are visitor (since 21st April 1998)
This page hosted by
Get your own Free Homepage
This page was last updated on 21st April 1998