BNS tutorial for fixed points and synchronous attractors

BNS tutorial for fixed points and synchronous attractors#

The bns package provides functions for the identification of fixed points or of all synchronous attractors. These methods call the BNS tool uses a SAT solver to compute attractors of synchronous models.

import bns
from colomoto_jupyter import tabulate
tabulate(bns.fixpoints("cellcycle.cnet"))
0 1 2 3 4 5 6 7 8 9
0 0 1 0 0 0 1 0 1 0 0
tabulate(bns.attractors("cellcycle.cnet"))
0 1 2 3 4 5 6 7 8 9
0 0 0 1 0 0 0 1 0 1 0 0
1 0 1 0 0 0 0 0 1 1 1 0
5 1 0 0 0 1 0 0 0 1 1
6 1 0 0 0 1 0 1 0 1 1
4 1 0 0 1 1 0 0 0 0 0
1 1 0 1 0 0 0 0 1 1 0
2 1 0 1 1 0 0 0 1 0 0
3 1 0 1 1 1 0 0 1 0 0

The search can be restricted to attractors of a specific length. Note that an attractor on length k is also an attractor of length n*k.

This restriction is in particular used to identify only fixed points, wich are found for any length.

tabulate(bns.attractors("cellcycle.cnet", length=3))
0 1 2 3 4 5 6 7 8 9
0 0 1 0 0 0 1 0 1 0 0

Import from GINsim or bioLQM#

Models can also be imported from biolqm and ginsim objects. In that case, the names of the nodes will be used instead of a number.

import ginsim
lrg = ginsim.load("http://ginsim.org/sites/default/files/boolean_cell_cycle.zginml")

Downloading http://ginsim.org/sites/default/files/boolean_cell_cycle.zginml

tabulate(bns.attractors(lrg))
CycD Rb E2F CycE CycA p27 Cdc20 cdh1 UbcH10 CycB
0 0 0 1 0 0 0 1 0 1 0 0
1 0 1 0 0 0 0 0 1 1 1 0
5 1 0 0 0 1 0 0 0 1 1
6 1 0 0 0 1 0 1 0 1 1
4 1 0 0 1 1 0 0 0 0 0
1 1 0 1 0 0 0 0 1 1 0
2 1 0 1 1 0 0 0 1 0 0
3 1 0 1 1 1 0 0 1 0 0