Open ghost opened 4 years ago
Hi, thanks for using BoolODE!
What you are seeing is the expected behavior, and we strongly recommend against using graphs with such high densities. Note that for each node in the graph, BoolODE explicitly creates terms for every combination of regulators. For a 100-node directed graph with density 0.5, this would mean that every node has on average 50 regulators, which means that each equation will have on the order of 2^50 terms. The code will get stuck in explicitly creating these terms. Simulating such a model is bound to run into numerical issues.
We have noticed that the performance starts to decline on graphs with 30 nodes and up to 10 regulators per node. If you are dealing with graphs of larger sizes, it would be better to work with sparser graphs. We work under the assumption that "real" biological networks are typically sparse, and that a gene typically does not have more than 10 (!) regulators.
Finally, if you are aware of more efficient ways of representing large Boolean rules as ODEs, I would be more than happy to try and implement the algorithm.
Depending on the input network(attached) the execution of BoolODE gets stuck after printing Fixing
100_nodes_0.5_density.txt