Learn R Programming

BoolNet (version 1.44)

generateRandomNKNetwork: Generate a random N-K Boolean network

Description

Generates a random N-K Boolean network (see Kauffman, 1969) using different configurations for the topology, the linkage, and the functions.

Usage

generateRandomNKNetwork(n, k, 
                        topology = c("fixed", "homogeneous", "scale_free"), 
                        linkage = c("uniform", "lattice"), 
                        functionGeneration = c("uniform", "biased"), 
                        simplify = FALSE, noIrrelevantGenes=TRUE, 
                        readableFunctions = FALSE, 
                        d_lattice = 1, zeroBias = 0.5, 
                        gamma = 2.5, approx_cutoff = 100)

Arguments

n
The total number of genes in the network
k
If this is a single number, this is either the maximum number of genes in the input of a transition function (for topology="fixed" and topology="scale_free") or the mean number of genes in the input of a function (for topol
topology
If set to "fixed", all transition functions of the network depend on exactly k input genes (unless there are irrelevant input genes to be removed if simplify=TRUE and noIrrelevantGenes=FALSE). If set to "homogeneo
linkage
If this parameter is "uniform", the actual input genes are drawn uniformly at random from the total k genes. If set to "lattice", only genes from the neighbourhood (i - d_lattice * k_i):(i + d_lattice * k_i) are taken, which m
functionGeneration
If set to "uniform", the truth table result column of the function is filled uniformly at random with 0 and 1. If set to "biased", a bias is introduced, where the probability of drawing a 0 is determined by the parameter zeroBias.
simplify
If this is true, simplifyNetwork is called to simplify the gene transition functions after the perturbation. This removes irrelevant input genes. Should not be used together with noIrrelevantG
noIrrelevantGenes
If set to true, gene transition functions are not allowed to contain irrelevant genes, i.e. the functions have exactly the number of input genes determined by the topology method. This means that the network cannot be simplified any further,
readableFunctions
If this is true, readable DNF representations of the truth tables of the functions are generated. These DNF are displayed when the network is printed. The DNF representations are not minimized and can thus be very long. If set to FALSE, the truth table re
d_lattice
The dimension parameter for the lattice if linkage="lattice". Defaults to 1.
zeroBias
The bias parameter for biased functions for functionGeneration="biased". Defaults to 0.5 (no bias).
gamma
The Gamma parameter of the Zeta distribution for topology="scale_free". Default is 2.5.
approx_cutoff
This parameter is only used with topology="scale_free". It sets the number of iterations in the sum used to approximate the Riemann Zeta function. Defaults to 100.

Value

  • An object of class BooleanNetwork containing the generated random network. The class latex{ }BooleanNetwork is described in more detail in loadNetwork.

Details

The function supports a high number of different configurations to generate random networks. Several of the parameters are only needed for special configurations. The generated networks have different structural properties. Refer to the literature for more details.

Constant genes are automatically fixed (e.g. knocked-out or over-expressed). This means that they are always set to the constant value, and states with the complementary value are not considered in transition tables etc. If you would like to change this behaviour, use fixGenes to reset the fixing.

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.

M. Aldana (2003), Boolean dynamics of networks with scale-free topology. Physica D 185: 45--66.

M. Aldana and S. Coppersmith and L. P. Kadanoff (2003), Boolean dynamics with random coupling. In E. Kaplan, J. E. Marsden and K. R. Sreenivasan (editors): Perspectives and Problems in Nonlinear Science, Springer.

See Also

perturbNetwork,loadNetwork, simplifyNetwork, fixGenes

Examples

Run this code
library(BoolNet)

# generate different random networks
net1 <- generateRandomNKNetwork(n=10, k=10, 
                                topology="scale_free", 
                                linkage="uniform", 
                                functionGeneration="uniform",
                                noIrrelevantGenes=FALSE, 
                                simplify=TRUE)
net2 <- generateRandomNKNetwork(n=10, k=3, 
                                topology="homogeneous", 
                                linkage="lattice", 
                                functionGeneration="uniform", 
                                d_lattice=1.5, 
                                simplify=TRUE)
net3 <- generateRandomNKNetwork(n=10, k=2, 
                                topology="fixed", 
                                linkage="uniform", 
                                functionGeneration="biased", 
                                noIrrelevantGenes=FALSE,                                
                                zeroBias=0.6)

# get attractors
print(getAttractors(net1))
print(getAttractors(net2))
print(getAttractors(net3))

Run the code above in your browser using DataLab