Thursday, April 25, 2013
Special Bioengineering Seminar
"Analog and Digital Approaches for Programming Living Cells"
Tim Lu, Massachusetts Institute of Technology
Biological computation is important for engineering synthetic systems to perform complex functions. The analog abstraction, where continuous physical signals represent continuous variables, computes by leveraging the inherent mathematical processes of nature. The digital paradigm, where signals are represented as '0s' or '1s', is applicable in situations where high precision or decision making is needed. In electronics, digital is the dominant paradigm since billions of digital transistors can be easily assembled together. Analog circuits are used for other functions, such as low-power computation, power management, and front-end sensors. In contrast with electronics, living cells are resource-constrained environments. Since the digital paradigm requires numerous independent and interconnected parts to achieve its functions, it may be limited by cellular resources. In such situations, the analog paradigm may be used to efficiently encode complex computations. Ultimately, we propose that that both digital and analog strategies, as well as hybrid analog-digital approaches, shall be useful in programming biological systems.
We have developed scalable platforms for both digital and analog computation in living cells. Leveraging recombinases, we have assembled synthetic devices that record stable memory in genomic DNA, carry out digital computation, and perform sequential logic. The complexity of recombinase-based digital circuits can increase exponentially with the library of orthogonal recombinases. In addition, we have created synthetic gene circuits to implement analog functions. With at most three transcription factors, our circuits can compute wide-dynamic-range positive and negative logarithms, addition, subtraction, division, and power laws. The behavior of these circuits can be accurately described by simple mathematical functions, thus enabling the straightforward design of more complex and layered functions.