Reactamole: Functional Reactive Molecular Programming

Authors Titus H. Klinge, James I. Lathrop, Peter-Michael Osera, Allison Rogers

Thumbnail PDF


  • Filesize: 1.09 MB
  • 20 pages

Document Identifiers

Author Details

Titus H. Klinge
  • Drake University, Des Moines, IA, USA
James I. Lathrop
  • Iowa State University, Ames, IA, USA
Peter-Michael Osera
  • Grinnell College, Grinnell, IA, USA
Allison Rogers
  • Grinnell College, Grinnell, IA, USA


We thank the four anonymous reviewers for their feedback on this paper and Noah Susag for his contributions to the Reactamole code.

Cite AsGet BibTex

Titus H. Klinge, James I. Lathrop, Peter-Michael Osera, and Allison Rogers. Reactamole: Functional Reactive Molecular Programming. In 27th International Conference on DNA Computing and Molecular Programming (DNA 27). Leibniz International Proceedings in Informatics (LIPIcs), Volume 205, pp. 10:1-10:20, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2021)


Chemical reaction networks (CRNs) are an important tool for molecular programming, a field that is rapidly expanding our ability to deploy computer programs into biological systems for a variety of applications. However, CRNs are also difficult to work with due to their massively parallel nature, leading to the need for higher-level languages that allow for easier computation with CRNs. Recently, research has been conducted into a variety of higher-level languages for deterministic CRNs but modeling CRN parallelism, managing error accumulation, and finding natural CRN representations are ongoing challenges. We introduce Reactamole, a higher-level language for deterministic CRNs that utilizes the functional reactive programming (FRP) paradigm to represent CRNs as a reactive dataflow network. Reactamole equates a CRN with a functional reactive program, implementing the key primitives of the FRP paradigm directly as CRNs. The functional nature of Reactamole makes reasoning about molecular programs easier, and its strong static typing allows us to ensure that a CRN is well-formed by virtue of being well-typed. In this paper, we describe the design of Reactamole and how we use CRNs to represent the common datatypes and operations found in FRP. We also demonstrate the potential of this functional reactive approach to molecular programming by giving an extended example where a CRN is constructed using FRP to modulate and demodulate an amplitude modulated signal.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Functional languages
  • Software and its engineering → Data flow languages
  • Chemical Reaction Network
  • Functional Reactive Programming
  • Domain Specific Language


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Stefan Badelt, Seung Woo Shin, Robert F. Johnson, Qing Dong, Chris Thachuk, and Erik Winfree. A General-Purpose CRN-to-DSD Compiler with Formal Verification, Optimization, and Simulation Capabilities. In Robert Brijder and Lulu Qian, editors, DNA Computing and Molecular Programming, pages 232-248, Cham, 2017. Springer International Publishing. Google Scholar
  2. Engineer Bainomugisha, Andoni Lombide Carreton, Tom van Cutsem, Stijn Mostinckx, and Wolfgang de Meuter. A Survey on Reactive Programming. ACM Comput. Surv., 45(4), 2013. URL:
  3. Olivier Bournez, Daniel Graça, and Amaury Pouly. On the functions generated by the general purpose analog computer. Information and Computation, 257:34-57, 2017. URL:
  4. Luca Cardelli. Kaemika App: Integrating Protocols and Chemical Simulation. In Alessandro Abate, Tatjana Petrov, and Verena Wolf, editors, Computational Methods in Systems Biology, pages 373-379, Cham, 2020. Springer International Publishing. Google Scholar
  5. Matthew Cook, David Soloveichik, Erik Winfree, and Jehoshua Bruck. Programmability of Chemical Reaction Networks. In Anne Condon, David Harel, Joost N. Kok, Arto Salomaa, and Erik Winfree, editors, Algorithmic Bioprocesses, pages 543-584. Springer Berlin Heidelberg, Berlin, Heidelberg, 2009. URL:
  6. Conal M. Elliott. Push-Pull Functional Reactive Programming. In Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell, Haskell '09, pages 25-36, New York, NY, USA, 2009. Association for Computing Machinery. URL:
  7. Samuel J. Ellis, Titus H. Klinge, and James I. Lathrop. Robust chemical circuits. Biosystems, 186:103983, 2019. URL:
  8. Irving Robert Epstein and John Anthony Pojman. An Introduction to Nonlinear Chemical Dynamics: Oscillations, Waves, Patterns, and Chaos. Oxford University Press, 1998. Google Scholar
  9. François Fages, Guillaume Le Guludec, Olivier Bournez, and Amaury Pouly. Strong turing completeness of continuous chemical reaction networks and compilation of mixed analog-digital programs. In Jérôme Feret and Heinz Koeppl, editors, Computational Methods in Systems Biology, pages 108-127, Cham, 2017. Springer International Publishing. Google Scholar
  10. Martin Feinberg. Foundations of chemical reaction network theory. Springer, 2019. Google Scholar
  11. Bernd Finkbeiner, Felix Klein, Ruzica Piskac, and Mark Santolucito. Synthesizing Functional Reactive Programs. arXiv:1905.09825 [cs], 2019. URL:
  12. Mathieu Hemery, François Fages, and Sylvain Soliman. Compiling Elementary Mathematical Functions into Finite Chemical Reaction Networks via a Polynomialization Algorithm for ODEs. working paper or preprint, 2021. URL:
  13. Xiang Huang, Titus H. Klinge, and James I. Lathrop. Real-time equivalence of chemical reaction networks and analog computers. In Chris Thachuk and Yan Liu, editors, DNA Computing and Molecular Programming, pages 37-53, Cham, 2019. Springer International Publishing. Google Scholar
  14. P. Hudak, A. Courtney, H. Nilsson, and J. Peterson. Arrows, Robots, and Functional Reactive Programming. In Advanced Functional Programming, 2002. Google Scholar
  15. Paul Hudak. Building domain-specific embedded languages. ACM Comput. Surv., 28(4es):196–es, 1996. URL:
  16. John Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1):67-111, 2000. URL:
  17. John Hughes and John O'Donnell. Expressing and reasoning about non-deterministic functional programs. In Kei Davis and John Hughes, editors, Functional Programming, pages 308-328, London, 1990. Springer London. Google Scholar
  18. Alan Jeffrey. LTL types FRP: linear-time temporal logic propositions as types, proofs as functional reactive programs. In Proceedings of the sixth workshop on Programming languages meets program verification - PLPV '12, page 49, Philadelphia, Pennsylvania, USA, 2012. ACM Press. URL:
  19. Titus H. Klinge and James I. Lathrop. Modulated signals in chemical reaction networks. CoRR, abs/2009.06703, 2020. URL:
  20. Titus H. Klinge, James I. Lathrop, and Jack H. Lutz. Robust Biomolecular Finite Automata. CoRR, abs/1505.03931, 2015. URL:
  21. Simon Marlow. Haskell 2010 language report. Google Scholar
  22. Marko Vasic, David Soloveichik, and Sarfraz Khurshid. CRN++: Molecular Programming Language. arXiv:1809.07430 [cs], 11145, 2018. URL: