## 1 WRITING AND COMPILING CODE INTO BIOCHEMISTRY ∗

Citations: | 3 - 3 self |

### BibTeX

@MISC{Shea_1writing,

author = {Adam Shea and Brian Fett and Marc D. Riedel and Keshab Parhi},

title = {1 WRITING AND COMPILING CODE INTO BIOCHEMISTRY ∗},

year = {}

}

### OpenURL

### 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. 1.

### Citations

863 |
Exact stochastic simulation of coupled chemical reactions
- Gillespie
- 1977
(Show Context)
Citation Context ... previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; =-=[6]-=- always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a... |

665 | Molecular computation of solutions to combinatorial problems - Adleman - 1994 |

306 | A synthetic oscillatory network of transcriptional regulators - Elowitz, Leibler - 2000 |

266 | Efficient exact stochastic simulation of chemical systems with many species and many channels
- Gibson, Bruck
- 2000
(Show Context)
Citation Context ...ch signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin=-=[8]-=- Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a biochemical reaction... |

41 |
Spice (Simulation Program with Integrated Circuit Emphasis
- Nagel, Pederson
- 1973
(Show Context)
Citation Context ...alue of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always =-=[7]-=- begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a biochemica... |

37 | Surviving heat shock: Control strategies for robustness and performance - El-Samad, H, et al. - 2005 |

36 |
Production of the antimalarial drug precursor artemisinic acid in engineered yeast. Nature
- Ro, Paradise, et al.
- 2006
(Show Context)
Citation Context ...ent value and the (n − 1)-st value is the previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; =-=[3]-=- input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as fol... |

35 |
Essential genes of a minimal bacterium
- Glass, Assad-Garcia, et al.
- 2006
(Show Context)
Citation Context ...value is the previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; =-=[5]-=- reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is trans... |

34 |
Complete chemical synthesis, assembly, and cloning of a Mycoplasma genitalium genome
- Gibson, Benders, et al.
- 2008
(Show Context)
Citation Context ...he (n − 1)-st value is the previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; =-=[4]-=- output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each oper... |

34 | Mathematical Models of Chemical Reactions. Theory and Applications of Deterministic and Stochastic Models - Érdi, Tóth - 1989 |

24 | Genetic circuit building blocks for cellular computation - Weiss, Basu, et al. |

17 | From processes to ODEs by Chemistry - Cardelli - 2008 |

15 |
Production of Ethanol from Cellulosic Biomass Hydrolysate Using Genetically Engineered
- Sedlak, Ho
- 2004
(Show Context)
Citation Context ...e is the current value and the (n − 1)-st value is the previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); =-=[2]-=- input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reac... |

11 | Signal processing by simple chemical systems - Samoilov, Arkin, et al. - 2002 |

9 | Programmability of chemical reaction networks - Cook, Soloveichik, et al. - 2009 |

5 |
Engineering the Salmonella type III secretion system to export spider silk monomers. Mol Syst Biol 5
- Widmaier
- 2009
(Show Context)
Citation Context ...]. 2 2 where the n-th value is the current value and the (n − 1)-st value is the previous value of each signal. The iterative operation can be specified as follows (we use the syntax of Verilog 10 ): =-=[1]-=- module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end [11] endmodule We translate this specification into... |

4 | An Autonomous Molecular Computer for Logical - Benenson, Gil, et al. - 2004 |

3 | From the Cover: A modular and extensible RNA-based gene-regulatory platform for engineering cellular function - Win, Smolke - 2007 |

3 | Synthesizing Stochasticity - Fett, Bruck, et al. - 2007 |

2 |
Stochastic transient analysis of biochemical reactions,” Pacific Biocomputing Symposium
- Chen, Riedel
(Show Context)
Citation Context ...ion can be specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); =-=[9]-=- Xn= X; [10] end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a biochemical reaction with the protein types that co... |

2 |
Standard Verilog Hardware Description Language
- Verilog
- 2001
(Show Context)
Citation Context ...specified as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; =-=[10]-=- end [11] endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a biochemical reaction with the protein types that correspond to ... |

2 |
DNA as a Universal Substrate for
- Soloveichik, Seelig, et al.
- 2008
(Show Context)
Citation Context ... as follows (we use the syntax of Verilog 10 ): [1] module MA(clk, X, Y); [2] input X; [3] input clk; [4] output Y; [5] reg Xn; [6] always [7] begin[8] Y= (1/2 * X) + (1/2 * Xn); [9] Xn= X; [10] end =-=[11]-=- endmodule We translate this specification into a set of biochemical reactions, as follows. Each operation is translated into a biochemical reaction with the protein types that correspond to the varia... |

2 | Computation with Finite Stochastic - Soloveichik, Cook, et al. - 2008 |

2 | Module Locking - Fett, Riedel - 2008 |