Abstract
Background
A key problem in the analysis of mathematical models of molecular networks is the determination of their steady states. The present paper addresses this problem for Boolean network models, an increasingly popular modeling paradigm for networks lacking detailed kinetic information. For small models, the problem can be solved by exhaustive enumeration of all state transitions. But for larger models this is not feasible, since the size of the phase space grows exponentially with the dimension of the network. The dimension of published models is growing to over 100, so that efficient methods for steady state determination are essential. Several methods have been proposed for large networks, some of them heuristic. While these methods represent a substantial improvement in scalability over exhaustive enumeration, the problem for large networks is still unsolved in general.
Results
This paper presents an algorithm that consists of two main parts. The first is a graph theoretic reduction of the wiring diagram of the network, while preserving all information about steady states. The second part formulates the determination of all steady states of a Boolean network as a problem of finding all solutions to a system of polynomial equations over the finite number system with two elements. This problem can be solved with existing computer algebra software. This algorithm compares favorably with several existing algorithms for steady state determination. One advantage is that it is not heuristic or reliant on sampling, but rather determines algorithmically and exactly all steady states of a Boolean network. The code for the algorithm, as well as the test suite of benchmark networks, is available upon request from the corresponding author.
Conclusions
The algorithm presented in this paper reliably determines all steady states of sparse Boolean networks with up to 1000 nodes. The algorithm is effective at analyzing virtually all published models even those of moderate connectivity. The problem for large Boolean networks with high average connectivity remains an open problem.
Keywords:
Steady state computation; Boolean model; Discrete modelBackground
Boolean network (BN) models are widely used in molecular and systems biology to capture coarsegrained dynamics of a variety of regulatory networks, with a particular focus on features such as steady state behavior [122]. One advantage of discrete models of this type is that, for small models, the entire dynamics can be explored by exhaustive enumeration of all state transitions. Since the size of the state space of a Boolean model with n nodes is 2^{n}, this approach becomes unfeasible for larger models, those with more than approximately 30 variables, depending on the computational resources available. Also, for larger models, finding steady states (fixed points in this manuscript) through sampling is not effective anymore either, since even large attractors can be missed entirely by this approach. On the theoretical side, it has been shown that the problem of finding, or even counting, steady states of Boolean networks is NPhard [23,24], so that any algorithm for this problem will eventually encounter serious limitations. Since the size of published models has increased in recent years, including models with 100 or more nodes [15,17,21,22], it is important to develop more efficient methods that find all steady states of a Boolean model.
Several methods have been proposed in the literature for dealing with this problem, including exact as well as heuristic methods. We provide a brief review of the different types here. For this purpose, we represent a Boolean network as follows. Let K={0,1}, and assume that the network has n nodes x_{1},…,x_{n}. Each node x_{i} has associated to it a Boolean function f_{i}:K^{n}→K. Thus, we can represent the Boolean network as a function
One can represent the variable dependencies through the dependency graph of the network, whose nodes are the variables x_{1},…,x_{n}. There is an edge x_{i}→x_{j} if x_{i} appears in the function f_{j}, that is, the state of x_{j} depends on the state of x_{i}. The problem of finding steady states is then formulated as finding all states x∈K^{n} such that f(x)=x.
One approach to the problem is model reduction. Some existing reduction methods use a “steadystate approximation” [2528] to reduce the number of variables. Intuitively, if a function depends on a variable, e.g., f_{i}=f_{i}(x_{j},x_{k},x_{l}), then we can remove variable x_{j} from the network by replacing f_{i}(x_{j},x_{k},x_{l}) with the new function f_{i}(f_{j}(x_{1},…,x_{n}),x_{k},x_{l}). By repeating this process, one obtains a reduced network that in practice is much smaller than the original network. The stopping criteria for reduction methods is that variables can be removed only if the steady state information is preserved. The steady states of the reduced network are in algorithmic onetoone correspondence with the steady states of the original network. More precisely, the reduction algorithm decomposes a large system into a smaller system and a set of equations in triangular form, so that when the steady states of the reduced system are found, the steady states of the original systems can be found simply by backwards substitution. That is, the existence of the onetoone correspondence is not just theoretical.
Another method uses the fact that one can represent a Boolean function as a polynomial function in the variables x_{1},…,x_{n}, with coefficients in the finite number system K={0,1} (with integer addition and multiplication modulo 2). The problem of finding the steady states of a Boolean network in n variables, as above, can then be reformulated as the problem of finding the solutions to a system of polynomial equations p_{i}:=f_{i}(x_{1},…,x_{n})−x_{i}=0;i=1,…,n[2931]. Then, the roots of the system of polynomial equations is encoded by the set {p_{1},…,p_{n}}. Using tools from computational algebra it is possible to find another set that has the same roots (a Gröbner basis), such that it is possible to do a generalized version of Gaussian elimination. These computations can be done using several different software packages developed for this purpose.
A graphtheoretic method, Minimal Feedback Vertex Sets, consists of finding a set of vertices in the dependency graph of the network that “generate” all steady states. More precisely, one finds a set S⊂{1,…,n} such that knowing the coordinates x_{i}, for all i∈S, of a steady state completely and algorithmically determines the other coordinates of the steady state. It turns out that socalled feedback vertex sets have this property. In practice, by finding a minimal feedback vertex set, one reduces the problem from checking 2^{n} states to the problem of checking 2^{S} states, where S is typically much smaller than n[23]. A feedback vertex set can be found by removing vertices from the graph until the graph has no directed cycles. A minimal feedback vertex set can be found by finding the smallest number of vertices that we need to remove from the graph so that it does not have directed cycles.
SAT methods have also been used for the purpose of finding steady states of Boolean networks, which are used to determine whether a Boolean expression in several variables has a variable assignment that makes the expression true; see [3235]. In essence, the system of Boolean equations, f_{i}=x_{i}, is rewritten as a single equation G(x)=1, and then the problem of finding the steady states becomes the problem of finding when the equation G(x)=1 is satisfied. For example, Melkman, Tamura, and Akutsu [33,35] used SAT algorithms to find steady states of AND/OR Boolean networks, i.e., Boolean networks in which the f_{i} contain only the AND and OR operators, with a time complexity of O(1.587^{n}) (where n is the number of nodes). Dubrova and Teslenko [34] also developed a SATbased algorithm to find all attractors of a Boolean network with very good performance characteristics. The methodology was tested on Boolean networks with sizes ranging from 12 to 52. It was also tested using random networks with up to 7000 nodes and average indegree less than 2. For a fixed indegree of 2 the maximum size networks tested have 2000 nodes.
Integer programmingbased method have also been used to find the steady states of Boolean networks, Tamura, Hayashida, and Akutsu [36]. In essence, the system of Boolean equations is rewritten as a set of inequalities Ax≤b,x≥0 and the goal is to maximize a linear function of the form c^{T}x.
Strategic Sampling, (Zhang, Hayashida, Akutsu, Ching, and Ng, [37]) is a recursive search approach to identify all steady states of a random Boolean network with maximum indegree 2, with an average time complexity of O(1.19^{n}) (where n is the number of nodes). The idea is that the equations are solved recursively: First one considers the solutions of the equation f_{1}=x_{1}. Since the f_{i}’s depend on few variables in practice, one only has to keep track of the variables that appear in f_{1}. Then, one finds the solutions of f_{2}=x_{2} that are compatible with the solutions previously found. The process continues until one finds solutions of all equations. In the worst case, however, algorithm complexity can be O(n2^{n}) [31].
Finally, the problem of finding attractors has also been studied by using Binary Decision Diagrams (BDD) [3841]. The idea is to represent the Boolean functions as a directed graph that efficiently encodes the functions by allowing fast evaluation. Then, by combining the BDD representation of all the Boolean functions, the problem of finding steady states becomes a search problem in the larger BDD. Many of these methods were tested on some biologically relevant networks with fewer than 100 nodes.
In this paper, we present a new method for computing steady states of a Boolean network, combining a graph theoretic reduction/transformation method with an approach using computational algebra. We show that the method performs favorably on some types of networks in comparison with other methods on a collection of benchmark networks, consisting of both published models and random networks with certain properties, namely Kauffman networks and networks whose indegree distribution satisfies a power law.
Methods
The method we propose for steady state analysis is a combination of network reduction/transformation and computational algebra (see Figure 1). The reduction technique we use is based on results in [42,43]. In [42] it was shown that any Boolean network can be “transformed” into an ANDNOT network, namely a network whose Boolean functions are all of the form y_{1}∧y_{2}∧…, where y_{i}∈{x_{i},¬x_{i}}. The ANDNOT network has the property that its steady states are in onetoone correspondence with the steady states of the original network. Furthermore, the onetoone correspondence between steady states is algorithmic. In [43], the authors proposed a method to reduce an ANDNOT network to another, smaller ANDNOT network in polynomial time, in such a way that the steady states of the original and the reduced network are in onetoone correspondence, in a constructive way. This reduction algorithm looks for motifs (e.g. feedforward loops) in the wiring diagram and removes nodes in such motifs; the reduction stops when there are no more motifs to be reduced (attempting to do further reductions would destroy the 11 correspondence of steady states). Once the reduced network is constructed, one can compute its steady states by converting the Boolean functions into polynomial functions and then solving a system of polynomial equations, as explained above. The computational algebra technique is based on [29,30]. The idea is that by computing a Gröbner basis (a special set of polynomials with the same roots as the original equations), it is possible to find the roots of the system of polynomial equations using a generalized version of Gaussian elimination.
Figure 1. Flow chart of steady state computation. Main steps in our method highlighting the intermediate systems. S denotes the set of steady states of a given network; f is an arbitrary Boolean network, g is an ANDNOT network (in possibly more variables), h is a reduced ANDNOT network, p is the polynomial representation of h.
The correspondence between Boolean and polynomial functions is accomplished via the “dictionary” x∧y⇔x·y,x∨y⇔x+y+xy,¬x⇔x+1. The correspondence is unique if we limit the degree with which each variable appears in the polynomial function to 1, since any function K^{n}→K can be represented uniquely as a polynomial function that is squarefree, that is, in which every variable appears with exponent 1.
The algorithm is summarized in the following pseudocode and a more detailed description follows. The source code can be found at github.com/PlantSimLab/ ADAM.
The input of our algorithm is an n−dimensional Boolean network f=(f_{1},…,f_{n}). In Step 1, we use the formulas from [42] to compute an ANDNOT network g=(g_{1},…,g_{m}), with m≥n, which has the same number of steady states as f. The idea is to introduce variables to rewrite the Boolean operations using only the operators AND and NOT; for example, f_{1}=¬x_{2}∧(x_{3}∨x_{4}) can be written as f_{1}=¬x_{2}∧¬x_{5}, where f_{5}=¬x_{3}∧¬x_{4}. Furthermore, the steady states of f are given by projecting the steady states of g to their first n coordinates. In Step 2, we simply consider the wiring diagram of g, which is a signed directed graph that encodes which variable depends on which others and whether the interactions are activating or inhibiting. In Step 3, we use the algorithm from [43] to reduce the wiring diagram of g to another signed directed graph, W. Then, in Step 4, we construct the ANDNOT network that has W as its wiring diagram, h=(h_{1},…,h_{l}); the steady states of g can be computed from the steady states of h by backtracking [43]. In Step 5, we compute the polynomial representation of h. This is done by replacing ¬x_{i} with 1+x_{i}, and x_{i}∧x_{j} with x_{i}x_{j}, as explained earlier. In Step 6 we solve the system of polynomial equations h_{i}=x_{i}, i=1,…,l; this is done using tools from computational algebra as done in [29,30]. The solutions of the system, L^{″}={s1″,…,sr″}, will also be solutions of h. In Step 7, we use backtracking to compute the steady states of g, L^{′}={s1′,…,sr′}. And finally, in Step 8, we project each sj′ to its first n coordinates and obtain the steady states of f (See Additional file 1 for an example and Additional files 2 and 3 for the code version used for this publication).
Additional file 1. Example and individual performance of network reduction and computational algebra.
Format: PDF Size: 227KB Download file
This file can be viewed with: Adobe Acrobat Reader
Additional file 2. Instructions for usage.
Format: TXT Size: 1KB Download file
Additional file 3. Source code.
Format: ZIP Size: 777KB Download file
Results and discussion
We first tested the software implementation of our algorithm on 1,000,000 Boolean networks with 50 nodes each, for which we also computed all steady states by a custommade algorithm based on minimal feedback vertex sets. For each graph we found the minimal number of vertices that had to be removed so that the graph had no directed cycles; call this set S. Then, for each element in {0,1}^{S}, the values of the other variables are completely determined. This gave us 2^{S} candidates for steady states which we then checked by exhaustive search. In all cases our algorithm computed correctly all steady states. We are therefore confident that our implementation is errorfree. This extends to the relevant functionalities of other software packages we used for intermediate computations (Macaulay2 [44], Boost Library [45], BoolStuff Library [46]).
Then we used over 100,000 Boolean networks to benchmark our method against others. The methods we used for comparison were those with published benchmarks or those for which the code was readily available. As we will see later, for Kauffman networks with K=2, the timing of our method grows linearly with the number of nodes; thus, it was not necessary to include in our benchmarks methods that were reported to grow exponentially for such networks (e.g. [34,37]). We selected three methods with good computational efficiency for K=2: Zanudo and Albert [26]; Devloo, Hansen, and Labbé [32]; and Tamura, Hayashida, and Akutsu [36]. For the most recent algorithm, Zañudo and Albert [26] use a method that identifies motifs (subsets of nodes) that stabilize in one or a small number of states. The steady states from these motifs are used to reduce the network to find the attractors. It is important to mention that this method can find not only the steady states of Boolean networks, but also information about all the attractors of the network, which our method is not currently designed to do.
We used random biologically meaningful Boolean networks [4749] and published networks [1322] (the Boolean representation of these models was obtained from The Cell Collective[50]). The results for Zañudo and Albert and our algorithm were generated by us and the other results are reported from published benchmarks [32,36]. The computations for our algorithm and that of [26] were done on a 3.4 GHz Linux machine. The computations for Tamura’s and Devloo’s algorithms were done on a Linux system with 3GHz and a Sun SPARC Ultra 10 machine, respectively, as reported in [32,36]. Considering that the different computers described above have processors with similar speed and that the computations were done in a single processor, the use of results from different machines will not affect the main conclusions of our comparison. Moreover, some methods did not have reported results for certain network sizes; in that case, we computed an approximate timing using interpolation/extrapolation of the reported values; we linear and exponential fits for the timings that grew linearly and exponentially, respectively.
First, we compare the performance of different methods on Kauffman networks with connectivity K=2 and K=3. For our and the Zañudo algorithm, each reported number is the average or standard deviation of 1000 Boolean networks. In Table 1 we report the timings for Kauffman networks with K=2. We can see that the algorithm in [36] performs best, followed by our algorithm. Note that all timings grow linearly with the number of nodes. As mentioned in [36], the good results with Tamura’s algorithm may be due to the fact that the authors optimized the computations for Boolean functions that have 2 inputs. The results for Kauffman networks with K=3 in Table 2, however, show that our method performs better by an order of magnitude. These results show that, while our algorithm is not optimized for very low indegree networks, it is more scalable for networks with higher connectivity.
Table 1. Timing in seconds for Kauffman networks withK=2
Table 2. Timing in seconds for Kauffman networks withK=3
Not all molecular networks have properties similar to Kauffman networks, but can exhibit power law properties for their degree distribution. Thus, we supplemented the results from Tables 1 and 2 with benchmark networks whose connectivity follows a power law distribution [51]. We considered powerlaw networks with average connectivity 〈k〉=2 and 〈k〉=3. That is, the average number of edges is the same, but the connectivity distribution is more biologically realistic. There were no bechmarks for these types of networks for Tamura’s and Devloo’s algorithms, so we only report Zañudo’s and our algorithm. In Table 3, we see that our algorithm can handle networks with 〈k〉=2 with up to 1000 nodes in under 7 seconds on average. It is important to mention that these timings differ considerably from the timings for K=2 (Table 1). Table 4 shows the results for networks with connectivity 〈k〉=3. Not surprisingly, increasing the average connectivity has a dramatic effect on the size of networks that can be studied; for example, the network sizes that can be dealt with in under 7 seconds decreases from 1000 to about 140 when we increase 〈k〉 from 2 to 3. Further increasing the average connectivity will have a much more dramatic effect.
Table 3. Timing in seconds for powerlaw networks with average connectivity〈k〉=2
Table 4. Timing in seconds for powerlaw networks with average connectivity〈k〉=3
Finally, our results on published networks are shown in Table 5, sorted by average connectivity. Since all models have external parameters corresponding to environmental conditions (i.e. we have one BN for each parameter set), we sampled the parameter space and computed the average timing of each algorithm. The numbers we report are the averages of 10000 simulations for each model. As expected, for all networks with small average connectivity (less than 3) our algorithm performed very well and finished in less than half a second, consistent with the timings from Tables 3 and 4. Four models have average connectivity greater than 3 and our algorithm performed very well on three of them. However, for the largest network (225 nodes and 〈k〉=5.16), there were parameter sets (51% of the sampled parameters) which could not be analyzed.
Table 5. Timimg in seconds for published models
The computational complexity of our algorithm depends on the type of networks used as well as the connectivity. The algorithm seems to run in polynomial time for Kauffman networks with K=2 (Table 1), but slower for powerlaw networks with the same connectivity (Table 3). For other types of networks the complexity is much harder to infer, but Table 2 suggests that the complexity is exponential. Also, the complexity of the mathematical tools we use is not well understood in the context of Boolean models. For example, the algebraic step of our algorithm can be doubly exponential, but it has been shown to work much faster in practice and, as our work shows, it runs much faster for sparse Boolean models.
Conclusions
The capability to analyze the attractors of discrete dynamic models of biological networks is a key technology in any systems biology toolkit that incorporates this popular type of model. This capability needs to include steady state analysis as well as the determination of periodic points of larger periods. And it needs to apply to models that allow an arbitrary (finite) number of states for its variables, such as logical models. In this paper, we have focused on Boolean networks as the model type most commonly used currently. And we have focused only on steady state analysis, at the exclusion of periodic limit cycles. As is the case in many situations, algorithms available for this purpose, some of which we used here for comparison, perform well on some types of models and not so well on others. For instance, for Kaufmann networks with connectivity 2, the method in [36] outperforms all other methods, including ours. The method in [26] is generally slower than our method in computing steady states, but has the added capability that it also finds limit cycles of larger lengths, which our method is not currently equipped to do.
We have used three types of networks for benchmarking: Kauffman networks, power law networks, and published networks. Kauffman networks are commonly used for this purpose, but they don’t capture all properties of molecular networks, which include a power law distribution of node connectivities. Our analysis of published networks shows that some of them have high average connectivity, not generally considered in theoretical studies. These pose serious challenges to computational methods, as we demonstrate. As more large published networks become available, they will represent the most important suite of benchmark models to be used, in our opinion.
We believe that this study also holds another important lesson. Our method is a combination of two methods, neither one of which performs particularly well when applied on its own (see Additional file 1). In combination, however, they are quite powerful: model reduction plus polynomial algebra. This might point towards a general strategy for other algorithms of this type. Nonetheless, as our calculations show, the challenge of finding steady states is far from solved in general, even for existing published models. Thus, much work remains to be done.
Competing interests
The authors declare that they have no competing interests.
Authors’ contributions
AVC designed and applied the graph reduction methods, and combined them with the computer algebra algorithm. He also generated the suite of benchmark networks used in the study. BA implemented the graph reduction methods. He also surveyed the literature for other available methods and carried out and collected performance data for the other methods used in the study for comparison. FH carried out Gröbner basis calculations for a subset of the benchmark networks. RL conceived, planned, and directed the project. All authors contributed to the writing of the manuscript. All authors read and approved the final manuscript.
Acknowledgements
The work of R.L. was supported in part by the grant PlantSimLab: A Simulation Laboratory for Plant Biology, funded by NSF, Award Number DBI1146819. F.H. did the work at MBI (NSF award 0635561).
References

