CS 420/527 — Biologically Inspired Computation
NetLogo Simulation


This page was automatically generated by NetLogo 5.0beta2. 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


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.


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:

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.


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.


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.


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


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.


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.


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


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.


globals [time                                     ; number of time steps
         showfield?                               ; show chemical field
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]


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]


TO showon
  set showfield? true

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

Return to COSC 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: 2012-02-02.