We use Most Permissive Boolean Networks to analyse the Boolean model published in (Cohen et al., 2015) which shows cell fate decision processes related to tumour development.

In [1]:

```
import ginsim
from colomoto_jupyter import tabulate
```

In [2]:

```
import mpbn
```

In [3]:

```
lrg = ginsim.load("https://zenodo.org/record/3719029/files/SuppMat_Model_Master_Model.zginml?download=1")
ginsim.show(lrg)
```

Out[3]:

In [4]:

```
bn = ginsim.to_minibn(lrg)
mbn = mpbn.MPBooleanNetwork(bn)
len(mbn) # display number of nodes
```

Out[4]:

In [5]:

```
inputs = ["DNAdamage", "ECMicroenv"]
outputs = ["Apoptosis","CellCycleArrest","EMT","Invasion","Migration","Metastasis"]
```

Let us first compute the full list of attractors of the MPBN.

In [6]:

```
%time a = list(mbn.attractors())
tabulate(a, columns=outputs)
```

Out[6]:

Remark they are all fixed points and thus match exactly with the attractors using asynchronous BNs.

Starting from all nodes but inputs to 0, we are interested in the set of reachable attractors, whatever the value of input nodes.

In [7]:

```
initial_condition = dict([(n,0) for n in bn if n not in inputs])
```

Let us first compute the reachable attractors in the wild type model. They match with the full attract listing.

In [8]:

```
%time a = list(mbn.attractors(reachable_from=initial_condition))
tabulate(a, columns=outputs)
```

Out[8]:

Now, we apply the Notch gain of function, and predict, as MaBoSS with asynchronous BNs, the loss of apoptotic attractor reachability.

In [9]:

```
mbn_mut = mbn.copy()
mbn_mut["NICD"] = 1
%time a = list(mbn_mut.attractors(reachable_from=initial_condition))
tabulate(a, columns=outputs)
```

Out[9]:

Adding p53 loss of function, leads, as MaBoSS, only to the metastatic attractor.

In [10]:

```
mbn_mut["p53"] = 0
%time a = list(mbn_mut.attractors(reachable_from=initial_condition))
tabulate(a, columns=outputs)
```

Out[10]:

In [ ]:

```
```