From Bluetooth to Fruit Flies: My Internship In A Biology Lab

Since working on my third year project in model checking, and reading about its potential applications to systems
biology and other fields, I have been increasingly interested in computational biology. However, up to now I have had
lots of
training in the computational side of things, and almost none in biology. To learn more about biology and get some
research experience, I am currently in my third week of a research internship in a computational biology group in the
Cambridge Systems Biology Centre. I'll write about my project itself in more detail in future posts, but I thought it
might be a good idea to write a post introducing my internship, what I'm doing, and my first impressions.

What is computational biology anyway?

This is a broad question, and computational biology means different things to different people. Ultimately though, it comes
down to the concept of using ideas from computer science in the context of biology. For example, one can apply techniques
from model checking, an area of theoretical computer science developed to study models of computer systems, to study
similar models of biological systems.

In the lab I'm working in, the focus is more on the biology side of things than the computer science, but there is still
a large variety of different approaches to the field, even within one lab. One PhD student's work sounds a lot like the
kind of thing I learned about in a machine learning course last year — she writes programs (most people in the building
seem to use R a lot) which use statistics to develop reliable models of biological systems based on large amounts of
(sometimes simulated) data.

Others spend almost all of their time performing experiments with fruit flies (drosophila). I have learned in my short
time in this lab that the quickest way to excite a geneticist is to mention fruit flies. They are a so-called model
organism: one which has been widely studied and is relatively well understood, which makes it a useful organism to study
for further insights. Geneticists understand the genome of the fruit fly better than that of most organisms, which makes
it suitable for testing new genetic hypotheses. Although my project has nothing to do with drosophila, many members
of my lab study it almost exclusively, and I hear a lot about it. I will write more about this (and related issues)
in a future blog post.

What am I doing?

My project relates to computational modelling of biological systems. You might have heard of cellular automata, and in
particular Conway's Game of Life (another topic which deserves greater mention in a future post). These are simple
models based on grids of cells, which can have states (such as 'dead' or 'alive'), and update their states based on
the states of their neighbouring cells. These simple models have found use in a variety of areas, including modelling
cell system behaviour. (One thing that appeals to me about these models is that they only specify the behaviour of
individual cells, and the behaviour of the system as a whole arises from the interaction of those cells — this feels
more like modelling the 'actual' behaviour of biological systems than modelling the whole system directly would).

In my project I am aiming to develop a modular implementation of such cellular automata models which will run on
microcontrollers (generously donated to my lab by ARM). Each microcontroller will run a program with the rules for a
single cell, and won't know anything about the grid as a whole, only its neighbours with which it shares state
information. This way the system behaviour will develop from truly local behaviour. The 'cells' will communicate via
Bluetooth Low Energy (BLE), and will show their states by flashing LEDs on the boards themselves. Each microcontroller
has a couple of buttons on it, which will be used to specify the rules for each individual cell. That way we can set up
different cellular automata arrays to model different kinds of systems, and even have different kinds of cells
interacting to generate unusual system behaviours.

The ultimate goal of this project is to produce a system which can be used in an educational setting. Computational
biology is a growing field, but most people approach it from one of two directions, and might not necessarily know much
about the 'other' field. These models are simple enough to understand without having studied much biology, but can
demonstrate some of the complex and interesting system behaviours found in biological systems. They will also provide a
tangible and (dare I hope) fun way to start experimenting with computational modelling in biology. Engaging education is
really important in science (I wonder how many people have been turned away from potentially great scientific careers by
boring teachers or lecturers — and conversely an inspiring teacher or lecturer can turn someone's life around), so I
hope that this project will serve a worthy purpose!

Impressions so far

Most of my academic research so far has been in my university's computer science department, and many of my first
impressions from this internship are of the differences from what goes on there. There is more R and matlab, and less python
and haskell. Even though I'm not doing any experiments myself, I am always aware that there are experiments going on
(from overheard conversations, stacks of folded safety equipment, and signs on the bathroom door saying 'lab coats must not be worn in this room'). Finally, while in both environments there are lots of people standing around thinking hard,
the problems they are thinking hard about are fundamentally different: in computer science, the problems we tackle are
almost always, on some level, theoretical. Even fairly applied areas of computer science, to do with application and
implementation, usually involve systems we are designing, or building, or at least that some other human being has
designed or built. Before they're designed, they're just theoretical: how they are designed, and how they work, is down
to computer scientists to decide. In biology, on the other hand, we study systems that already existed before we got
there. We are developing ways to understand, represent, or reason about complex systems developed in nature.

I wonder how my impressions will change between now and the end of my internship!