Murali-group / BoolODE

Git Repo for simulating Boolean Models
GNU General Public License v3.0
32 stars 15 forks source link

Fixing rate parameters to defaults #11

Open ghost opened 4 years ago

ghost commented 4 years ago

Depending on the input network(attached) the execution of BoolODE gets stuck after printing Fixing

rate parameters to defaults

100_nodes_0.5_density.txt

amoghpj commented 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.