Boolean network

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. Lua error in package.lua at line 80: module 'strict' not found.

File:Hou710 BooleanNetwork.svg
State space of a Boolean Network with N=4 nodes and K=1 links per node. Nodes can be either switched on (red) or off (blue). Thin (black) arrows symbolise the inputs of the Boolean function which is a simple "copy"-function for each node. The thick (grey) arrows show what a synchronous update does. Altogether there are 6 (orange) attractors, 4 of them are fixed points.

A Boolean network consists of a discrete set of Boolean variables each of which has a Boolean function (possibly different for each variable) assigned to it which takes inputs from a subset of those variables and output that determines the state of the variable it is assigned to. This set of functions in effect determines a topology (connectivity) on the set of variables, which then become nodes in a network. Usually, the dynamics of the system is taken as a discrete time series where the state of the entire network at time t+1 is determined by evaluating each variable's function on the state of the network at time t. This may be done synchronously or asynchronously.

Although Boolean networks are a crude simplification of genetic reality where genes are not simple binary switches, there are several cases where they correctly capture the correct pattern of expressed and suppressed genes.[1][2] The seemingly mathematical easy (synchronous) model was only fully understood in the mid 2000s.[3]

Classical model

A Boolean network is a particular kind of sequential dynamical system, where time and states are discrete, i.e. both the set of variables and the set of states in the time series each have a bijection onto an integer series. Boolean networks are related to cellular automata.

A random Boolean network (RBN) is one that is randomly selected from the set of all possible boolean networks of a particular size, N. One then can study statistically, how the expected properties of such networks depend on various statistical properties of the ensemble of all possible networks. For example, one may study how the RBN behavior changes as the average connectivity is changed.

The first Boolean networks were proposed by Stuart A. Kauffman in 1969, as random models of genetic regulatory networks[4] but their mathematically understanding only started in the 2000's.[5]

Attractors

Since a Boolean network has only 2N possible states, a trajectory will sooner or later reach a previously visited state, and thus, since the dynamics are deterministic, the trajectory will fall into a cycle. In the literature in this field, each cycle is also called an attractor (though in the broader field of dynamical systems a cycle is only an attractor if perturbations from it lead back to it). If the attractor has only a single state it is called a point attractor, and if the attractor consists of more than one state it is called a cycle attractor. The set of states that lead to an attractor is called the basin of the attractor. States which occur only at the beginning of trajectories (no trajectories lead to them), are called garden-of-Eden states[6] and the dynamics of the network flow from these states towards attractors. The time it takes to reach an attractor is called transient time.[3]

With growing computer power and increasing understanding of the seemingly simple model, different authors gave different estimates for the mean number and length of the attractors, here a brief summary of key publications.[7]

Author Year Mean attractor length Mean attractor number comment
Kauffmann [4] 1969 \langle A\rangle\sim \sqrt{N} \langle\nu\rangle\sim \sqrt{N}
Bastolla/ Parisi[8] 1998 faster than a power law, \langle A\rangle > N^x \forall x faster than a power law, \langle\nu\rangle > N^x \forall x first numerical evidences
Bilke/ Sjunnesson[9] 2002 linear with system size, \langle\nu\rangle \sim N
Socolar/Kauffman[10] 2003 faster than linear, \langle\nu\rangle > N^x with x > 1
Samuelsson/Troein[11] 2003 superpolynomial growth, \langle\nu\rangle > N^x \forall x mathematical proof
Mihaljev/Drossel[12] 2005 faster than a power law, \langle A\rangle > N^x \forall x faster than a power law, \langle\nu\rangle > N^x \forall x

Stability

The stability of Boolean networks depends on the connections of their nodes. A Boolean network can exhibit stable, critical or chaotic behavior. This phenomenon is governed by a critical value of the average number of connections of nodes (K_{c}), and can be characterized by the Hamming distance as distance measure. In the unstable regime, the distance between two initially close states on average grows exponentially in time, while in the stable regime it decreases exponentially. In the critical regime, the Hamming distance is small compared with the number of nodes (N) in the network.

For N-K-model[13] the network is stable if K<K_{c}, critical if K=K_{c}, and unstable if K>K_{c}.

The state of a given node  n_{i} is updated according to its truth table, whose outputs are randomly populated.  p_{i} denotes the probability of assigning an off output to a given series of input signals.

If  p_{i}=p=const. for every node, the transition between the stable and chaotic range depends on  p . The critical value of the average number of connections is  K_{c}=1/[2p(1-p)] .[14]

If  K is not constant, and there is no correlation between the in-degrees and out-degrees, the conditions of stability is determined by  \langle K^{in}\rangle [15][16][17] The network is stable if \langle K^{in}\rangle <K_{c}, critical if \langle K^{in}\rangle =K_{c}, and unstable if \langle K^{in}\rangle >K_{c}.

The conditions of stability are the same in the case of networks with scale-free topology where the in-and out-degree distribution is a power-law distribution:  P(K) \propto K^{-\gamma} , and \langle K^{in} \rangle=\langle K^{out} \rangle , since every out-link from a node is an in-link to another.[18]

Sensitivity shows the probability that the output of the Boolean function of a given node changes if its input changes. For random Boolean networks,  q_{i}=2p_{i}(1-p_{i}) . In the general case, stability of the network is governed by the largest eigenvalue  \lambda_{Q} of matrix  Q , where  Q_{ij}=q_{i}A_{ij} , and  A is the adjacency matrix of the network.[19] The network is stable if \lambda_{Q}<1, critical if \lambda_{Q}=1, unstable if \lambda_{Q}>1.

Varations of the model

Other topologies

One theme is to study different underlying graph topologies.

  • The homogeneous case simply refers to a grid which is simply the reduction to the famous Ising model.
  • Scale-free topologies may be chosen for Boolean networks.[20] One can distinguish the case where only in-degree distribution in power-law distributed,[21] or only the out-degree-distribution or both.

Other updating schemes

Classical Boolean networks (sometimes called CRBN, i.e. Classic Random Boolean Network) are synchronously updated. Motivated by the fact that genes usually not simultaneously changing their state,[22] different alternatives have been introduced. A common classification[23] is the following:

  • Deterministic asynchronous updated Boolean networks (DRBNs) are not synchronously updated but a deterministic still exits. A node i will be updated when t ≡ Qi (mod Pi) where t is the time step.[24]
  • The most general case is full stochastic updating (GARBN, general asynchronous random boolean networks). Here, one (or more) node(s) are selected at each computational step to be updated.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. 3.0 3.1 Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.

External links