generateTimeSeries: Generate time series from a network

Description Usage Arguments Value See Also Examples

View source: R/generateTimeSeries.R

Description

Generates time series by simulating successive state transitions from random start states. In addition, the resulting matrices can be perturbed by Gaussian noise.

Usage

1
2
3
4
5
6
7
generateTimeSeries(network, 
                   numSeries, 
                   numMeasurements, 
                   type = c("synchronous","asynchronous","probabilistic"),
                   geneProbabilities, 
                   perturbations = 0,
                   noiseLevel = 0)

Arguments

network

An object of class BooleanNetwork or SymbolicBooleanNetwork that contains the network for which time series are generated

numSeries

The number of random start states used to generate successive series of states, that is, the number of time series matrices to generate

numMeasurements

The number of states in each of the time series matrices. The first state of each time series is the randomly generated start state. The remaining numMeasurements - 1 states are obtained by successive state transitions.

type

The type of state transitions to be performed (see stateTransition)

geneProbabilities

An optional vector of probabilities for the genes if type="asynchronous". By default, each gene has the same probability to be chosen for the next state transition. These probabilities can be modified by supplying a vector of probabilities for the genes which sums up to one.

perturbations

If this argument has a value greater than 0, artificial perturbation experiments are generated. That is, perturbations genes in each time series are knocked out or overexpressed artificially using the fixGenes function.

noiseLevel

If this is non-zero, it specifies the standard deviation of the Gaussian noise which is added to all entries of the time series matrices. By default, no noise is added to the time series.

Value

A list of matrices, each corresponding to one time series. Each row of these matrices contains measurements for one gene on a time line, i. e. column i+1 contains the successor states of column i+1. If noiseLevel is non-zero, the matrices contain real values, otherwise they contain only 0 and 1.

If perturbations>0, the result list contains an additional matrix perturbations specifying the artificial perturbations applied to the different time series. This matrix has numSeries columns and one row for each gene in the network. A matrix entry is 0 for a knock-out of the corresponding gene in the corresponding time series, 1 for overexpression, and NA for no perturbation.

The result format is compatible with the input parameters of binarizeTimeSeries and reconstructNetwork.

See Also

stateTransition, binarizeTimeSeries, reconstructNetwork

Examples

1
2
3
4
5
6
7
8
9
# generate noisy time series from the cell cycle network
data(cellcycle)
ts <- generateTimeSeries(cellcycle, numSeries=50, numMeasurements=10, noiseLevel=0.1)

# binarize the noisy time series
bin <- binarizeTimeSeries(ts, method="kmeans")$binarizedMeasurements

# reconstruct the network
print(reconstructNetwork(bin, method="bestfit"))

Example output

Probabilistic Boolean network with 10 genes

Involved genes:
CycD Rb E2F CycE CycA p27 Cdc20 Cdh1 UbcH10 CycB

Transition functions:

Alternative transition functions for gene CycD:
CycD = <f(CycD){01}> (probability: 1, error: 0)

Alternative transition functions for gene Rb:
Rb = <f(CycD,CycE,CycA,p27,CycB){10100010001000100000000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100010001000100010000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100010001100100000000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100010001100100010000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100110001000100000000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100110001000100010000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100110001100100000000000000000}> (probability: 0.125, error: 0)
Rb = <f(CycD,CycE,CycA,p27,CycB){10100110001100100010000000000000}> (probability: 0.125, error: 0)

Alternative transition functions for gene E2F:
E2F = <f(Rb,CycA,p27,CycB){1010001000000000}> (probability: 1, error: 0)

Alternative transition functions for gene CycE:
CycE = <f(Rb,E2F){0100}> (probability: 1, error: 0)

Alternative transition functions for gene CycA:
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000000000000000000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000000000000001000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000000000100000000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000000000100001000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000100000000000000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000100000000001000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000100000100000000000}> (probability: 0.125, error: 2)
CycA = <f(Rb,E2F,Cdc20,Cdh1,UbcH10){11000000111000100000100001000000}> (probability: 0.125, error: 2)

Alternative transition functions for gene p27:
p27 = <f(CycD,CycE,CycA,p27,CycB){10100010001000000000000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100010001000000010000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100010001100000000000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100010001100000010000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100110001000000000000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100110001000000010000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100110001100000000000000000000}> (probability: 0.125, error: 0)
p27 = <f(CycD,CycE,CycA,p27,CycB){10100110001100000010000000000000}> (probability: 0.125, error: 0)

Alternative transition functions for gene Cdc20:
Cdc20 = <f(CycB){01}> (probability: 1, error: 0)

Alternative transition functions for gene Cdh1:
Cdh1 = <f(CycA,p27,Cdc20,CycB){1011101100111011}> (probability: 1, error: 0)

Alternative transition functions for gene UbcH10:
UbcH10 = <f(Cdc20,Cdh1,UbcH10,CycB){1111000111110011}> (probability: 1, error: 0)

Alternative transition functions for gene CycB:
CycB = <f(Cdc20,Cdh1){1000}> (probability: 1, error: 0)

BoolNet documentation built on May 2, 2019, 2:51 p.m.