Skip to main content

Table 1 Overview of the network repair algorithm

From: Stabilization of perturbed Boolean network attractors through compensatory interactions

#

INPUT

1

A network, comprising update rules for all constituent nodes x 1, …, x N

2

The state of every node x i for every state of the attractor of interest, a s .

3

The damaged node x d and the state to which it is to be forced.

4

LCSS, set to True if a limit cycle superset is to be considered and False otherwise.

#

OUTPUT

1

The nodes whose update rules must be modified to ensure the stability of the damaged attractor, a d.

2

the viable update rule modifications, for each of the nodes from (1).

 

or

2

In the case of limit cycle repair failure, the cause of failure.

#

ALGORITHM

1

determine the damaged attractor a d.

2

if LCSS: set a d to be its superset.

 

determine the sensitive nodes:

3

for every node x i in every state s in a d:

4

 update node x i from state s with all other nodes held constant

5

 if x i changes its state as a result, it is sensitive. Record initial and final states.

6

if any sensitive node has initial and final states [0,1] and [1,0]:

7

 return "limit cycle repair failure, case 1"

 

determine all possible modifications for sensitive nodes:

8

define an empty dictionary R

9

for every sensitive node x i in every state s in a d:

10

 if the next state of x i must be OFF for repair:

11

  record all combinations of nodes that obey each rule listed in col1 of Table 1.

12

 else:

13

  record all combinations of nodes that obey each rule listed in col2 of Table 1.

14

for every sensitive node x i :

15

 set R[x i ] = the intersection of the viable (rule, node) pairs across all states in a d

16

 if R[x i ] is the empty set:

17

  determine R[x i ] when omitting states in a d where node x i 's next state is equal to its current state

18

  if R[x i ] is the empty set: return "limit cycle repair failure, case 2"

19

  else: return "limit cycle repair failure, case 3"

20

return R

  1. The algorithm used to determine interaction modifications that stabilize a network attractor in response to node damage is presented in a concise pseudo-code format. A user-friendly implementation is provided as an extension to the Python software package BooleanNet [26].