Monthly Archive for February, 2008

Traffic is a routing problem

2 ideas and then 1 idea:

1. GPS devices need more information about real-time traffic information. The best source for this is other GPSes that are also stuck in traffic. If they could communicate, they could intelligently route traffic to optimally spread traffic over primary and alternate routes. There are products that do this. iPhone and Android would also be excellent candidates.

2. To share this information, they need to be networked. They can form an ad-hoc wifi network when near one another and nodes with internet connections like internet phones and nodes near municipal wifi (which could be embedded into traffic lights?) can act as up/down links to a central database of traffic information.

3. In lieu of available real-time information, devices could sync with the central database by docking. A Bluetooth-enabled GPS could send its daily traffic recordings to your phone, which syncs itself to your computer when you carry it inside to home or work, which communicates this information to the internet. Pattern recognition is applied, and then traffic patterns are downloaded via the same channels to your GPS. It can use the traffic patterns to avoid areas of likely congestion during your route. (And you could cut out the middleman if your phone is your GPS.)

lolscience

I actually had to register for a LiveJournal account today (ack), but it was for a good cause: to post to lolscience.

Cell signaling, computer architecture, functional programming, and AI blackboards

While thinking about synthetic biology, I find it useful to identify analogues of biological systems in a discipline I am already familiar with, computer science. This helps me better understand the new concept and can also raise questions about the new system that already have discussions around them in the CS world. Of course, the fidelity of such metaphors is not 100%, so I have to take care to ground such discourses with actual biology, but it’s been great for brainstorming so far.

Here are a few such metaphors.

Computer Architecture

One challenge in building composable biological systems for effective abstraction hierarchies is cell signaling crosstalk. One issue at play is a possible shortage of signal carriers; if you need ten different processes to occur at the same time and to act orthogonally, you will need ten signal carriers. Much as CPUs have a finite number of registers and data buses have finite width, there are only so many standardized signal carriers that standardized parts currently accept. Certainly, more carriers could be designed, but there may be ways around this. In computer architecture, the register shortage can be addressed by temporarily saving register data into memory, and the bus issue can be addressed with a stateful multiplexing approach. Perhaps stateful biological systems such as the repressilator or a push-on push-off switch have something to offer here.

Functional Programming

The other, more subtle, crosstalk issue is that of unintended side effects. When considering engineered biological devices, there may be side effects outside of the well-characterized and intended inputs and outputs, so the abstractions leak – figuratively and literally. These issues are also present in highly parallel computing environments when a shared resource such as a location in memory is operated upon by many processes. One must take care to ensure that the processes cooperate to ensure that they do not tread upon one another. There are many paradigms for approaching concurrent software, and it is becoming increasingly apparent that a system of threads, locks, and mutexes quickly gets difficult, if not impossible, to keep track of. Interesting discussions of other approaches:

A key element in many of these approaches to concurrency is a lack of shared state and, by association, lack of side effects. Since intracellular signaling systems are inherently parallel, two operations may only be reliably executed in tandem if they have minimal-to-no side effects (or, more realistically, minimal, orthogonal, well-characterized effects). My point here is not to imply that there is a concurrent programming paradigm that can be transferred to synthetic biology to solve the side effect issue. I mean to illustrate that, as we engineer larger systems, it will be crucial to minimize unknown side effects of synthetic biology constructs with high-quality characterization.

I realize that I am first suggesting stateful systems, immediately followed by a call for referential transparency (the property of being without formal side effects), often conflated with statelessness. It’s important to remember that, taken as an abstract concept, referentially transparent (side-effect free) operations can maintain internal state, so long as that state does not leak out of the operation, be it a computation or intracellular signalling pathway.

Also, something on my TODO list is to check out cell-free systems, and consider their applicability to the crosstalk issue:

AI Blackboards

Lastly, it also occurred to me that intracellular signaling systems are similar to the artificial intelligence blackboard architecture and, as such, it could be useful as a thought model. I’ve not pursues this idea very much, although it appears that some folks have made the same connection in the context of modeling: Modelling intracellular signalling networks using behaviour-based systems and the blackboard architecture.