File Exchange

image thumbnail

Random Boolean Network Creation, Simulation, and Prediction Toolbox (RaBooNet)

version 1.0 (23.5 KB) by

Allows for creation, simulation, and prediction of random Boolean networks.

6 Downloads

Updated

View License

**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:
1) NetworkAndSampleCreation
Key functionality:
'makeLeveledHierarchy' - creates a modular, hierarchical
network structure.
'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.

2) LearningFunctions
Key functionality:

'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',
and 'longerScript90NodeNetwork.'

Before running these, be sure to add the paths in Matlab:

addpath('./NetworkAndSampleCreation')
addpath('./LearningFunctions')

Comments and Ratings (6)

Hi Priya,

Here's a workaround to check that a graph is fully connected:

%Let N=number of nodes in graph.
%Instantiate the degree matrix, D
D=zeros(N,N);

%compute complete degree of each node %using adjacency matrix and for node i, %store this info in D(i,i).

for i=1:N
%sum along ith row
outdegreeOfNode=sum(A(i,:));

%sum along ith column
indegreeOfNode=sum(A(:,i));

D(i,i)=outdegreeOfNode+indegreeOfNode;
end

%compute laplacian = D-A
Laplac=D-A;

%if rank of Laplac is full, then the %graph is completely connected.

if(rank(Laplac)==N)
%graph completely connected
else
%graph disjoint
%try makeLeveledHierarchy again
end

Hi Priya,

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.

Best,
Dana

David Craft

Dana - thanks for this toolbox and the fixes. This is great!

Priya Arasu

Does digraph require multivariate analysis toolbox?

Hi Priya,

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.

Priya Arasu

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

Updates

1.0

**Updated on 01/04/2017**
Does not require bioinformatics toolbox.

1.0

**Updated on 12/21/2016**
Fixed problem with scripts/added summary printout

MATLAB Release
MATLAB 8.6 (R2015b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video