coglasso() estimates multiple multi-omics networks with the algorithm
collaborative graphical lasso, one for each combination of input values for
the hyperparameters \(\lambda_w\), \(\lambda_b\) and \(c\).
Usage
coglasso(
data,
p = NULL,
pX = lifecycle::deprecated(),
lambda_w = NULL,
lambda_b = NULL,
c = NULL,
nlambda_w = NULL,
nlambda_b = NULL,
nc = NULL,
lambda_w_max = NULL,
lambda_b_max = NULL,
c_max = NULL,
lambda_w_min_ratio = NULL,
lambda_b_min_ratio = NULL,
c_min = NULL,
icov_guess = NULL,
cov_output = FALSE,
lock_lambdas = FALSE,
verbose = TRUE
)Arguments
- data
The input multi-omics data set. Rows should be samples, columns should be variables. Variables should be grouped by their assay (e.g. transcripts first, then metabolites).
datais a required parameter.- p
A vector with with the number of variables for each omic layer of the data set (e.g. the number of transcripts, metabolites etc.), in the same order the layers have in the data set. If given a single number,
coglasso()assumes that the total of data sets is two, and that the number given is the dimension of the first one.- pX
- lambda_w
A vector of values for the parameter \(\lambda_w\), the penalization parameter for the "within" interactions. Overrides
nlambda_w.- lambda_b
A vector of values for the parameter \(\lambda_b\), the penalization parameter for the "between" interactions. Overrides
nlambda_b.- c
A vector of values for the parameter \(c\), the weight given to collaboration. Overrides
nc.- nlambda_w
The number of requested \(\lambda_w\) parameters to explore. A sequence of size
nlambda_wof \(\lambda_w\) parameters will be generated. Defaults to 8. Ignored whenlambda_wis set by the user.- nlambda_b
The number of requested \(\lambda_b\) parameters to explore. A sequence of size
nlambda_bof \(\lambda_b\) parameters will be generated. Defaults to 8. Ignored whenlambda_bis set by the user.- nc
The number of requested \(c\) parameters to explore. A sequence of size
ncof \(c\) parameters will be generated. Defaults to 5. Ignored whencis set by the user.- lambda_w_max
The greatest generated \(\lambda_w\). By default it is computed with a data-driven approach. Ignored when
lambda_wis set by the user.- lambda_b_max
The greatest generated \(\lambda_b\). By default it is computed with a data-driven approach. Ignored when
lambda_bis set by the user.- c_max
The greatest \(c\) explored. Defaults to 100. Ignored when
cis set by the user.- lambda_w_min_ratio
The ratio of the smallest generated \(\lambda_w\) over the greatest generated \(\lambda_w\). Defaults to 0.1. Ignored when
lambda_wis set by the user.- lambda_b_min_ratio
The ratio of the smallest generated \(\lambda_b\) over the greatest generated \(\lambda_b\). Defaults to 0.1. Ignored when
lambda_bis set by the user.- c_min
The the smallest \(c\) explored. Defaults to \(\frac{1}{c_{max}}\), so to 0.01 if
c_maxis not set by the user. Ignored whencis set by the user.- icov_guess
Use a predetermined inverse covariance matrix as an initial guess for the network estimation.
- cov_output
Add the estimated variance-covariance matrix to the output.
- lock_lambdas
Set \(\lambda_w = \lambda_b\). Force a single lambda parameter for both "within" and "between" interactions.
- verbose
Print information regarding current
coglassorun on the console.
Value
coglasso() returns an object of S3 class coglasso, that has the
following elements:
loglikis a numerical vector containing the \(log\) likelihoods of all the estimated networks.densityis a numerical vector containing a measure of the density of all the estimated networks.dfis an integer vector containing the degrees of freedom of all the estimated networks.convergenceis a binary vector containing whether a network was successfully estimated for the given combination of hyperparameters or not.pathis a list containing the adjacency matrices of all the estimated networks.icovis a list containing the inverse covariance matrices of all the estimated networks.nexplodedis the number of combinations of hyperparameters for whichcoglasso()failed to converge.datais the input multi-omics data set.hparsis the ordered table of all the combinations of hyperparameters given as input tocoglasso(), with \(\alpha(\lambda_w+\lambda_b)\) being the key to sort rows.lambda_wis a numerical vector with all the \(\lambda_w\) valuescoglasso()used.lambda_bis a numerical vector with all the \(\lambda_b\) valuescoglasso()used.cis a numerical vector with all the \(c\) valuescoglasso()used.pis the vector with the number of variables for each omic layer of the data set.Dis the number of omics layers in the data set.icov_guessoptional, returned whenicov_guessis given. It is the predetermined inverse covariance matrix given by the user as an initial guess for the network estimation.covoptional, returned whencov_outputis TRUE, is a list containing the variance-covariance matrices of all the estimated networks.callis the matched call.
Examples
# Typical usage: set the number of hyperparameters to explore
cg <- coglasso(multi_omics_sd_micro,
p = c(4, 2), nlambda_w = 3,
nlambda_b = 3, nc = 3, verbose = FALSE
)
# \donttest{
# Model selection using eXtended Efficient StARS, takes less than five seconds
sel_cg_xestars <- select_coglasso(cg, method = "xestars", verbose = FALSE)
# }
