Topic outline

  • CHEM-LV03 (2022) is an introductory course on the analysis and simulation of stochastic reaction-diffusion systems. 

    We introduce the basic principles and the computational tools for the stochastic simulation of chemical reactions and diffusions described using jump processes and stochastic differential equations. For the analysis, we introduce the stochastic simulation algorithm, the chemical master equation, the chemical Fokker-Planck equation, and the chemical Langevin equation. 

    We assume only basic understanding of differential equations. No knowledge of advanced probability theory,  stochastic analysis, or computer programming is expected.

    Schedule: We meet once per week, in the morning for lectures (3h, 9-12) and in the afternoon for exercises (3h, 13-16)

    • Week 1 (Week 25 - Thursday, June 23)
    1. Theory: Stochastic simulation of elementary reactions (e.g., degradation, degradation and generation, dimerisation, higher-order reactions, ...)
    2. Exercises: Computer implementation of simulation algorithms for elementary reactions
    • Week 2 (Week 26 - Thursday, June 30)
    1. Theory: Chemical master equations of elementary reactions
    2. Exercises: Computer implementation and solution of those master equations
    • Week 3 (Week 27 - Thursday, July 07)
    1. Theory: Analysis of a few interesting systems (e.g., stochastic bistability, resonance, ...) and comparison between deterministic and stochastic representations
    2. Exercises: Computer implementation of simulation algorithms for interesting systems (e.g., enzyme kinetics, ...)
    • Week 4 (Week 31 - Friday, August 05)
    1.  Theory: Brownian motion and stochastic differential equations. Examples of stochastic differential equations for a selection of interesting systems
    2.  Exercises: Computer simulation of stochastic differential equations for selected examples
    • Week 5 (Week 32, Friday, August 12)
    1.  Theory: The Fokker-Planck equation and the chemical Fokker-Planck and Langevin equations.
    2.  Exercises: Revision of previous exercises and fix-my-code fest
    • Week 6 (Week 33, Friday, August 19)
    1. Theory: Diffusion (and diffusion-reaction) models using stochastic differential equations and subvolume approximations.
    2. Exercises: Practical computer implementation and solution of (reactive-) diffusive systems

    Learning outcomes: Stochastic simulation of elementary reactions; Chemical master equations; Brownian motion and stochastic differential equations; Chemical Fokker-Planck and Langevin equations.

    Assessment criteria and grading scale: To pass  the course you must return the solution to all the exercises (80%) and participate (20%) to the course activities. The grading scale is 0-5.

    • (red) Radek Erban and Jonathan Chapman, Stochastic Modelling of Reaction-Diffusion Processes, Cambridge University Press, 2020.
    • (blue) Darren J. Wilkinson, Stochastic Modelling for Systems Biology, 3rd edition, Chapman & Hall/CRC, 2018. 
    • (yellow) David F. Anderson and Thomas G. Kurtz, Stochastic Analysis of Biochemical Systems, Springer, 2015.

      • [00] - Reaction networks (Last update June 26)
      • [01] - Degradation (Last update June 26)
      • [02] - Degradation and production (Last updated June 29)
      • [03] - Reaction networks (Last update June 29) 
      • [04] - Dimerisation plus production (Last update June 30)
      • [05] - Reaction networks (Last update July 12)
      • [06] - From Poissonian to diffusion processes
      • [07] - Stochastic differential equations and Fokker-Planck equation
      • [08] - Models of molecular diffusion
      • [09] - Stochastic reaction-diffusion and advection-diffusion-reaction

  • Exercise problems 

    Exercise problems will be posted on this page. For each exercise, you will be given a .pdf file and a Jupyter notebook template. The problems typically involve Julia programming, and there is a tutorial about Jupyter notebooks and Julia uploaded on this page. Your summited solution can be in any programming language, and should be either one .ipynb file or one .pdf file. In either case, you must embed all your code.

    Using Julia/Jupyter remotely on Aalto JupyterHub

    • go to
    • log in with your Aalto credentials
    • choose a server (ex. Julia: General use)
    • store your exercises
    • open your Exercise X - Jupyter Notebook.ipynb file and start editing until you are done, save changes with Control + S
    • click Kernel > Restart and Run all and check that the output looks as desired 
    • submit your exercise to MyCourses