jcrozum / biobalm

The biologist's Boolean attractor landscape mapper, building Waddington landscapes from Boolean networks.
https://jcrozum.github.io/biobalm/
MIT License
2 stars 0 forks source link

Add a fallback to the fully symbolic attractor detection if the NFVS search fails #123

Closed daemontus closed 2 months ago

daemontus commented 2 months ago

This is very straightforward: if the NFVS method produces more than attractor_candidates_limit candidate states, fall back to basic symbolic search using AEON.

This is not very common (hence I added an optional flag to enable this behavior which is off by default), but it does help with a few variants of model 002 and 079 where we would otherwise just get stuck on enumerating the attractor candidate states. However, it may be necessary to manually decrease the attractor_candidates_limit to get the full performance benefit (enumerating 100_000 candidates, which is the default, still takes a lot of time).

github-actions[bot] commented 2 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
biobalm
   _pint_reachability.py615018%24, 40–54, 69–93, 101–146
   control.py1141488%107, 119, 125, 129, 134, 143–159, 477, 480, 493
   interaction_graph_utils.py52688%11–13, 151–152, 222–223
   petri_net_translation.py1491292%22–26, 79, 136, 234, 308–309, 333–334, 343, 452
   space_utils.py1322085%26–28, 104–110, 133–139, 347–350, 414, 462
   succession_diagram.py3917481%6, 123, 213–218, 231, 278–285, 389–396, 413–414, 424, 430, 546, 633–639, 755, 758, 853–867, 898–916, 948, 958, 961, 1001, 1008, 1059, 1077, 1199, 1385, 1396, 1404, 1447, 1459, 1464, 1470
   symbolic_utils.py32584%10, 39–44, 100, 128
   trappist_core.py1842388%14–18, 55, 57, 92, 215, 217, 219, 254–256, 276–282, 340, 342, 372, 420, 422
biobalm/_sd_algorithms
   expand_attractor_seeds.py60788%6, 28, 42, 109–114, 119
   expand_bfs.py28196%6
   expand_dfs.py30197%6
   expand_minimal_spaces.py42393%6, 28, 42
   expand_source_SCCs.py1111686%11–13, 50, 69, 77, 82, 103, 112, 120, 131, 140, 143, 167, 179, 242–243
   expand_source_blocks.py1212083%10, 30, 42–45, 57, 67, 74, 79, 82, 141, 167, 176, 210–211, 215, 225, 231, 240
   expand_to_target.py31390%6, 38, 43
biobalm/_sd_attractors
   attractor_candidates.py2659066%13–15, 26–27, 93, 101, 107–108, 130, 152, 187, 193–204, 223, 239–320, 325, 329, 335, 341, 356, 383, 388, 392, 398, 400–438, 511, 582–583, 684
   attractor_symbolic.py1593280%6–7, 37–38, 56, 65–81, 84, 89, 170, 183–187, 198, 207, 239, 274, 286–288, 297, 325, 331
TOTAL205137782% 

Tests Skipped Failures Errors Time
359 0 :zzz: 0 :x: 0 :fire: 57.186s :stopwatch: