The BooN project provides a complete set of functionalities for Boolean Network (BooN) analysis. It was originally designed to explore the modeling of genetic networks by Boolean networks. The documentation related to the functions can be found here: https://franck-delaplace.github.io/BooN/. The project includes:
- the definition of a Boolean network with the possibility to load and save it;
- the computation of the model of dynamics with respect to a mode policy;
- the definition of the interaction graph including a modular decomposition of the interaction;
- the computation of equilibria based on dynamics model;
- the efficient symbolic computation of stable states based on SAT solver;
- the controllability analysis predicting which variables must be frozen to reach the expected goal at stable states based on possibility and necessity query;
- also different basic functionalities are included as: update formula and importing/exporting to a text file the Boolean network.
The BooN project comprises 3 modules:
-
boon
module is related to the manipulation of Boolean network named BooN which is an object. -
logic
module includes basic functions on propositional formula, as well as more advanced features like fast CNF conversion for large formulas, CNF conversion using Tseitin's method, and prime implicant calculation. These functions are used in the BooN modules. - The
boonify
module is the graphical interface manipulating BooN: computation of dynamical model for synchronous and asynchronous mode, the computation ot the stable states, and the controllability analysis. For exploring BooN interactively runboonify.py
example.py
illustrates the different functionalities of BooN.
breast-cancer-study.py
is a python program defining all the steps of the analysis using boon.py
library.
This example aims to identify the causes of breast cancer and to predict the therapeutic targets.
breast-cancer.boon
contains the Boolean network related to breast cancer study that can be used interactively with boonify.py
.
The analysis is decomposed in two phases: first, we will consider the prediction of mutations causing breast cancer,
and then the prediction of therapeutic actions by cancer type in order to cure BRCA1 cancer. In this section, we will detail the operations to apply with boonify.py
in order to achieve these predictions.
Following and testing this scenario will contribute to a deeper understanding of the potentiality of BooN for regulatory network analysis and its philosophy.
- first open
breast-cancer.boon
file. The model depicts a regulatory network in normal cell conditions. - Compute the stable stables. Two possible stable states are shown which respectively correspond to the apoptosis and the cellular division initiation. Recall that each stable state is presumably associated to a characteristic phenotype.
- A cancerous situation corresponds here to a particular hallmark of cancer which is the loss of apoptosis. Cell division thus becomes the only phenotype describing the development of metastases.
- The biomarkers are CyC1 and Bax. When
CycD1=False, Bax=True
at stable state, such situation corresponds to apoptosis. By contrast, whenCycD1=True, Bax=False
the stable state represents the cell division. Please check these bio-marking at stable states for the initial normal cell condition. - The onset of cancer is thus linked to the inhibition of apoptosis,
which is indicated by the absence of its respective marking at stable state, namely:
CycD1=False, Bax=True
. - To describe cancerous conditions, open the Controllability window and set Cyc1 to False and Bax to True in the Destiny sheet.
- Then, select [Avoid] and [Necessity]. The programmed query is thus: 'There is never a stable state where
Cyc1=False, Bax=True
.' - Execute this query. 3469 Models are produced and 9 solutions are found. Note that a large number of models may require significant computational time.
- The mutations required to trigger breast cancer are described by the solutions. Please check the validity of these predictions in literature. Some corresponds to a single mutation (Solution 1 to
- Among the solutions describing mutation causing cancer, we do focus on BRCA1 mutation. Hence, select BRCA1=False (Solution 4) and apply it. Normally, the Controllability window closes.
- You can check that the modification is applied by opening the BooN View window, and you can also verify that the stable states have changed.
Cyc1=False,Bax=True
has disappeared. - Now, we examine the conditions for curing BRCA1-cancer. Open the Controllability window again.
- The therapeutic actions thus must recover the apoptosis.
- Again, fix Cyc1 to False and Bax to True.
- Moreover, open the observer sheet and also check BRCA1 for excluding it to the potential targets since the mutation definitively freezes its state.
- Select [Reach] and [Possibility]. The programmed query is thus: 'There exists a stable state having
Cyc1=False, Bax=True
'. - Execute this query. Notice that the Possibility is always far faster then the necessity. Three solutions are available. Please check their validity in literature.
- Note that among the solutions, the controllability discover that inhibiting PARP1 is a potential therapeutic target. Actually, PARP1 is the lethal partner of BRCA1 enabling targeted cancerous therapy, and the lethal partners are hard to discover.
-
pip install .
- or,
python -m pip install .
Causal Reasoning on Boolean Control Networks Based on Abduction: Theory and Application to Cancer Drug Discovery
Celia Biane, Franck Delaplace
IEEE/ACM Trans Computer Biology & Bioinformatics . 2019 Sep-Oct;16(5):1574-1585.
PMID: 30582550 - DOI: 10.1109/TCBB.2018.2889102