perturbNetwork: Perturb a Boolean network randomly

View source: R/perturbNetwork.R

perturbNetworkR Documentation

Perturb a Boolean network randomly

Description

Modifies a synchronous, asynchronous, or probabilistic Boolean network by randomly perturbing either the functions for single genes or the state transitions. Random perturbations can be employed to assess the stability of the network.

Usage

perturbNetwork(network, 
               perturb = c("functions","transitions"), 
               method = c("bitflip","shuffle"), 
               simplify = (perturb[1]!="functions"), 
               readableFunctions = FALSE, 
               excludeFixed = TRUE, 
               maxNumBits = 1, 
               numStates = max(1,2^length(network$genes)/100))

Arguments

network

A network structure of class BooleanNetwork or ProbabilisticBooleanNetwork. These networks can be read from files by loadNetwork, generated by generateRandomNKNetwork, or reconstructed by reconstructNetwork.

perturb

If set to "functions", a transition function of a single gene is chosen at random and perturbed directly. This is the default mode. If set to "transitions", the transition table is generated, one or several state transitions are perturbed randomly, and the gene transition functions are rebuilt from the modified transition table. perturb="transitions" is only allowed for non-probabilistic networks of class BooleanNetworks.

method

The perturbation method to be applied to the functions or transitions. "bitflip" randomly inverts one or several bits (depending on the value of maxNumBits). "shuffle" generates a random permutation of the positions in the function or state and rearranges the bits according to this permutation.

simplify

If this is true, simplifyNetwork is called to simplify the gene transition functions after the perturbation. This removes irrelevant input genes. Defaults to TRUE if perturb is "transitions", and to FALSE otherwise.

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 result column is displayed.

excludeFixed

Determines whether fixed variables can also be perturbed (if set to FALSE) or if they are excluded from the perturbation (if set to TRUE). Default is TRUE.

maxNumBits

The maximum number of bits to be perturbed in one function or state. Defaults to 1.

numStates

The number of state transitions to be perturbed if perturb is "transitions". Defaults to 1

Value

Depending on the input, an object of class BooleanNetwork or ProbabilisticBooleanNetwork containing the perturbed copy of the original network is returned. The classes BooleanNetwork and ProbabilisticBooleanNetwork are described in more detail in loadNetwork.

References

Y. Xiao and E. R. Dougherty (2007), The impact of function perturbations in Boolean networks. Bioinformatics 23(10):1265–1273.

I. Shmulevich, E. R. Dougherty, W. Zhang (2002), Control of stationary behavior in probabilistic Boolean networks by means of structural intervention. Journal of Biological Systems 10(4):431–445.

See Also

loadNetwork, generateRandomNKNetwork, reconstructNetwork, simplifyNetwork

Examples

## Not run: 
# load example data
data(cellcycle)

# perturb the network
perturbedNet1 <- perturbNetwork(cellcycle, perturb="functions", method="shuffle")
perturbedNet2 <- perturbNetwork(cellcycle, perturb="transitions", method="bitflip")

# get attractors
print(getAttractors(perturbedNet1))
print(getAttractors(perturbedNet2))

## End(Not run)

BoolNet documentation built on Oct. 2, 2023, 5:08 p.m.