CSC277 - Project 6
Gene Regulatory Networks


Gene Regulatory Networks can be modeled by a collection of Boolean nodes (taking on the values of 0 or 1), each of which has K parents that influence the state of that node in the subsequent timestep. Each node then has a truth table which determines the outcome of the next timestep.

Algorithm

Write a program to calculate the basin of attraction for a Boolean network of size N with each node having K parents:

booleanNetwork <N> <K> 

We are interested in two networks. First, the network itself, showing the parents of each node. Second, we are interested in the network of connections between the states of the network, such that we identify all basins of attraction. Our algorithm is as follows:

booleanNetwork(N, K):
    Create the dependency matrix, N x K, to show the K parents for each of the N nodes.
    	The parents are chosen with replacement, so a node can have two parents that are the same.
	Output a graph to be read by dot for the network connections
    Create the transition matrix, 2 ** K * N, to detail the outcome of the network
    	in all possible circumstances of the parents.  These are selected uniformly from 0 and 1.
	Find the basins of attraction graph (ie. find the successor of each possible state of the
		network.)  
	Output this graph to be read by dot.

Output

Your output should be two files, readable by dot on the Wright 105 lab machines.

Testing

Test your above algorithm for two runs of N = 6, where K = 1, 2, and 3. Draw the network and its basin of attraction in dot. Report on the differences found for the changes in K.

Turn in your code and sample output from testing in your csc277 directory on the cs.centenary.edu server in a project6 folder.