8.5. Lotka-Volterra in a Torus¶

8.5.1. Lotka Volterra System Description¶
This tutorial uses the Lotka-Volterra oscillating system to demonstrate a simple but dynamic CellBlender model. This model can also be used to show the difference between a diffusion-limited reaction and a “physiologic” reaction.
The Lotka-Volterra system is also known as a “predator-prey” system and that’s the terminology that we’ll be using in this tutorial.
The “prey” represents a species whose population grows exponentially when not constrained. In our CellBlender model we can represent this “reproductive” behavior with the simple reaction:
prey -> prey + prey
The “predator” represents a species whose population grows by consuming prey. In our CellBlender model, we can represent this “predatory” behavior with the simple reaction:
predator + prey -> predator + predator
Finally, with those equations alone there would be no end to the predators, so we can represent a predator “death” behavior with this reaction:
predator -> NULL
The rest of this tutorial will guide you through the process of:
Constructing an “arena” for the system
Defining the molecules to represent the predators and prey
Defining the reactions between the predators and the prey
Visualizing the result
Plotting the populations over time
Experimenting with System Parameters to observe different behaviors
8.5.2. Specifications of the Model¶
For those familiar with building CellBlender models, here’s the short-hand version:
Geometry:
Torus Feature
Setting
Name
arena
Major Segments
20
Minor Segments
10
Major Radius
0.1
Minor Radius
0.03
Transparency
Yes
Alpha
0.3
Molecules:
Species Name
Diffusion Constant
Initial Release in Arena
Glyph
Color
Size
prey
6e-6
1000 in prey_rel
Cube
Green
0.2
predator
6e-6
1000 in predator_rel
Octahedron
Red
0.3
Reactions:
Reactants
Products
Forward Rate
prey
prey + prey
129e3
predator + prey
predator + predator
1e8
predator
NULL
130e3
Plots:
Count Type
Molecule
Location
Molecule
prey
World
Molecule
predator
World
8.5.3. Step by step instructions for building the model¶
Note
This tutorial was generated with Blender 2.74 and CellBlender 1.0.
Fonts and colors used below:
Descriptive Text(click these with mouse)(click these with mouse)K eyboard keys and typing (type these characters)
8.5.3.1. Reset Blender and initialize CellBlender.¶
Select All Objects (camera, light, cube) with a a (until everything is highlighted)
Delete All Selected Objects (camera, light, cube) with: x
to close window
Cell Modeling: CellBlender
(Check the box to enable CellBlender)to close window
Click
Tab (on left side of window)(should show CellBlender Panel and Buttons)
Enlarge the CellBlender panel (make it wider and taller so all buttons show)
CellBlender Panel:
(Open the CellBlender “Preferences” Panel)- (find MCell binary - depends on where MCell was installed)
Example: /home/user/mcell/bin/mcell
Click
to select it (this closes the file navigation window)to close window
/home/user/mcell/models/lv.blend
8.5.3.2. This section constructs a semi-transparent torus named “arena” to contain our model.¶
Drag the divider below the CellBlender panel to about 1/2 the window height to make room for other tools below it.
Drag the divider on the right side of the 3D view to the left a bit to make room for all of the Property Buttons.
In 3D View menu:
(ensures that objects are placed at the origin)In 3D View menu:
(look for “Add Torus” settings in lower half of left panel).Use the mouse wheel to zoom in to get a better view of the new Torus object.
In the lower left panel, leave the Location and Rotation settings at all zeros.
Change the “Major Segments” of the Torus to 20 followed by Enter.
Change the “Minor Segments” of the Torus to 10 followed by Enter.
Change the “Major Radius” of the Torus to 0.1 followed by Enter.
Change the “Minor Radius” of the Torus to 0.03 followed by Enter.
Use the mouse wheel to zoom in again until the Torus object fills the 3D View.
Double-Click the word
in the Outliner to select it for editing (upper right panel).Type the new name for the torus to be arena followed by Enter.
Open the
panel by clicking the small orange cube (upper right).Check
the “Transparency” box to enable the transparency feature for the arena objectOpen the
panel by clicking the small round icon button (to right of triangle mesh).Click the
button to create a new material for the arena.Check
the “Transparency” box to enable transparency for this materialClick the 0.3 followed by Enter to make the “arena” semi-transparent.
button and typeDrag the divider below the CellBlender panel down toward the bottom to make more room for the CellBlender panels we’ll use to define the rest of the model.
8.5.3.3. Blender objects must be “Model Objects” to be seen by MCell. Add the “arena” to MCell’s Model Objects.¶
CellBlender Panel:
Be sure the newly created “arena” is selected (should show “arena” near coordinate axis in lower left). Right-click the arena itself or left-click its name in the Outliner as needed.
Click the
button next to “Model Objects”.The “arena” should be in the Model Objects box with a green check mark.
8.5.3.4. This section defines the molecule types (or “species”) we’ll need for our model.¶
Species
Type of Molecule and Diffusion Constant
prey
Volume Molecule with diffusion constant of 6e-6
predator
Volume Molecule with diffusion constant of 6e-6
CellBlender Panel:
Define a new Molecule Species with:
Change the “Molecule Name” to prey followed by Enter
Change the “Molecule Type” to
if needed (should be the default)Change the “Diffusion Constant” to 6e-6 followed by Enter
Add a second Molecule Species with:
Change the “Molecule Name” to predator followed by Enter
Change the “Molecule Type” to
if needed (should be the default)Change the “Diffusion Constant” to 6e-6 followed by Enter
8.5.3.5. This section creates sites to release actual molecules into the model.¶
Release Site
Number of each Molecule Species to release in Location
prey_rel
Releases 1000 “prey” molecules in the “arena” object
predator_rel
Releases 1000 “predator” molecules in the “arena” object
CellBlender Panel:
Define a new Molecule Placement Site with:
Change the “Site Name” to prey_rel followed by Enter
Select the “prey” molecule with
Set the “Release Shape” to
In the Object/Region box, type: arena followed by Enter
Set the “Quantity to Release” to 1000 followed by Enter
Define a second Molecule Placement Site with:
Change the “Site Name” to predator_rel followed by Enter
Select the “predator” molecule with
Set the “Release Shape” to
In the Object/Region box, type: arena followed by Enter
Set the “Quantity to Release” to 1000 followed by Enter
8.5.3.6. This model may run slow, so we’ll only run it for 100 iterations while building our model.¶
CellBlender Panel:
Set the “Iterations” to 100
Start the simulation:
Wait for the simulation to complete running.
CellBlender Panel:
Click in the Timeline and drag right and left to see molecule motion.
Click and hold mouse wheel while dragging in 3D window to change viewing angle.
8.5.3.7. The default molecules are too large for this model. Let’s change their size, color, and glyph.¶
CellBlender Panel:
Select the “prey” molecules:
Open the
panel (within the “Molecules” panel)Change the Molecule glyph from
toChange the Molecule color (
) to a bright green.Change the scale to 0.2 followed by Enter.
Select the “predator” molecules:
Change the Molecule glyph from
toChange the Molecule color (
) to a bright red.Change the scale to 0.3 followed by Enter.
Again experiment with zooming, changing viewing angle, and moving in time.
8.5.3.8. Define the Reactions for the Lotka-Volterra Predator/Prey model:¶
Reactants -> Products
Description and Forward Reaction Rate
prey -> prey + prey
Simulates breeding of prey at rate = 129,000 or 129e3
prey + predator -> predator + predator
Simulates predation at rate = 100,000,000 or 1e8
predator -> NULL
Simulates natural predator death at rate = 130,000 or 130e3
CellBlender Panel:
Create the Prey Breeding Reaction with:
In the Reactants box type: prey followed by Enter
In the Products box type: prey + prey followed by Enter
Set the “Forward Rate” to 129e3 followed by Enter
Create the Predation Reaction with:
In the Reactants box type: prey + predator followed by Enter
In the Products box type: predator + predator followed by Enter
Set the “Forward Rate” to 1e8 followed by Enter
Create the Predator Death Reaction with:
In the Reactants box type: predator followed by Enter
In the Products box type: NULL followed by Enter
Set the “Forward Rate” to 130e3 followed by Enter
8.5.3.9. Test the system with another short run:¶
CellBlender Panel:
Start the simulation:
Wait for the simulation to complete running.
CellBlender Panel:
Click in the Timeline and drag right and left to see molecule motion and reactions.
8.5.3.10. Set up the items to be plotted in the final run:¶
CellBlender Panel:
Define two Molecules to track by pressing “+” 2 times:
Click on the first “Name error:” and change the Molecule to
Click on the second “Name error:” and change the Molecule to
8.5.3.11. Make the final run:¶
CellBlender Panel:
Set the “Iterations” to 1200 followed by Enter
Start the simulation:
Wait for the simulation to complete running. This may take some time.
CellBlender Panel:
(Timeline should show 0 to 1200).Use the “VCR” controls to “rewind” and “play” the simulation. Watch for oscillations of predator and prey populations. Stop when done.
8.5.3.12. Plot the Predator/Prey populations over time:¶
CellBlender Panel:
Set the Page/Plot selector to:
Check
the “Molecule Colors” box to use the molecule colors for the plot.Click one of the
available on your machine.Expand the plot window to determine which population “leads” the other.
8.5.4. Diffusion-Limited / Physiologic Reactions¶
Try experimenting with the system by changing these values:
System Parameters:
Parameter Name
Current Value
New Value
Prey Birth Rate (Reactions)
129,000
8.6e6
Predation Rate (Reactions)
1e8
1e12
Predator Death Rate (Reactions)
130,000
5e6
Interaction Radius (Run/Adv)
(blank)
0.003
Time Step (Run)
1e-6
1e-8