As part of our outreach efforts, we have developed a series of biophysical simulations incorporated into an undergraduate general education course called “The Physics of Life”. This course combines live writing of biophysical simulations with discussion of the basic processes and principles of biological physics. The codes are written to be run in Matlab. The goal of these simulations is to teach undergraduate students how to write code, and also to demonstrate key aspects of biophysics that were discussed as part of the course. Let me know if you have any questions or comments, boedicke@usc.edu. Thanks to several others that gave inspiration for these coding exercises and in some cases provided initial codes that were incorporated into this course: Rob Phillips, Hernan Garcia, and Justin Bois.

These codes are listed in the order presented during the course. The early codes are simple and short and the codes get longer and more sophisticated towards the end of the course. You can find all the codes here: codes.

Simply download the .m files and open them in Matlab, or cut and paste the text of the codes into a Matlab editor window. They are ready to run! Some codes suggest changing a parameter and rerunning the code a few times to explore how key parameters change the outcomes.

The codes:

C1. Random walk: This code simulates a one-dimensional random walk.

C2. Euler method for cell growth: This code introduces the Euler method to simulate a system following a differential equation, in this case the growth equation dN/dt = rN.

C3. Dynamics of blood clotting: This code uses a simplified model of blood clotting to demonstrate the concept of dynamic steady-states. The code is based on the paper: Modular chemical mechanism predicts spatiotemporaldynamics of initiation in the complex networkof hemostasis by Kastrup, Runyon, Shen, and Ismagilov.

C4. Michaelis-Menten dynamics: This code uses the Euler method to simulate an enzymatic reaction.

C5. Carboxysome partitioning: This code simulates the consequences of random carboxysome partitioning during cell division. The code is related to the paper: Spatially ordered dynamics of the bacterial carbon fixation machinery by Savage, Afonso, Chen, and Silver.

C6. Cytoskeleton: This code simulates the growth of a cytoskeletal filament, demonstrating the concept of dynamics equilibrium and noise in biological systems.

C7. Stochastic producton: This code simulates the stochastic production and degradation of mRNA molecules in a cell.

C8. Infection model: This code simulates the spread of an infection disease through a population.

C9. Percolating forest fire: This code simulates the spread of a fire through a forest. By changing the density of trees in the forest the concept of percolation and criticality is demonstrated.

C10. Neural network: This code creates a simple Hopfield network and demonstrates the dynamic behavior of such systems.

C11. Fire flies: This code demonstrates how a population of fireflies can synchronize their blinking pattern. The code is related to the paper: Synchronization of pulse-coupled biological oscillator by Mirollo and Strogatz.

C12. Cell signaling and pattern formation: This code uses the Euler method to simulate the response of a population of bacteria engineered to form a bulls-eye pattern. The code is based on the paper: A synthetic multicellular system for programmed pattern formation by Basu, Gerchman, Collins, Arnold, and Weiss.

C13. Genetic oscillator: This code simulates oscillations in gene expression of for a genetic circuit controlled by repressor and activator transcription factors.

Contact

Boedicker Lab

Department of Physics
University of Southern California

James Boedicker

Associate Professor of Physics and the Biological Sciences
Office: SSC 223, Lab: SSC 212