Stochastic Simulation of Interacting Motor Proteins
Inside every cell, tiny proteins carry cargo along fibres, even though each step they take is random. We simulated how this works, checked the simulation against theory, and looked at what happens when the proteins start getting in each other's way.
- Group of 3, with Andrine Holen and Emily Ann Mercer. We each worked through every task, compared approaches and results, and then split the final write-up.
- Mar 2026
- Completed
- A
- Python · NumPy · SciPy · matplotlib
Problem
Each step a motor protein takes is random, yet together they produce directed transport. A standard model: particles that switch between a flat potential and an asymmetric sawtooth potential, a flashing ratchet. In a real cell they also compete for space and block each other.
Technical skills
- Monte Carlo simulation of random walks
- Statistical physics: Boltzmann distribution and diffusion
- Modelling interacting particles with periodic boundary conditions
- Comparing simulations with analytical results (error functions, numerical integration with SciPy)
- Parameter sweeps and data visualisation with NumPy and matplotlib
- Handling numerical overflow in exponentials
Approach
Random walk with physics
Step probabilities follow the Boltzmann distribution of the potential.
Hard-core interactions
Particles cannot overlap, so they block each other.
Flashing ratchet
Switch the potential on and off and measure the net particle current.
Validate against theory
Compare simulated currents with an analytical formula, and find where it stops being valid.
Results


The full notebook with all simulations and plots is on GitHub.