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].