Skip to main content
Bioinformatics logoLink to Bioinformatics
. 2023 Oct 19;39(11):btad634. doi: 10.1093/bioinformatics/btad634

Cyclone: open-source package for simulation and analysis of finite dynamical systems

Elena S Dimitrova 1, Adam C Knapp 2, Brandilyn Stigler 3,, Michael E Stillman 4
Editor: Pier Luigi Martelli
PMCID: PMC10634519  PMID: 37856334

Abstract

Motivation

While there are software packages that analyze Boolean, ternary, or other multi-state models, none compute the complete state space of function-based models over any finite set. Results: We propose Cyclone, a simple light-weight software package which simulates the complete state space for a finite dynamical system over any finite set.

Availability and implementation

Source code is freely available at https://github.com/discretedynamics/cyclone under the Apache-2.0 license.

1 Introduction

Finite dynamical systems (FDSs) have become remarkably popular in modeling due to the increasingly important role of interaction-based systems whose behavior can be approximated by a finite number of states. Notable examples include gene regulatory networks (Hinkelmann and Laubenbacher 2013) and discrete event systems (Le Borgne et al. 1991).

An FDS in the variables x1,,xn is a vector function F=(f1,,fn):XnXn and each coordinate function fi represents how the future value of the i-th variable depends on the present values of all variables. For example, a Boolean network is an FDS over X={0,1}. The dynamics of an FDS is generated by the evaluation of F on all n-tuples in Xn. The dynamics is represented by the state space, a directed graph with vertices in Xn and an edge from x to y if and only if y=F(x): e.g., see Fig. 1. In an FDS trajectories end in a limit cycle, a sequence of states {s1,,sm} such that F(si)=si+1 for 1i<m and F(sm)=s1. When its size is a power of a prime, X can be viewed as a finite field in which functions are represented by polynomials, and algebraic geometry can be used for analysis and model selection (He et al. 2019).

Figure 1.

Figure 1.

Output state space graph of the input finite dynamical system F:(Z3)3(Z3)3 where F=(x2+2,x1+x3,x1x2+1) and Z3={0,1,2}

There are multiple software platforms available for modeling using FDSs. The Cell Collective (Helikar et al. 2012) is an interactive web tool built with a special emphasis on the collaboration of distributed teams to build large Boolean models of molecular networks. The R package BoolNet (Müssel et al. 2010) utilizes a convenient approach to build and simulate deterministic Boolean models as well as stochastic ones with randomly varying update schemes for the variables. SteadyCellPhenotype (Knapp et al. 2022) analyzes network models under ternary logic. The web tool GINsim (Chaouiya et al. 2012) provides a graphical user interface to build and analyze logical models (generalized Boolean networks) via graphs. The web-based application PlantSimLab (Ha et al. 2019) uses FDSs as a modeling framework and is targeted at plant biologists for modeling and simulation of molecular networks based on input data formatted as transition tables. Several other recent platforms have been developed; e.g. GeRNet (Dussaut et al. 2017), DIN (Forbes et al. 2018), mEPN scheme (Livigni et al. 2018), and MUFINS (Wu et al. 2016).

Some of these can deal only with Boolean networks while others can handle multi-state models. All of them have a wide variety of features, whether it is the accommodation of different modeling frameworks, the ability to infer dynamic models from data, or features that allow sharing and distributed model construction. None of them, however, has the capability of taking a system of user-defined functions as input and outputting the complete state space (e.g. neither BoolNet nor GINsim guarantees finding all limit cycles for networks with more than 32 variables (Hinkelmann et al. 2011)). Such a capability is of great utility to researchers who build Boolean and multi-state models and wish to have access to the complete state space. This is also useful for educators who teach discrete modeling or incorporate it in student projects.

