CS 420/527 — Biologically Inspired Computation
NetLogo Simulation

Slime Stream


This page was automatically generated by NetLogo 4.1. Questions, problems? Contact feedback@ccl.northwestern.edu.

The applet requires Java 5 or higher. Java must be enabled in your browser settings. Mac users must have Mac OS X 10.4 or higher. Windows and Linux users may obtain the latest Java from Sun's Java site. If the display appear cut off with Firefox, then try another browser (Safari works).



powered by NetLogo

view/download model file: SlimeStream.nlogo

WHAT IS IT?

This program simulates the streaming aggregation of the cellular slime mold
Dictyostelium discoideum. When Dictyostelium amoebae are starved on an
agar surface they begin to aggregate, forming complex spatial patterns as
they do so. Aggregation leads to the formation of a multicellular organism,
called a slug, consisting of about 10,000 to 100,000 cells, that can move
about on the substrate for some time. Eventually, the slug develops into a
fruiting body, a spherical stalk with a cap on top that contains spores.
Under the appropriate conditions the spores can be released and germinate,
thus completing the cycle.


HOW IT WORKS

The amoebae coordinate their movement by secreting cyclic adenosine
monophosphate (cAMP) and by moving up the resulting cAMP gradient. More
specifically, the aggregating cells follow this set of behavioral rules:

- if a cell senses a concentration of cAMP above the movement threshold,
it aligns itself with the cAMP gradient and takes 1/2 step towards
the highest cAMP concentration

- if a cell senses a concentration of cAMP above the relay threshold
(which is believed to be higher than the movement threshold), the
cell (after moving) emits 100 units of cAMP and enters a "refractory"
state for a specified number of time steps

- cells that are in the refractory state are insensitive to cAMP, thereby
disabling chemotactic movement and cAMP secretion; instead, these cells
gradually break down the cAMP in their locality, by means of an enzyme
called phosphodiesterase

In reality, the cAMP waves move several times faster than the slime mold
cells; THIS PROGRAM EXAGGERATES THE SLIME MOLDS' MOVEMENT in order to
illustrate the streaming aggregation. A separate program disables cell
motion to illustrate the cAMP waves more clearly.

The model also includes an autonomous cell in the center of the screen
that releases cAMP at regular intervals, regardless of the chemical
concentration there. These autonomous cells have been observed
experimentally. With each time step, patches share 50% of their cAMP
content with the eight neighboring patches.


HOW TO USE IT

The SETUP button creates a random distribution of slime mold cells and prints
a color key in the command window.

The GO button sets the model in motion according to the rules outlined above.

The DENSITY slider specifies the initial density of slime mold cells; if
the density is too high given the size of the screen, an error message will
appear in the command center when executing setup.

The PERIOD slider controls the length of the refractory period; this is also
the number of time steps between cAMP releases by the autonomous cell in
the center of the screen.

The MOV_THRESHOLD and REL_THRESHOLD sliders denote the concentration of
cAMP required for movement and relay response, respectively.

The FIELD DISP ON and FIELD DISP OFF buttons turn on/off display of the cAMP
field. The chemical concentration is displayed as shades of green (from white
= highest concentration to black = lowest).

The START MOVIE and STOP MOVIE buttons start and stop the recording of a QuickTime
move of the simulation. The movie is left in a file name "sim-movie.mov"
in the same directory as the simulation.


THINGS TO NOTICE

The streaming patterns develop gradually and consistently, but can are
affected by changes in the slider variables. "Period" must be high enough
to allow cAMP waves to remain distinct as they propogate from the center;
otherwise, waves can intermingle in areas of irregular density to create
self-feeding spirals that serve as new aggregation centers. Also,
modification of the thresholds can result in slightly different patterns.
The model is generally less sensitive to changes in density.


THINGS TO TRY

Experiment with the thresholds to see how they affect the streams and the rate of aggregation.


EXTENDING THE MODEL

The slime mold amoebae end up on top of one another. Some device could be used to indicate how many amoebae are occupying each patch.


NETLOGO FEATURES

This section could point out any especially interesting or unusual features of NetLogo that the model makes use of, particularly in the Procedures tab. It might also point out places where workarounds were needed because of missing features.


RELATED MODELS

See Slime in the Biology models for a model of a different aspect of slime mold aggregation.


CREDITS AND REFERENCES

Original program for StarLogo 2 by Steve Camazine. Modified to run on NetLogo and to show chemical field and allow movie recording by B.J. MacLennan 2003, 2006, 2008.


PROCEDURES

globals [time ; number of time steps
showfield?
; show chemical field
recording-movie]
patches-own [chemical] ; level of cAMP in patch
turtles-own [refractory ; remaining time in refractory state
max_chemical]
; maximum chemical value among neighboring patches
TO SETUP ;-----------------------------------------------------------------------------------------
ca ; clears display, patches, turtles, and commands
set time 0 ; resets chemical, number, and time to zero
set showfield? false
set recording-movie false
ask patches [set chemical 0]

ask patches [
if ((random 100) < density) and ((world-width - abs pxcor) > 1) and ((world-height - abs pycor) > 1)
[
sprout 1 ; "density" percent of patches are selected at
[
set color white ; random; they create turtles and color them white
; set shape "amoeba"
set shape "circle"
set heading random 360]] ; and turn them in a random direction
]
ask turtles [set refractory 0]

ask patch 0 0 [set chemical 100]

end
TO GO ;--------------------------------------------------------------------------------------------
if (time mod period) = 0 ; every "period" time steps, 100 units of chemical
[
ask patch 0 0 [set chemical 100 + chemical] ] ; are added to the central patch
set time time + 1 ; increments time
diffuse chemical 0.5 ; each patch shares 50% of chemical w/ 8 neighbors
if showfield? [ ; if displaying chemical field, scale color
ask patches [
set pcolor scale-color green chemical 0 300 ]
]

ask turtles [
ifelse refractory = 0
[
if (chemical > mov_threshold) ; receptive amoebae with chemical greater than
[
face max-one-of (patches in-radius 2) [chemical] ; mov_threshold move up the chemical gradient
fd 0.5] ; and move forward 1/2 step
ifelse (chemical > rel_threshold) ; receptive amoebae with chemical greater than
[
set color red ; rel_threshold turn red, become refractory, and
set refractory period ; relay 100 units of chemical
set chemical chemical + 100]
[
set color white]] ; receptive amoebae that aren't relaying turn white
[
set refractory refractory - 1 ; refractory amoebae decrement "refractory",
set color yellow ; decrement chemical, and are colored yellow
set chemical max list 0 (chemical - int (100 / period + 1))]
]

if recording-movie [movie-grab-view]

end
TO showon
set showfield? true
end
TO showoff
set showfield? false
ask patches [ set pcolor black ]
end

Return to CS 420/527 home page

Return to MacLennan's home page

Send mail to Bruce MacLennan / MacLennan@utk.edu

Valid HTML 4.01!This page is web.eecs.utk.edu/~mclennan/Classes/420/NetLogo/SlimeStream.html
Last updated: 2010-09-16.