For my lab project this year I made a computer model of a biological process.
The organism I was looking at was budding yeast - also known as baker's, or brewer's yeast. It's a type of single celled fungus that's super useful in the kitchen, and is used a lot by biologists for finding out more about the things that happen in cells. Yeast cells sometimes need to recycle the proteins on their outer membrane.
First, a little pit appears in the membrane where the protein (depicted in pink) is.
Then, the pit elongates into a tube shape.
From the end of the tube, a round compartment buds off.
The compartment travels into the cell, where its contents are sorted.
I was looking at the elongation step of this process. My simulation calculates the length of the tube over time.
I wrote it in Python, and I'm releasing it freely under GPL. It consists of four core programs:
- main.py - the central program (I made an extra version that runs several times - repeatedmain.py)
- classes.py - this module contains descriptions of all the agents in my model
- parameters.py - this contains all the constants, like the temperature
- functions.py - this contains all the functions called by main.py
I also made four graphics programs that use the data output:
- graphs.py - requires the PyX module
- images.py - requires the PyX module
- animation.sh - a bash script that requires the ImageMagick suite of programs
- newimages.py - requires PyGame
You can vary lots of the parameters and see what effect they have on the results. The results my simulation gives out aren't very close to what really happens in cells. I was looking at only a few of the proteins involved, but in reality there are dozens. Hopefully the next student who builds on my code will bring it a little further towards the real world.
If you want more information, I have some PDFs of my final reports. For a brief overview, here's the presentation I gave last week. For a less brief overview, here's my written report (figures here). Woo, science!
A big thank you to my supervisor, Rhoda and my co-supervisor Kathryn.