We note that Cyclone had several web-based precursors over the years. For example, DVD (https://web.archive.org/web/20130602210526/http://dvd.vbi.vt.edu/), Polynome (Dimitrova et al. 2011), and ADAM (Hinkelmann et al. 2011) were utilized in multiple courses and publications such as Robeva and Hodge (2013). Unfortunately, due to lack of maintenance these tools are now defunct. Cyclone fills in the gap left by them with the same simple-to-use interface but with a dedicated group of developers committed to maintaining functionality. The software is available as an open-source downloadable package via GitHub under the Apache-2.0 license, github.com/discretedynamics/cyclone.

2 The package

Cyclone takes as input an FDS defined over the ring Zp={0,,p1} where Zp is the set of integers modulo a positive integer p under the ring operations of addition (+) and multiplication (*) modulo p. Functions can be written using + and * and can include the list operators MAX and MIN and the generalized logical operator NOT defined by NOT(x)=p1x. When p =2, the Boolean operators AND, OR, and XOR can be used.

Cyclone computes the state space of an FDS using synchronous update scheme. By default it returns two text files: (i) the state space formatted as an input to the dot layout engine in the open source graph visualization software Graphviz (Ellson et al. 2002); (ii) a summary of the limit cycles, including the number of components in the state space graph, the size of each component, and the states that form the limit cycle. Cyclone has two options: summary returns only the summary file and trajectory returns only the portion of the state space beginning at a given state and ending at the associated limit cycle.

The software does not impose a limitation on p or n, nor on the number of variables per function; as such the execution time is determined by the user’s memory and space allocations (as the state space graph has pn nodes, the corresponding file will have pn lines). For networks with large state spaces, the above options may be helpful. For example, the following combinations of (p, n) completed in under 2 min on a Windows 10 laptop with an 11th generation Intel chip running Ubuntu 20.04.3 using the option summary: (2,25), (3,16), and (5,11).

Cyclone is written in C++14 and requires the build system CMake 3.5 or later. The Catch2 framework is used for testing [https://github.com/catchorg/Catch2]. Cyclone has been tested on Debian 11, Ubuntu 20.04, as well as MacOS 11–13.

3 Conclusion

Cyclone is a simple light-weight software package that fills in a gap in the available software options for simulating FDSs. It takes as input functions over any finite set and outputs the entire state space or single trajectories. The software is open-source and intended for quick and convenient use in educational and research projects.

Acknowledgments

Cyclone was originally developed during a summer program in 2016 by A. Guang, M. Brandon, R. McNeill, P. Vines, F. Hinkelmann, S. Arat, R. Laubenbacher, B. Tyler, J. McDowell, and S. Hoops. The version presented here was written from scratch to modernize and optimize the software. A. Hosny created the Docker container image for Cyclone. No new data were generated or analyzed in support of this research.

Contributor Information

Elena S Dimitrova, Mathematics Department, California Polytechnic State University, San Luis Obispo, CA 93407, United States.

Adam C Knapp, Department of MD-Pulmonary Laboratory for Systems Medicine, University of Florida, Gainesville, FL 32610, United States.

Brandilyn Stigler, Department of Mathematics, P.O. Box 750156, Southern Methodist University, Dallas, TX 75275, United States.

Michael E Stillman, Department of Mathematics, Cornell University, Ithaca, NY 14853, United States.

Conflict of interest

None declared.

Funding

None declared.

References

  1. Chaouiya C, Naldi A, Theiffry D.. Logical modelling of gene regulatory networks with GINsim. In: van Helden J, Toussaint A, Thieffry D (eds) Bacterial Molecular Networks: Methods and Protocols. New York: Springer, 2012, 463–479. [DOI] [PubMed] [Google Scholar]
  2. Dimitrova E, García-Puente LD, Hinkelmann F. et al. Parameter estimation for Boolean models of biological networks. Theor Comput Sci 2011;412:2816–26. [Google Scholar]
  3. Dussaut JS, Gallo CA, Cravero F. et al. GeRNet: a gene regulatory network tool. Biosystems 2017;162:1–11. [DOI] [PubMed] [Google Scholar]
  4. Ellson J et al. Graphviz—open source graph drawing tools. In: Mutzel P, Jünger M, Leipert S (eds) Graph Drawing. Berlin Heidelberg: Springer, 2002, 483–484. [Google Scholar]
  5. Forbes AG, Burks A, Lee K. et al. Dynamic influence networks for rule-based models. IEEE Trans Vis Comput Graph 2018;24:184–94. [DOI] [PubMed] [Google Scholar]
  6. Ha S, Dimitrova E, Hoops S. et al. PlantSimLab: a modeling and simulation web tool for plant biologists. BMC Bioinformatics 2019;20:508. [DOI] [PMC free article] [PubMed] [Google Scholar]
  7. He Q, Dimitrova ES, Stigler B. et al. Geometric characterization of data sets with unique reduced Gröbner bases. Bull Math Biol 2019;81:2691–705. [DOI] [PubMed] [Google Scholar]
  8. Helikar T, Kowal B, McClenathan S. et al. The cell collective: toward an open and collaborative approach to systems biology. BMC Syst Biol 2012;6:96. [DOI] [PMC free article] [PubMed] [Google Scholar]
  9. Hinkelmann F, Laubenbacher R.. Finite fields in biology. In: Mullen G, Panario D (eds) Handbook of Finite Fields. New York: CRC Press, 2013, 825–834. [Google Scholar]
  10. Hinkelmann F, Brandon M, Guang B. et al. ADAM: analysis of discrete models of biological systems using computer algebra. BMC Bioinformatics 2011;12:295. [DOI] [PMC free article] [PubMed] [Google Scholar]
  11. Knapp AC, Sordo Vieira L, Laubenbacher R. et al. SteadyCellPhenotype: a web-based tool for the modeling of biological networks with ternary logic. Bioinformatics 2022;38:2369–70. [DOI] [PMC free article] [PubMed] [Google Scholar]
  12. Le Borgne M et al. Polynomial dynamical systems over finite fields. In: Jacob G, Lamnabhi-Lagarrigue F (eds) Algebraic Computing in Control. Berlin Heidelberg: Springer, 1991, 212–222. [Google Scholar]
  13. Livigni A, O'Hara L, Polak ME. et al. A graphical and computational modeling platform for biological pathways. Nat Protoc 2018;13:705–22. [DOI] [PubMed] [Google Scholar]
  14. Müssel C, Hopfensitz M, Kestler HA. et al. BoolNet—an R package for generation, reconstruction and analysis of Boolean networks. Bioinformatics 2010;26:1378–80. [DOI] [PubMed] [Google Scholar]
  15. Robeva R, Hodge T.. Mathematical Concepts and Methods in Modern Biology: Using Modern Discrete Models. New York: Academic Press. 2013. [Google Scholar]
  16. Wu H et al. MUFINS: multi-formalism interaction network simulator. Syst Biol Appl 2016;2:16032. [DOI] [PMC free article] [PubMed] [Google Scholar]

Articles from Bioinformatics are provided here courtesy of Oxford University Press

RESOURCES