Friday, October 21, 2016

Why do we measure biological computations?

If you're making a biological computer, what do you need to know about its parts? That's one of the questions I'm working on as I lead the effort to organize measurement in the Living Computing Project.  One of the things that's coolest for me about this project, funded by the National Science Foundation, is that it's being funded by the computer science folks there, and so we get to really focus on questions about the fundamentals of computing with biology.  And so I've been asking this question: what is it that I actually need to know, if I want to build a computer using the DNA of a living cell?

It is very easy, in every science, not just biology, to get seduced into performing the experiments that are easy to perform and gathering the data that is easy to record from your instruments. Unfortunately, however, the numbers that you obtain this way often turn out to not be the numbers that you really need, the ones that can actually give you insight into your system and let you build upon it.

Fundamentally, measurement is a matter not of numbers but of communication. Measurements are only meaningful when they are consumed by something that makes use of those measurements.  In many scientific experiments, the only thing that you are trying to communicate is your judgement that a particular hypothesis appears to be reasonably sound (look at all those modifying adjectives!), and there's lots of different ways to do that.  When we want to build something, however, we need the parts that we are building it out of to communicate signals and numbers that enable us to understand what will happen when we use them together.  Like the way that labelling something an 8mm nut communicates that it will mesh with the threads of an 8mm screw, even though that is only one of its many dimensions, and the way the shape of a USB plug tells you everything you need to know about whether its electrical and computational characteristics will be compatible with a given socket. This communication doesn't need to be perfect, just good enough to let us decide whether to use them this way or that way, not to mention whether our project is even reasonable to consider.

So I've been looking at how we are building things, the way people talk about them, how they sketch them and what they struggle with, and I've been writing down my ideas, bit by bit, of a general workflow for building biological computations.  Not just analog or digital, not just about chemical messages or memory, but about specifying how we want to manipulate information, in whatever form and with whatever tools.  What I've got right now is very simple, but also I find that it is causing me to ask apparently simple questions to which we do not know the answer, like "How do you compare the complexity of a computation to the capabilities of a library of biological regulatory devices?" and when that sort of thing happens, my experience is that the answers may be scientifically exciting.

No comments: