Assignment 2

Due on 26/8/15

Random Boolean Networks
  The aim of the assignment is (i) to see how even simple models can give one insights about biological systems and (ii) to understand concepts of dynamical systems theory such as attractors and their basins.

For this we look at Random Boolean Networks that was used by Stuart Kauffman (introduced in a paper called "Metabolic stability and epigenesis in randomly constructed genetic nets", J.Theor. Biol. 22, 437-467) to study the different possible cell states that can emerge as a result of genes switching on or off the expression of other genes (through their products acting as regulatory elements/ transcription factors).

One can define it as a network consisting of N nodes, with each node being in one of two possible states (say,0 or 1) at any given time and receiving inputs from K randomly chosen nodes out of the N (these systems are also sometimes called therefore "NK networks"). For each possible arrangement of inputs that are received by a node - there are 2 raised to K such input strings possible, as each of the K nodes giving inputs can be in any of two possible states - one has to assign an output of either 0 or 1 that will define the transition rule - or truth table, to use a term that is familiar from Boolean logic - for the node. It is easy to see that there are 2 raised to 2 raised to K such rules possible, and for each node any one of these rules can be chosen. One has then a realization of the many possible random Boolean networks that can be constructed for a given N and K.

1. Create a random Boolean network with N=10 and K=2. Initially you can fix the seed of the random number generator to a given number (say, 12873545) so that you can compare your results with others. Later on you can use the machine clock to generate seeds.
Find the in-degree (number of incoming connections) and out-degree (number of outgoing connections) distribution for all the nodes of the network generated.
Then start the dynamics of the network by assigning randomly 0 or 1 as the initial state of each node. See how the "expression pattern" looks by generating a 2-dimensional image showing the states of the nodes (using color to indicate states, e.g., black for 0 and white for 1) along one axis and time along the other.

Now, generate the entire state space of the network by starting with each of the 2 raised to N possible states as the initial state and noting where the network state eventually converges to. You will notice that there will (in all likelihood) several possible end states (attractors) and they could be either time-invariant (fixed points) or periodic. Also measure the basin of attraction of each attractor by noting the number of different initial states that lead to it.
Summarize your results by displaying your result as a network where each node is a state of the RBN and directed links show to what state they flow.

You can now generate different networks (keeping N and K fixed) and see how the state space picture changes.

Next consider N=10 and K=3. How does the behavior of the system change on increasing the number of connections by a small amount ?

You may also consider what happens if you take K=1 (keeping N=10).