Zhang Y, Qian M, Ouyang Q, Deng M, Li F, Tang C: Stochastic model of yeast cellcycle network.

Davidich M, Bornholdt S: Boolean network model predicts cell cycle sequence of fission yeast.

Kauffman S, Peterson C, Samuelsson B, Troein C: Random Boolean network models and the yeast transcriptional network.

Sahin O, Frohlich H, Lobke C, Korf U, Burmester S, Majety M, Mattern J, Schupp I, Chaouiya C, Thieffry D, Poustka A, Wiemann S, Beissbarth T, Arlt D.: Modeling ERBB receptorregulated g1/s transition to find novel targets for de novo trastuzumab resistance.

Klamt S, SaezRodriguez J, Lindquist J, Simeoni L, Gilles E: A methodology for the structural and functional analysis of signaling and regulatory networks.

Li F, Long T, Lu Y, Ouyang Q, Tang C: The yeast cellcycle network is robustly designed.

Albert R, Othmer H: The topology of the regulatory interactions predicts the expression pattern of the segment polarity genes inDrosophila melanogaster.

Mai Z, Liu H: Boolean networkbased analysis of the apoptosis network: Irreversible apoptosis and stable surviving.

VelizCuba A, Stigler B: Boolean models can explain bistability in thelac operon.

