diff --git a/benchmark/bench_sd_attractors_scc+att.py b/benchmark/bench_sd_attractors_scc+att.py new file mode 100644 index 00000000..e8e0b2b2 --- /dev/null +++ b/benchmark/bench_sd_attractors_scc+att.py @@ -0,0 +1,37 @@ +import sys +sys.path.append("..") + +import balm + +from biodivine_aeon import BooleanNetwork +from balm.SuccessionDiagram import SuccessionDiagram +from balm._sd_algorithms.expand_source_SCCs import expand_source_SCCs + +# Print progress and succession diagram size. +balm.SuccessionDiagram.DEBUG = True + +NODE_LIMIT = 1_000_000 +DEPTH_LIMIT = 10_000 + +# This is unfortunately necessary for PyEDA Boolean expression parser (for now). +sys.setrecursionlimit(150000) + +bn = BooleanNetwork.from_file(sys.argv[1]) +bn = bn.infer_regulatory_graph() + +# Compute the succession diagram. +sd = SuccessionDiagram(bn) +fully_expanded = expand_source_SCCs(sd, SuccessionDiagram.expand_attractor_seeds) +assert fully_expanded + +attractor_count = 0 +motif_avoidant_count = 0 + +for node in sd.node_ids(): + attr = sd.node_attractor_seeds(node, compute=True) + attractor_count += len(attr) + if not sd.node_is_minimal(node): + motif_avoidant_count += len(attr) + +print("nodes, attractors, motif-avoidant") +print(f"{len(sd)}, {attractor_count}, {motif_avoidant_count}") \ No newline at end of file diff --git a/benchmark/bench_sd_attractors_scc.py b/benchmark/bench_sd_attractors_scc.py index 7b1d118d..749d4405 100644 --- a/benchmark/bench_sd_attractors_scc.py +++ b/benchmark/bench_sd_attractors_scc.py @@ -1,14 +1,14 @@ import sys -sys.path.append(".") +sys.path.append("..") + +import balm from biodivine_aeon import BooleanNetwork -from nfvsmotifs.SuccessionDiagram import SuccessionDiagram -from nfvsmotifs._sd_algorithms.expand_source_SCCs import expand_source_SCCs -import sys -import nfvsmotifs +from balm.SuccessionDiagram import SuccessionDiagram +from balm._sd_algorithms.expand_source_SCCs import expand_source_SCCs # Print progress and succession diagram size. -nfvsmotifs.SuccessionDiagram.DEBUG = True +balm.SuccessionDiagram.DEBUG = True NODE_LIMIT = 1_000_000 DEPTH_LIMIT = 10_000