1. Recap of Basic Biology
Cells and Their Functions:
Cell Theory: All living organisms are composed of cells. The cell is the basic unit of life, and all cells arise from pre-existing cells.
Cell Types:
Prokaryotic Cells: Lack a nucleus and membrane-bound organelles (e.g., bacteria).
Eukaryotic Cells: Have a nucleus and membrane-bound organelles (e.g., animal and plant cells).
Cell Organelles and Their Functions:
Nucleus: Contains DNA, controls cellular activities.
Mitochondria: Powerhouse of the cell, site of ATP production.
Ribosomes: Protein synthesis.
Endoplasmic Reticulum (ER): Protein and lipid synthesis (Rough ER has ribosomes, Smooth ER does not).
Golgi Apparatus: Modifies, sorts, and packages proteins and lipids.
Lysosomes: Digestive enzymes for breakdown of waste materials.
Cell Membrane: Semi-permeable membrane that controls movement of substances in and out of the cell.
Basic Cellular Processes:
DNA Replication: The process by which a cell duplicates its DNA before division.
Transcription and Translation: The processes of synthesizing RNA from DNA and proteins from RNA.
Cell Division:
Mitosis: Division of a eukaryotic cell’s nucleus into two genetically identical nuclei.
Meiosis: Division that reduces the chromosome number by half, creating four haploid cells.
2. Stochastic Simulations and Applications in Biology
Introduction to Stochastic Processes:
Definition: Processes that involve randomness and can be analyzed statistically but not precisely predicted.
Examples in Biology: Gene expression, molecular interactions, population dynamics.
Applications in Biology:
Gene Expression: Random fluctuations in the number of RNA and protein molecules produced by a gene.
Enzyme Kinetics: Variability in the interaction rates between enzymes and substrates.
Population Dynamics: Random events influencing birth, death, and migration rates in populations.
Example of Stochastic Simulation: Gillespie Algorithm
Purpose: Simulate the time evolution of a set of chemical reactions in a well-mixed system.
Algorithm Steps:
Initialization: Set initial conditions and parameters.
Calculate Propensities: Determine the likelihood of each reaction occurring in a small time interval.
Time Step Selection: Choose the time until the next reaction using an exponential distribution.
Reaction Selection: Select which reaction will occur based on their propensities.
Update: Update the state of the system.
Iteration: Repeat steps 2-5 until the desired simulation time is reached.
3. Agent-Based Modeling
Introduction to Agent-Based Modeling (ABM):
Definition: A class of computational models for simulating the interactions of agents (individual entities) to assess their effects on the system as a whole.
Agents: Autonomous entities with defined behavior and state, which interact with each other and their environment.
Applications in Biology:
Epidemiology: Modeling the spread of infectious diseases.
Ecology: Simulating interactions within ecosystems.
Cell Biology: Investigating the behavior of cells within a tissue.
Key Components of ABM:
Agents: Defined with specific behaviors and states.
Environment: The space in which agents interact.
Rules: Governing how agents interact with each other and the environment.
4. NetLogo for Modeling
Introduction to NetLogo:
Purpose: A programmable modeling environment for simulating natural and social phenomena.
Features: Simple syntax, built-in functions, and an interactive interface.
The button below will take you to the code for the NetLogo model.
An image of the NetLogo Model.
NetLogo Agent-Based Model
Setup the Environment:
NetLogo
Copy code
globals [ticks]
globals [ticks]
: Defines a global variableticks
which keeps track of the simulation time steps.
turtles-own [energy] patches-own [food]
turtles-own [energy]
: Each turtle (agent) will have its ownenergy
attribute.patches-own [food]
: Each patch (environment unit) will have its ownfood
attribute.
to setup clear-all setup-patches setup-turtles reset-ticks end
to setup ... end
: Defines thesetup
procedure.clear-all
: Resets the simulation environment.setup-patches
: Calls the procedure to initialize patches.setup-turtles
: Calls the procedure to initialize turtles.reset-ticks
: Resets the globalticks
variable to zero.
to setup-patches ask patches [ set food random 10 set pcolor scale-color green food 0 10 ] end
to setup-patches ... end
: Defines thesetup-patches
procedure.ask patches [...]
: Iterates over all patches.set food random 10
: Assigns a random amount of food (0-9) to each patch.set pcolor scale-color green food 0 10
: Colors the patch based on the food amount, with a gradient from no food (color=0) to maximum food (color=10).
to setup-turtles create-turtles 100 [ setxy random-xcor random-ycor set energy random 10 set color blue ] end
to setup-turtles ... end
: Defines thesetup-turtles
procedure.create-turtles 100 [...]
: Creates 100 turtles.setxy random-xcor random-ycor
: Places each turtle at a random position.set energy random 10
: Assigns a random energy value (0-9) to each turtle.set color blue
: Sets the turtle's color to blue.
Define Agent Behavior:
to go ask turtles [ move eat reproduce death ] tick end
to go ... end
: Defines thego
procedure, which runs each simulation step.ask turtles [...]
: Commands all turtles to perform their behaviors in each step.move
,eat
,reproduce
,death
: Calls the respective procedures for each turtle.
tick
: Advances the simulation time by one step.
to move rt random 360 fd 1 set energy energy - 1 end
to move ... end
: Defines themove
procedure.rt random 360
: Rotates the turtle a random amount (0-359 degrees).fd 1
: Moves the turtle forward by one step.set energy energy - 1
: Decreases the turtle's energy by one.
to eat ask patch-here [ if food > 0 [ set food food - 1 set pcolor scale-color green food 0 10 ask myself [ set energy energy + 5 ] ] ] end
to eat ... end
: Defines theeat
procedure.ask patch-here [...]
: Asks the patch under the turtle.if food > 0 [...]
: Checks if there is food available.set food food - 1
: Decreases the food amount by one.set pcolor scale-color green food 0 10
: Updates the patch color based on the new food amount.ask myself [ set energy energy + 5 ]
: Increases the turtle's energy by five.
to reproduce if energy > 20 [ set energy energy / 2 hatch 1 [ set energy energy / 2 ] ] end
to reproduce ... end
: Defines thereproduce
procedure.if energy > 20 [...]
: Checks if the turtle's energy is greater than 20.set energy energy / 2
: Halves the turtle's energy.hatch 1 [ set energy energy / 2 ]
: Creates a new turtle with half the parent's energy.
to death if energy <= 0 [ die ] end
to death ... end
: Defines thedeath
procedure.if energy <= 0 [ die ]
: Removes the turtle if its energy is zero or less.