Mendoza L, Xenarios I: A method for the generation of standardized qualitative dynamical systems of regulatory networks.

Murrugarra D, VelizCuba A, Aguilar B, Arat S, Laubenbacher R: Modeling stochasticity and variability in gene regulatory networks.

Hinkelmann F, Murrugarra D, Jarrah A, Laubenbacher R: A mathematical framework for agent based models of complex biological networks.

Singh A, Nascimento J, Kowar S, Busch H, Boerries M: Boolean approach to signalling pathway modelling in hgfinduced keratinocyte migration.

SaezRodriguez J, Simeoni L, Lindquist J, Hemenway R, Bommhardt U, Arndt B, Haus U, Weismantel R, Gilles E, Klamt S, Schraven B: A logical model provides insights into t cell receptor signaling.

Raza S, Robertson K, Lacaze P, Page D, Enright A, Ghazal P, Freeman T: A logicbased diagram of signalling pathways central to macrophage activation.

Kazemzadeh L, Cvijovic M, Petranovic D: Boolean model of yeast apoptosis as a tool to study yeast and human apoptotic regulations.

Madrahimov A, Helikar T, Kowal B, Lu G, Rogers J: Dynamics of influenza virus and human host interactions during infection and replication cycle.

Saadatpour A, Wang R, Liao A, Liu X, Loughran T, Albert I, Albert R: Dynamical and structural analysis of a Tcell survival network identifies novel candidate therapeutic targets for large granular lymphocyte leukemia.

