Abstract
Synthetic biology is a rapidly emerging research area, with expected wide-ranging impact in biology, nanofabrication, and medicine. A key technical challenge lies in embedding computation in molecular contexts where electronic micro-controllers cannot be inserted. This necessitates effective representation of computation using molecular components. While previous work established the Turing-completeness of chemical reactions, defining representations that are faithful, efficient, and practical remains challenging. This paper introduces , a new language for programming deterministic (mass-action) chemical kinetics to perform computation. We present its syntax and semantics, and build a compiler translating programs into chemical reactions, thereby laying the foundation of a comprehensive framework for molecular programming. Our language addresses the key challenge of embedding familiar imperative constructs into a set of chemical reactions happening simultaneously and manipulating real-valued concentrations. Although some deviation from ideal output value cannot be avoided, we develop methods to minimize the error, and implement error analysis tools. We demonstrate the feasibility of using on a suite of well-known algorithms for discrete and real-valued computation. can be easily extended to support new commands or chemical reaction implementations, and thus provides a foundation for developing more robust and practical molecular programs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Although certain pathological CRNs can drive concentrations to infinity in finite time (e.g., \(2A \rightarrow 3A\)), and thereby drive certain other species to 0 in finite time (e.g., with an additional \(B + A \rightarrow A\)), these cases cannot be implemented with any reasonable chemistry.
References
\(CRN++\) Github page. https://github.com/marko-vasic/crnPlusPlus
Angluin, D., Aspnes, J., Eisenstat, D.: A simple population protocol for fast robust approximate majority. Distrib. Comput. 21(2), 87–102 (2008)
Baccouche, A., Montagne, K., Padirac, A., Fujii, T., Rondelez, Y.: Dynamic DNA-toolbox reaction circuits: a walkthrough. Methods 67(2), 234–249 (2014)
Bournez, O., Graça, D.S., Pouly, A.: Polynomial time corresponds to solutions of polynomial ordinary differential equations of polynomial length. J. ACM 64(6), 38 (2017)
Buisman, H.J., ten Eikelder, H.M.M., Hilbers, P.A.J., Liekens, A.M.L.: Computing algebraic functions with biochemical reaction networks. Artif. Life 5–19 (2009)
Cardelli, L., Csikász-Nagy, A.: The cell cycle switch computes approximate majority. Sci. Rep. 2, 656 (2012)
Chen, Y.J., et al.: Programmable chemical controllers made from DNA. Nat. Nanotechnol. 8(10), 755 (2013)
CRNSimulator Mathematica package. http://users.ece.utexas.edu/~soloveichik/crnsimulator.html
Fages, F., Le Guludec, G., Bournez, O., Pouly, A.: Strong turing completeness of continuous chemical reaction networks and compilation of mixed analog-digital programs. In: Feret, J., Koeppl, H. (eds.) CMSB 2017. LNCS, vol. 10545, pp. 108–127. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67471-1_7
Huang, D.A., Jiang, J.H.R., Huang, R.Y., Cheng, C.Y.: Compiling program control flows into biochemical reactions. In: Proceedings of the International Conference on Computer-Aided Design, pp. 361–368 (2012)
Jiang, H., Riedel, M., Parhi, K.: Synchronous sequential computation with molecular reactions. In: 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC), pp. 836–841 (2011)
Lachmann, M., Sella, G.: The computationally complete ant colony: global coordination in a system with no hierarchy. In: Morán, F., Moreno, A., Merelo, J.J., Chacón, P. (eds.) ECAL 1995. LNCS, vol. 929, pp. 784–800. Springer, Heidelberg (1995). https://doi.org/10.1007/3-540-59496-5_343
Magnasco, M.O.: Chemical kinetics is Turing universal. Phys. Rev. Lett. 78(6), 1190 (1997)
Salehi, S.A., Parhi, K.K., Riedel, M.D.: Chemical reaction networks for computing polynomials. ACS Synth. Biol. 6(1), 76–83 (2017)
Soloveichik, D., Seelig, G., Winfree, E.: DNA as a universal substrate for chemical kinetics. Proc. Natl. Acad. Sci. 107(12), 5393–5398 (2010)
Acknowledgment
We thank the fellow students of EE 381V (Programming With Molecules) at The University of Texas at Austin for constructive discussions on the material presented in this paper. We also thank Keenan Breik, Cameron Chalk, Milos Gligoric, Aleksandar Milicevic, Boya Wang and Kaiyuan Wang for their feedback on this work. This research was partially supported by the US National Science Foundation under Grants Nos. CCF-1618895, CCF-1718903, CCF-1652824, and CCF-1704790.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix A Modules
Appendix A Modules
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Vasic, M., Soloveichik, D., Khurshid, S. (2018). CRN++: Molecular Programming Language. In: Doty, D., Dietz, H. (eds) DNA Computing and Molecular Programming. DNA 2018. Lecture Notes in Computer Science(), vol 11145. Springer, Cham. https://doi.org/10.1007/978-3-030-00030-1_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-00030-1_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00029-5
Online ISBN: 978-3-030-00030-1
eBook Packages: Computer ScienceComputer Science (R0)