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
.