Zhang R, Shah M, Yang J, Nyland S, Liu X, Yun J, Albert R, Loughran T: Network model of survival signaling in large granular lymphocyte leukemia.

Samaga R, SaezRodriguez J, Alexopoulos L, Sorger P, Klamt S: The logic of EGFR/ErbB signaling: theoretical properties and analysis of highthroughput data.

Helikar T, Konvalina J, Heidel J, Rogers J: Emergent decisionmaking in biological signal transduction networks.

Helikar T, Kochi N, Kowal B, Dimri M, Naramura M, Raja S, Band V, Band H, Rogers J: A comprehensive, multiscale dynamical model of ErbB receptor signal transduction in human mammary epithelial cells.

Akutsu T, Kuhara S, Maruyama O, Miyano S: A system for identifying genetic networks from gene expression patterns produced by gene disruptions and overexpressions.

Zhao Q: A remark on “scalar equations for synchronous Boolean networks with biological applications” by C. Farrow, J. Heidel, J. Maloney, and J. Rogers.

Zañudo J, Albert R: An effective network reduction approach to find the dynamical repertoire of discrete dynamic networks.

Saadatpour A, Albert I, Albert R: Attractor analysis of asynchronous Boolean models of signal transduction networks.

Naldi A, Remy E, Thieffry D, Chaouiya C: A reduction of logical regulatory graphs preserving essential dynamical properties. In Computational Methods in Systems Biology. Lecture Notes in Computer Science. Volume 5688. Edited by Degano P, Gorrieri R. Heidelberg, Germany: Springer; 2009:266280.

