title: Writing and compiling code into biochemistry.
abstract: This paper presents a methodology for translating iterative arithmetic computation, specified as high-level programming constructs, into biochemical reactions. From an input/output specification, we generate biochemical reactions that produce output quantities of proteins as a function of input quantities performing operations such as addition, subtraction, and scalar multiplication. Iterative constructs such as "while" loops and "for" loops are implemented by transferring quantities between protein types, based on a clocking mechanism. Synthesis first is performed at a conceptual level, in terms of abstract biochemical reactions - a task analogous to high-level program compilation. Then the results are mapped onto specific biochemical reactions selected from libraries - a task analogous to machine language compilation. We demonstrate our approach through the compilation of a variety of standard iterative functions: multiplication, exponentiation, discrete logarithms, raising to a power, and linear transforms on time series. The designs are validated through transient stochastic simulation of the chemical kinetics. We are exploring DNA-based computation via strand displacement as a possible experimental chassis.
authors.affiliation: Department of Electrical and Computer Engineering, University of Minnesota, Minneapolis, Minnesota 55455, USA. shea0097@umn.edu
authors.forename: Adam
authors.initials: A
authors.lastname: Shea
authors.forename: Brian
authors.initials: B
authors.lastname: Fett
authors.forename: Marc D
authors.initials: MD
authors.lastname: Riedel
authors.forename: Keshab
authors.initials: K
authors.lastname: Parhi
mesh_terms: D001671:Biochemistry / Q000706:statistics & numerical data*; D019295:Computational Biology; D003198:Computer Simulation; D039301:Computers, Molecular; D008956:Models, Chemical; D012984:Software; D058615:Synthetic Biology