Skip to contents

Reconstruct a multi-omics network from a list of copulized layers with a chosen network reconstruction method. The default method is collaborative graphical regression.

Usage

reconstruct(
  layers,
  net_method = "coglasso",
  sel_method = NULL,
  ...,
  cor_cutoff = NULL,
  cor_quant = NULL,
  minimal_output = FALSE,
  verbose = FALSE
)

Arguments

layers

The omics layers to analyze. To be provided as a named R list of data sets that have undergone the copulization treatment by the copulize() function. Given the output of copulize(), for example an object named carmon_cop, it can be accessed via carmon_cop$layers.

net_method

The network reconstruction method to use. The four methods currently available are: 'coglasso' for collaborative graphical lasso, 'glasso' for graphical lasso, 'mb' for the Meinshausen-Buhlmann neighborhood selection, and 'correlation' for a thresholded Pearson's correlation network. The default method is 'coglasso'.

sel_method

The network selection method. Each reconstruction procedure has its own model selection procedures available. Here is the list of them:

  • for net_method being 'coglasso': 'xstars' for eXtended StARS, 'xestars' for eXtended Efficient StARS, and 'ebic' for extended bayesian information criterion. Default is 'xestars'.

  • for net_method being 'glasso': 'stars' for StARS, 'ric' for rotational information criterion, and 'ebic' for for extended bayesian information criterion. Default is 'stars'.

  • for net_method being 'mb' or 'correlation': 'stars' for StARS, 'ric' for rotational information criterion. Default is 'stars'.

...

The additional optional arguments to be given for the network reconstruction procedure. The available arguments depend on the chosen network reconstruction and network selection methods. If using 'coglasso' (default option), see coglasso::bs() for both reconstruction and selection arguments. If reconstructing with 'glasso', 'mb', or 'correlation' without setting cor_cutoff or cor_quant see, respectively, huge::huge.glasso(), huge::huge.mb(), or huge::huge.ct(). For additional options for network selection from these last three reconstruction methods, see huge::huge.select().

cor_cutoff

Optional for net_method = 'correlation'. The cutoff value for the absolute Pearson's correlation network. Any edge with an absolute correlation below the cutoff is excluded from the final network. Not used by default, as the cutoff is generated by internal calculations.

cor_quant

Optional for net_method = 'correlation', to set as an alternative to cor_cutoff. Determine the cutoff of correlation based on the top percentile indicated by the user. For example, cor_quant = 0.2 would set as a correlation cutoff the 20th percentile of the absolute Pearson's correlation values, ordered from highest to lowest. Not used by default, as the cutoff is generated by internal calculations.

minimal_output

Logical. Set to TRUE to get only a minimal output from the reconstruct() function, which differs depending on the network reconstruction method.

verbose

The level of verbosity of the reconstruction process. 0 suppresses the information output, while 1 and 2 give progressively increasing amounts of information about the inner computations happening inside reconstruct().

Value

reconstruct() returns an object of S3 class carmon_rec. The elements it contains depend on the chosen network reconstruction and selection strategies, but the main elements are shared by all methods.
These shared elements are:

  • sel_adj is the adjacency matrix of the final selected network.

  • net_method is the chosen network reconstruction method.

  • sel_method is the chosen model selection method.

  • reconstruct_call is the matched call.

Moreover, when choosing 'coglasso' or 'glasso' as network reconstruction method, reconstruct() also returns:

  • sel_icov is the inverse covariance matrix of the final selected network.

Otherwise, if choosing 'correlation', it returns:

  • cor is the Pearson's correlation matrix of the final selected network.

When minimal_output is set to TRUE, these are also the only elements returned in the object of class carmon_rec given by reconstruct(). For the non minimal output elements, please look at coglasso::bs() for net_method = 'coglasso'. For the other three methods, look at huge::huge() and at huge::huge.select().

Details

reconstruct() uses collaborative graphical lasso ('coglasso') as a default engine to reconstruct the multi-omics network, as the method was specifically developed for the multi-omics scenario. carmon also implements three classic alternatives to 'coglasso': graphical lasso, neighborhood selection (as designed by Meinshausen and Buhlmann), and Pearson's correlation networks. The computational engine mainly used for these alternative options is the huge R package for network reconstruction, with a couple of small exceptions. Each one of these methods comes with its tailored model selection procedures. For 'coglasso', for example, it is an StARS procedure extended to the multiple hyperparameters of coglasso, XStARS, while for the other methods we suggest using the traditional StARS strategy.

Examples

# To reconstruct the multi-omics network, it is first necessary to copulize
# the input data with copulize(), then provide the normally distributed
# omics layers to reconstruct().
data(multi_omics_micro)
copulized <- copulize(multi_omics_micro)
rec <- reconstruct(copulized$layers,
    net_method = "correlation",
    cor_quant = 0.5, verbose = FALSE
)

# To make a carmon object out of these two:
c_obj <- assemble_carmon_obj(copulized, rec)