VelizCuba A, Jarrah A, Laubenbacher R: Polynomial algebra of discrete models in systems biology.

Hinkelmann F, Brandon M, Guang B, McNeill R, Blekherman G, VelizCuba A, Laubenbacher R: ADAM: Analysis of discrete models of biological systems using computer algebra.

Zou Y: An algorithm for detecting fixed points of Boolean network. In Complex Medical Engineering (CME), 2013 ICME International Conference On. Piscataway, New Jersey: IEEE; 2013:670673.

Devloo V, Hansen P, Labbé M: Identification of all steady states in large networks by logical analysis.

Tamura T, Akutsu T: Detecting a singleton attractor in a Boolean network utilizing SAT algorithms.
IEICE Trans Fundam Electron Commun Comput Sci 2009, E92A(2):493501.

Dubrova E, Teslenko M: A SATbased algorithm for finding attractors in synchronous Boolean networks.
IEEE/ACM Trans Comput Biol Bioinformatics 2011, 8(5):13931399.

Melkman A, Tamura T, Akutsu T: Determining a singleton attractor of an AND/OR Boolean network inO(1.587^{n}) time.

Tamura T, Hayashida M, Akutsu T: Integer programmingbased methods for attractor detection and control of boolean networks. In Proceedings of the 48th IEEE Conference on Decision and Control held jointly with the 28th Chinese Control Conference. CDC/CCC 2009. Piscataway, New Jersey; 2009:56105617.
doi: 10.1109/CDC.2009.5400017

