BoolNet-package {BoolNet} | R Documentation |
Tools for reconstruction, analysis and visualization of synchronous, asynchronous and probabilistic Boolean networks, in particular for the identification of attractors in gene-regulatory networks
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:
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 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.
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 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
.
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>
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.
################################## # 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))