Learn R Programming

BoolNet (version 1.44)

getAttractors: Identify attractors in a Boolean network

Description

Identifies attractors (cycles) in a supplied Boolean network using synchronous or asynchronous state transitions

Usage

getAttractors(network, 
              type = c("synchronous","asynchronous"), 
              method = c("exhaustive","random","chosen"), 
              startStates = list(),
              genesON = c(), genesOFF = c(), 
              canonical = TRUE,
              randomChainLength = 1000, 
              avoidSelfLoops = TRUE, 
              geneProbabilities = NULL, 
              returnTable = TRUE)

Arguments

network
A network structure of class BooleanNetwork. These networks can be read from files by loadNetwork, generated by generateRandomNKNetwork
type
If type="synchronous", synchronous state transitions are used, i.e. all genes are updated at the same time. Synchronous attractor search can be performed in an exhaustive manner or using a heuristic that starts from predefined states.

If

method
The search method to be used. If "exhaustive", attractors are identified by exhaustive search of all 2^n states (where n is the number of genes that are not set to a fixed value). This kind of search is only available for synchronous attractor search, and
startStates
The value of startStates depends on the chosen method. See method for more details.
genesON
A vector of genes whose values are fixed to 1, which reduces the complexity of the search. This is equivalent to a preceding call of fixGenes.
genesOFF
A vector of genes whose values are fixed to 0, which reduces the complexity of the search. This is equivalent to a preceding call of fixGenes.
canonical
If set to true, the states in the attractors are rearranged such that the state whose binary encoding makes up the smallest number is the first element of the vector. This ensures that attractors found by different heuristic runs of getAttractors
randomChainLength
If type="asynchronous", this parameter specifies the number of random transitions performed by the search to enter a potential attractor (see Details). Defaults to 1000.
avoidSelfLoops
If type="asynchronous" and avoidSelfLoops=TRUE, the asynchronous attractor search only enters self loops (i.e. transitions that result in the same state) if none of the possible transitions can leave the state. This results in at
geneProbabilities
If type="asynchronous", this allows to specify probabilities for the genes. By default, each gene has the same probability to be chosen for the next state transition. You can supply a vector of probabilities for each of the genes which sums u
returnTable
Specifies whether a transition table is included in the returned AttractorInfo structure. If type="asynchronous", this parameter is ignored, as the asynchronous search never returns a transition table due to the large size.

Value

  • A list of class AttractorInfo with components
  • attractorsA list of attractors. Each element is a 2-element list with the following components: [object Object],[object Object],[object Object],[object Object]
  • stateInfoA summary structure of class BooleanStateInfo containing information on the transition table. It has the following components: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object] The structure supports pretty printing using the print method.

Details

There are three different modes of attractor search: [object Object],[object Object],[object Object]

Printing the return value of getAttractors using print visualizes the identified attractors.

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.

I. Harvey, T. Bossomaier (1997), Time out of joint: Attractors in asynchronous random Boolean networks. Proc. of the Fourth European Conference on Artificial Life, 67--75.

A. Garg, A. Di Cara, I. Xenarios, L. Mendoza, G. De Micheli (2008): Synchronous versus asynchronous modeling of gene regulatory networks. Bioinformatics 24(17):1917--1925.

See Also

loadNetwork, generateRandomNKNetwork, plotAttractors, attractorsToLaTeX, getTransitionTable, getBasinOfAttraction, getStateSummary, getPathToAttractor, fixGenes

Examples

Run this code
library(BoolNet)

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

# finds the synchronous attractor with 7 states
attractors <- getAttractors(cellcycle, method="chosen",
                            startStates=list(rep(1, length(cellcycle$genes))))
plotAttractors(attractors)

# finds the attractor with 1 state
attractors <- getAttractors(cellcycle, method="chosen",
                            startStates=list(rep(0, length(cellcycle$genes))))
plotAttractors(attractors)

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

Run the code above in your browser using DataLab