Zhang S, Hayashida M, Akutsu T, Ching W, Ng M: Algorithms for finding small attractors in Boolean networks.

Zheng D, Yang G, Li X, Wang Z, Liu F, He L: An efficient algorithm for computing attractors of synchronous and asynchronous Boolean networks.

Garg A, Di Cara A, Xenarios I, Mendoza L, De Micheli G: Synchronous versus asynchronous modeling of gene regulatory networks.

Dubrova E, Teslenko M, Martinelli A: Kauffman networks: analysis and applications. In Proceedings of the 2005 IEEE/ACM International Conference on Computeraided Design. ICCAD ’05. Piscataway, New Jersey: IEEE Computer Society; 2005:479484.

Naldi A, Thieffry D, Chaouiya C: Decision diagrams for the representation and analysis of logical models of genetic networks. In Computational Methods in Systems Biology. Lecture Notes in Computer Science. Edited by Calder M, Gilmore S. Heidelberg, Germany: Springer; 2007:233247.

VelizCuba A, Buschur K, Hamershock R, Kniss A, Wolff E, Laubenbacher R: ANDNOT logic framework for steady state analysis of Boolean network models.

VelizCuba A, Laubenbacher R, Aguilar B: Dimension reduction of large ANDNOT network models.
2013.
arxiv.org/abs/1311.6868

Grayson D, Stillman M: Macaulay 2, a software system for research in algebraic geometry. Available at [http://www.math.uiuc.edu/Macaulay2/ webcite]

Siek J, Lee L, Lumsdaine A: Boost graph library.
2000.

Sarrazin P: BoolStuff Library.
2013.

Murrugarra D, Laubenbacher R: Regulatory patterns in molecular interaction networks.

Kauffman S, Peterson C, Samuelsson B, Troein C: Genetic networks with canalyzing Boolean rules are always stable.

Raeymaekers L: Dynamics of Boolean networks controlled by biologically meaningful functions.

Helikar T, Kowal B, McClenathan S, Bruckner M, Rowley T, Madrahimov A, Wicks B, Shrestha M, Limbu K, Rogers J: The cell collective: toward an open and collaborative approach to systems biology.