Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
daemontus committed Oct 3, 2024
1 parent daa9287 commit 7e3e45e
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,24 @@
[![GitHub issues](https://img.shields.io/github/issues/jcrozum/biobalm?style=flat-square)](https://github.com/jcrozum/biobalm/issues)
[![License](https://img.shields.io/pypi/l/biobalm?style=flat-square)](https://github.com/jcrozum/biobalm/blob/main/LICENSE)

# Boolean Attractor Landscape Mapper (biobalm)
# Boolean Attractor Landscape Mapper (`biobalm`)

biobalm is a Python library for exploring the attractor landscape of large-scale Boolean networks with hundreds or thousands of variables. It combines symbolic (BDD) and automated (ASP) reasoning to efficiently construct a *succession diagram* of a Boolean network: an inclusion-based acyclic graph of the network's trap spaces. biobalm can then use this succession diagram to accelerate attractor search and infer control strategies for target trap spaces.
`biobalm` is a Python library for exploring the attractor landscape of large-scale Boolean networks with hundreds or thousands of variables. It combines symbolic (BDD) and automated (ASP) reasoning to efficiently construct a *succession diagram* of a Boolean network: an inclusion-based acyclic graph of the network's trap spaces. biobalm can then use this succession diagram to accelerate attractor search and infer control strategies for target trap spaces.

> `biobalm` is accompanied by an analysis artefact that benchmarks it against `pystablemotifs`, `mts-nfvs` and `aeon.py`. The artefact also compares the succession diagrams generated by published biological Boolean networks to random network ensembles and finds significant differences in structure. The artefact is available at [Zenodo](https://doi.org/10.5281/zenodo.13854760) and [Github](https://github.com/jcrozum/balm-analysis).
### Installation

biobalm is on PyPI: **TODO: PyPI release coming soon. Use git method (below).**
`biobalm` is on PyPI:

```
pip install biobalm
```

The base installation allows you to generate succession diagrams and control strategies, plus some easier-to-find attractors. However, to enable the full attractor detection functionality, you need to also install `pint` and `mole`:
The base installation should enable all core functionalities (generate succession diagrams and control strategies, find attractor seeds states and attractor sets). Optionally, you can also use `pint` during attractor identification as a static analysis step:

- Native binaries of `pint` can be obtained [here](https://loicpauleve.name/pint/doc/#Binaries).
- Download `mole` [here](http://www.lsv.fr/~schwoon/tools/mole/), compile it (simply run `make`), and make sure the result is in your `$PATH`.


You can also install the latest version of biobalm directly from github:

```
Expand All @@ -30,11 +31,23 @@ pip install git+https://github.com/jcrozum/biobalm.git@main

### Referencing biobalm

**TODO: A publication describing biobalm in detail will be available soon. Until then, please link this github repository instead.**
`biobalm` is on [bioRxiv](https://www.biorxiv.org/content/10.1101/2024.09.30.615897v1):

### Using biobalm
```
@article {biobalm,
author = {Trinh, Van-Giang and Park, Kyu Hyong and Pastva, Samuel and Rozum, Jordan C},
title = {Mapping the attractor landscape of Boolean networks},
elocation-id = {2024.09.30.615897},
year = {2024},
doi = {10.1101/2024.09.30.615897},
publisher = {Cold Spring Harbor Laboratory},
URL = {https://www.biorxiv.org/content/early/2024/10/02/2024.09.30.615897},
eprint = {https://www.biorxiv.org/content/early/2024/10/02/2024.09.30.615897.full.pdf},
journal = {bioRxiv}
}
```

To learn more about how biobalm functions, you can explore the example notebooks listed below. Alternatively, biobalm's API documentation is also available [online](https://jcrozum.github.io/biobalm/).
### Using biobalm

**TODO: Usage examples coming soon.**
To learn more about how biobalm functions, API documentation is available [online](https://jcrozum.github.io/biobalm/). You can also explore the analysis artefact mentioned above for more in-depth examples of biobalm usage.

1 comment on commit 7e3e45e

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Coverage Report
FileStmtsMissCoverMissing
biobalm
   _pint_reachability.py615018%24, 40–54, 69–93, 101–146
   control.py1492881%108, 120, 126, 130, 135, 144–160, 173, 417–436, 558, 561, 574
   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.py4499379%6, 128, 218–223, 236, 283–290, 394–401, 418–419, 429, 435, 551, 638–644, 760, 763, 858–872, 903–921, 953, 963, 1006, 1013, 1064, 1082, 1104, 1220, 1411–1439, 1457, 1490, 1521, 1532, 1540, 1583, 1595, 1600
   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.py68691%6, 36, 49, 64, 101, 116
   expand_source_SCCs.py1111686%11–13, 50, 69, 77, 82, 103, 112, 120, 131, 140, 143, 167, 179, 242–243
   expand_source_blocks.py1231985%10, 31, 43–46, 68, 75, 83, 142, 168, 177, 208, 216–217, 221, 231, 237, 246
   expand_to_target.py31390%6, 38, 43
biobalm/_sd_attractors
   attractor_candidates.py2809168%13–15, 27–28, 94, 102, 108–109, 153, 162, 184, 219, 225–236, 255, 271–352, 357, 361, 367, 373, 388, 415, 420, 424, 430, 432–470, 543, 614–615, 716
   attractor_symbolic.py2244082%6–7, 39–40, 54–68, 77, 95, 102, 107, 112, 193, 206–210, 221, 230, 262, 298, 328–330, 349, 359–361, 371, 380, 422, 442, 449
TOTAL225442181% 

Tests Skipped Failures Errors Time
361 0 💤 0 ❌ 0 🔥 1m 1s ⏱️

Please sign in to comment.