# Reconstruct a Boolean network from time series of measurements

### Description

Reconstructs a Boolean network from a set of time series or from a transition table using the best-fit extension algorithm or the REVEAL algorithm.

### Usage

1 2 3 4 5 6 7 8 9 |

### Arguments

`measurements` |
This can either be an object of class |

`method` |
This specifies the reconstruction algorithm to be used. If set to "bestfit", Laehdesmaeki's Best-Fit Extension algorithm is employed. This algorithm is an improvement of the algorithm by Akutsu et al. with a lower runtime complexity. It determines the functions with a minimal error for each gene. If set to "reveal", Liang's REVEAL algorithm is used. This algorithm searches for relevant input genes using the mutual information between the input genes and the output gene. |

`maxK` |
The maximum number of input genes for one gene to be tested. Defaults to 5. |

`requiredDependencies` |
An optional specification of known dependencies that must be included in reconstructed networks. This is a named list containing a vector of gene names (regulators) for each target. |

`excludedDependencies` |
Analogous to |

`perturbations` |
If |

`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. |

`allSolutions` |
If this is true, all solutions with the minimum error and up to |

`returnPBN` |
Specifies the way unknown values in the truth tables of the transition functions ("don't care" values) are processed. If |

### Details

Both algorithms iterate over all possible input combinations. While Best-Fit Extension is capable of returning functions that do not perfectly explain the measurements (for example, if there are inconsistent measurements or if `maxK`

was specified too small), REVEAL only finds functions that explain all measurements. For more information, please refer to the cited publications.

### Value

If `returnPBN=TRUE`

, the function returns an object of class `ProbabilisticBooleanNetwork`

, with each alternative function of a gene having the same probability. The structure is described in detail in `loadNetwork`

. In addition to the standard components, each alternative transition function has a component `error`

which stores the error of the function on the input time series data.
If `returnPBN=FALSE`

, the function returns an object of class `BooleanNetworkCollection`

that has essentially the same structure as `ProbabilisticBooleanNetwork`

, but does not store probabilities and keeps "don't care" values in the functions. Due to the "don't care" (*) values, this collection cannot be simulated directly. However, a specific Boolean network of class `BooleanNetwork`

can be extracted from both `BooleanNetworkCollection`

and `ProbabilisticBooleanNetwork`

structures using `chooseNetwork`

.

### References

H. Laehdesmaeki, I. Shmulevich and O. Yli-Harja (2003), On Learning Gene-Regulatory Networks Under the Boolean Network Model. Machine Learning 52:147–167.

T. Akutsu, S. Miyano and S. Kuhara (2000). Inferring qualitative relations in genetic networks and metabolic pathways. Bioinformatics 16(8):727–734.

S. Liang, S. Fuhrman and R. Somogyi (1998), REVEAL, a general reverse engineering algorithm for inference of genetic network architectures. Pacific Symposium on Biocomputing 3:18–29.

### See Also

`generateTimeSeries`

, `binarizeTimeSeries`

, `chooseNetwork`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ```
# load example data
data(yeastTimeSeries)
# perform binarization with k-means
bin <- binarizeTimeSeries(yeastTimeSeries)
# reconstruct networks from binarized measurements
net <- reconstructNetwork(bin$binarizedMeasurements, method="bestfit", maxK=3, returnPBN=TRUE)
# print reconstructed net
print(net)
# plot reconstructed net
plotNetworkWiring(net)
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.