Learn R Programming

BoolNet (version 2.1.8)

BoolNet-package: Construction, Simulation and Analysis of Boolean Networks

Description

Tools for reconstruction, analysis and visualization of synchronous, asynchronous and probabilistic Boolean networks, in particular for the identification of attractors in gene-regulatory networks

Arguments

Author

Christoph Müssel, Martin Hopfensitz, Dao Zhou, Hans A. Kestler

Contributors: Armin Biere (contributed PicoSAT code), Troy D. Hanson (contributed uthash macros)

Maintainer: Hans A. Kestler <hans.kestler@uni-ulm.de>

Details

Package:BoolNet
Type:Package
Version:2.1.4
Date:2018-05-23
License:Artistic-2.0
LazyLoad:yes

This package provides useful methods for the construction and generation of Boolean networks and for their analysis. In particular, it is designed for the analysis of gene-regulatory networks. The software supports four types of networks:

Synchronous Boolean networks

These networks consist of a set of Boolean variables (genes) X and a set of transition functions, one for each variable. These transition functions map an input from the set X to a Boolean value. A state is a vector of values for each of the variables in X. Then, the next state of the network is calculated by applying all transition functions to the state.

Asynchronous Boolean networks

Asynchronous networks have the same structure as synchronous Boolean networks. Yet, the next state of the network is calculating by choosing only one of the transition functions at random and updating the corresponding Boolean variable (gene). This corresponds to the assumption that in a genetic network, gene expression levels are likely to change at different points of time.

Synchronous Boolean networks with time delays

These networks additionally include dependencies on genes at time steps other than the previous time step. That is, not only the immediate predecessor state is considered to determine the next state of the network, but earlier states can be considered as well. Furthermore, it is possible to use predicates that depend on the absolute time point, i.e. the number of transitions from an initial state.

Probabilistic Boolean networks

Probabilistic networks allow for specifying more than one transition function per variable/gene. Each of these functions has a probability to be chosen, where the probabilities of all functions for one variable sum up to 1. Transitions are performed synchronously by choosing one transition function for each gene according to their probabilities and applying them to the current state.

Networks can be assembled in several ways using BoolNet: The reconstructNetwork function infers Boolean networks from time series of measurements using several popular reconstruction algorithms. binarizeTimeSeries provides a means of binarizing real-valued time series for these reconstruction algorithms. Boolean networks (synchronous, asynchronous, and probabilistic networks) can also be expressed in a description language and loaded from files using loadNetwork or stored to files using saveNetwork. Furthermore, networks can be imported from BioTapestry using loadBioTapestry and from SBML with the sbml-qual package using loadSBML. The package also includes an export to SBML (see toSBML).

Via generateRandomNKNetwork and perturbNetwork, the package supports various methods of generating random networks and perturbing existing networks for robustness analysis.

The getAttractors function identifies attractor cycles in a synchronous or asynchronous Boolean network. Attractors can be identified by exhaustive search or heuristic methods. For networks with time delays, the function simulateSymbolicModel simulates the model and identifies attractors.

The markovSimulation function identifies relevant states in probabilistic Boolean networks by performing a Markov chain simulation.

The package also provides methods to visualize state transitions and basins of attraction (plotPBNTransitions, plotStateGraph), to plot the wiring of a network (plotNetworkWiring), to plot attractor state tables (plotAttractors) and sequences of states (plotSequence), and to export them to LaTeX (attractorsToLaTeX and sequenceToLaTeX) and Pajek (toPajek).

Transition tables of the network can be analyzed using getTransitionTable. Paths from start states to their corresponding attractors are identified using getPathToAttractor.

References

S. A. Kauffman (1969), Metabolic stability and epigenesis in randomly constructed nets. J. Theor. Biol. 22:437--467.

S. A. Kauffman (1993), The Origins of Order. Oxford University Press.

Further references are listed in the corresponding help sections.

Examples

Run this code
##################################
# Example 1: identify attractors #
################################## 

# load example data
data(cellcycle)

# get all synchronous attractors by exhaustive search
attractors <- getAttractors(cellcycle)

# plot attractors side by side
par(mfrow=c(2,length(attractors$attractors)))
plotAttractors(attractors)

# identifies asynchronous attractors
attractors <- getAttractors(cellcycle, 
                            type="asynchronous", startStates=100)
                            
plotAttractors(attractors, mode="graph")

####################################
# Example 2: reconstruct a network #
####################################

# load example data
data(yeastTimeSeries)

# perform binarization with k-means
bin <- binarizeTimeSeries(yeastTimeSeries)

# reconstruct networks from transition table
net <- reconstructNetwork(bin$binarizedMeasurements, 
                          method="bestfit", maxK=3, returnPBN=TRUE)

# analyze the network using a Markov chain simulation
print(markovSimulation(net, returnTable=FALSE))

Run the code above in your browser using DataLab