R: Construction, Simulation and Analysis of Boolean Networks

BoolNet-package {BoolNet} | R Documentation

## 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

### 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`.

### Author(s)

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>

### 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

    ##################################
    # 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))

[Package BoolNet version 2.1.4 Index]