Learn R Programming

predictionet (version 1.18.0)

predictionet.stability.cv: Function inferring networks in cross-validation

Description

The function predictionet.stability.cv infers networks in cross-validation (compared to netinf.cv no regression is carried out, thus less computational cost but no prediction scores)

Usage

predictionet.stability.cv(data, categories, perturbations, priors, predn, priors.count = TRUE, priors.weight = 0.5, maxparents = 3, subset, method = c("regrnet", "bayesnet"), ensemble = FALSE, ensemble.maxnsol = 3, nfold = 10, causal = TRUE, seed, bayesnet.maxcomplexity = 0, bayesnet.maxiter = 100)

Arguments

data
matrix of continuous or categorical values (gene expressions for example); observations in rows, features in columns.
categories
if this parameter missing, 'data' should be already discretize; otherwise either a single integer or a vector of integers specifying the number of categories used to discretize each variable (data are then discretized using equal-frequency bins) or a list of cutoffs to use to discretize each of the variables in 'data' matrix. If method='bayesnet', this parameter should be specified by the user.
perturbations
matrix of 0, 1 specifying whether a gene has been perturbed (e.g., knockdown, overexpression) in some experiments. Dimensions should be the same than data.
priors
matrix of prior information available for gene-gene interaction (parents in rows, children in columns). Values may be probabilities or any other weights (citations count for instance). if priors counts are used the parameter priors.count should be TRUE so the priors are scaled accordingly.
predn
indices or names of variables to fit during network inference. If missing, all the variables will be used for network inference.
priors.count
TRUE if priors specified by the user are number of citations (count) for each interaction, FALSE if probabilities or any other weight in [0,1] are reported instead.
priors.weight
real value in [0,1] specifying the weight to put on the priors (0=only the data are used, 1=only the priors are used to infer the topology of the network).
maxparents
maximum number of parents allowed for each gene.
subset
vector of indices to select only subset of the observations.
method
regrnet for regression-based network inference, bayesnet for bayesian network inference with the catnet package.
ensemble
TRUE if the ensemble approach should be used, FALSE otherwise.
ensemble.maxnsol
Number of equivalent solutions chosen at each step.
nfold
number of folds for the cross-validation.
causal
'TRUE' if the causality should be inferred from the data, 'FALSE' otherwise
seed
set the seed to make the cross-validation and network inference deterministic.
bayesnet.maxcomplexity
maximum complexity for bayesian network inference, see Details.
bayesnet.maxiter
maximum number of iterations for bayesian network inference, see Details.

Value

method
name of the method used for network inference.
topology
topology of the model inferred using the entire dataset.
topology.cv
topology of the networks inferred at each fold of the cross-validation.
edge.stability
stability of the edges inferred during cross-validation; only the stability of the edges present in the network inferred using the entire dataset is reported.
edge.stability.cv
stability of the edges inferred during cross-validation.

Examples

Run this code
## load gene expression data for colon cancer data, list of genes related to RAS signaling pathway and the corresponding priors
data(expO.colon.ras)
## create matrix of perturbations (no perturbations in this dataset)
pert <- matrix(0, nrow=nrow(data.ras), ncol=ncol(data.ras), dimnames=dimnames(data.ras))

## number of genes to select for the analysis
genen <- 10
## select only the top genes
goi <- dimnames(annot.ras)[[1]][order(abs(log2(annot.ras[ ,"fold.change"])), decreasing=TRUE)[1:genen]]
mydata <- data.ras[ , goi, drop=FALSE]
myannot <- annot.ras[goi, , drop=FALSE]
mypriors <- priors.ras[goi, goi, drop=FALSE]
mydemo <- demo.ras
mypert <- pert[ , goi, drop=FALSE]

########################
## regression-based network inference
########################
## number of fold for cross-validation
res <-netinf.cv(data=mydata, categories=3, perturbations=mypert, priors=mypriors, priors.weight=0.5, method="regrnet", nfold=3, seed=54321)

## MCC for predictions in cross-validation
print(res$prediction.score.cv)

## export network as a 'gml' file that you can import into Cytoscape
## Not run: rr <- netinf2gml(object=res, file="predictionet_regrnet")

########################
## bayesian network inference
########################
## infer a bayesian network network from data and priors
## number of fold for cross-validation
## Not run: res <- netinf.cv(data=mydata, categories=3, perturbations=mypert, priors=mypriors, priors.count=TRUE, priors.weight=0.5, method="bayesnet", nfold=3, seed=54321)

## MCC for predictions in cross-validation
## Not run: print(res$prediction.score.cv)

## export network as a 'gml' file that you can import into Cytoscape
## Not run: rr <- netinf2gml(object=res, file="predictionet_bayesnet")

Run the code above in your browser using DataLab