**Updated on 01/04/2017**
Does not require bioinformatics toolbox.
Based on the paper: http://biorxiv.org/content/early/2016/12/14/094151
The code is split into two parts:
'makeLeveledHierarchy' - creates a modular, hierarchical
'generateSamplesAndFindSSs' - creates random Boolean rules for the base
network, generates a population of samples stemming from this base network, and makes an
assortment of learning problems.
'runClassificationsRF' - uses the steady state data generated from 'generateSamplesAndFindSSs' to
classify the samples using random forest. This returns two metrics of classification
performance: classification accuracy and area under the receiver operating characteristic curve.
The above functions are well documented with examples to get you started. Understanding these will allow
you to experiment with a number of different parameters for network/sample creation and learning.
To try out the baseline problem from the paper referenced above, use the script 'longerScript180NodeNetwork.'
Depending on your computer, this could take a little time to run, but probably no more than 10-20
minutes on most modern computers. If time is of the essence, try one of the other three scripts, which in
order from shortest to longest running times will probablybe 'shortScript90NodeNetwork.m', 'shortScript180NodeNetwork',
Before running these, be sure to add the paths in Matlab:
Here's a workaround to check that a graph is fully connected:
%Let N=number of nodes in graph.
%Instantiate the degree matrix, D
%compute complete degree of each node %using adjacency matrix and for node i, %store this info in D(i,i).
%sum along ith row
%sum along ith column
%compute laplacian = D-A
%if rank of Laplac is full, then the %graph is completely connected.
%graph completely connected
%try makeLeveledHierarchy again
What version of matlab are you using? I believe digraph and graph was introduced in matlab's 2015b release. There may be another workaround for this, but I will have to look into it.
Dana - thanks for this toolbox and the fixes. This is great!
Does digraph require multivariate analysis toolbox?
Thanks for the comment. One workaround for this is to use the following command:
unique(conncomp(digraph(A), 'Type', 'Weak')).
If this returns only a '1,' then the graph is completely connected. I will update the toolbox soon so the bioinformatics toolbox is no longer needed.
Random Boolean network toolbox also requires Bioinformatics toolbox for using graphconncomp package. I could not run the short and long script as this script requires graphconncomp. The toolbox seems very promising for simulating random boolean networks
**Updated on 01/04/2017**
**Updated on 12/21/2016**