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:

    1. Initialization: Set initial conditions and parameters.

    2. Calculate Propensities: Determine the likelihood of each reaction occurring in a small time interval.

    3. Time Step Selection: Choose the time until the next reaction using an exponential distribution.

    4. Reaction Selection: Select which reaction will occur based on their propensities.

    5. Update: Update the state of the system.

    6. 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 variable ticks which keeps track of the simulation time steps.

turtles-own [energy] patches-own [food]

  • turtles-own [energy]: Each turtle (agent) will have its own energy attribute.

  • patches-own [food]: Each patch (environment unit) will have its own food attribute.

to setup clear-all setup-patches setup-turtles reset-ticks end

  • to setup ... end: Defines the setup 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 global ticks 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 the setup-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 the setup-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 the go 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 the move 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 the eat 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 the reproduce 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 the death procedure.

    • if energy <= 0 [ die ]: Removes the turtle if its energy is zero or less.