I first came across heterocysts in an undergraduate lecture, where they appeared in a paragraph about nitrogen metabolism. It was shortly before my finals, so I wasn't able to investigate further until after the exams were over. I was intrigued by the division of labour between cells in the filament, which was analogous to a multicellular organism. The patterning of heterocysts along the filament also reminded me of cellular automata and seemed to provide the simplest model for developmental biology.
After my exams, I created a simple mathematical model of a filament of cells containing heterocysts, and later, my first full scale cell simulation. Despite its limitations, it is still the most sophisticated evolution simulation that I've created. It's also different from my previous simulations of evolution in that the function of the enzymes and their rate is immutable; instead evolution works only by altering the amount of each enzyme in the cell. This is achieved by changing the rate of enzyme degradation, the promoter regions of genes and the activity of transcription factors. Evolution therefore works on the regulation of enzymes rather than the enzymes themselves.
It has been suggested that non-coding DNA accounts for more differences between organisms that coding DNA and in this simulation I hoped to explore that idea.