mint.block.splsda {mixOmics} | R Documentation

## NP-integration with Discriminant Analysis and variable selection

### Description

Function to integrate data sets measured on the same samples (N-integration) and to combine multiple independent studies measured on the same variables or predictors (P-integration) using variants of sparse multi-group and generalised PLS-DA for supervised classification and variable selection.

### Usage

    mint.block.splsda(X,
    Y,
    indY,
    study,
    ncomp = 2,
    keepX,
    design,
    scheme,
    mode,
    scale = TRUE,
    init ,
    tol = 1e-06,
    max.iter = 100,
    near.zero.var = FALSE,
    all.outputs = TRUE)

### Arguments

`X` | A list of data sets (called 'blocks') measured on the same samples. Data in the list should be arranged in samples x variables, with samples order matching in all data sets.
`Y` | A factor or a class vector indicating the discrete outcome of each sample.
`indY` | To be supplied if Y is missing, indicates the position of the matrix / vector response in the list `X`
`study` | factor indicating the membership of each sample to each of the studies being combined
`ncomp` | Number of components to include in the model (see Details). Default to 2.
`keepX` | A list of same length as X. Each entry is the number of variables to select in each of the blocks of X for each component. By default all variables are kept in the model.
`design` | numeric matrix of size (number of blocks in X) x (number of blocks in X) with 0 or 1 values. A value of 1 (0) indicates a relationship (no relationship) between the blocks to be modelled. If `Y` is provided instead of `indY`, the `design` matrix is changed to include relationships to `Y`.
`scheme` | Either "horst", "factorial" or "centroid". Default = `horst`, see reference.
`mode` | character string. What type of algorithm to use, (partially) matching one of `"regression"`, `"canonical"`, `"invariant"` or `"classic"`. See Details.
`scale` | boleean. If scale = TRUE, each block is standardized to zero means and unit variances (default: TRUE)
`init` | Mode of initialization use in the algorithm, either by Singular Value Decompostion of the product of each block of X with Y ("svd") or each block independently ("svd.single"). Default = `svd.single`.
`tol` | Convergence stopping value.
`max.iter` | integer, the maximum number of iterations.
`near.zero.var` | boolean, see the internal `nearZeroVar` function (should be set to TRUE in particular for data with many zero values). Setting this argument to FALSE (when appropriate) will speed up the computations. Default value is FALSE
`all.outputs` | boolean. Computation can be faster when some specific (and non-essential) outputs are not calculated. Default = `TRUE`.

### Details

The function fits sparse multi-group generalised PLS Discriminant Analysis models with a specified number of `ncomp` components. A factor indicating the discrete outcome needs to be provided, either by `Y` or by its position `indY` in the list of blocks `X`.

`X` can contain missing values. Missing values are handled by being disregarded during the cross product computations in the algorithm `block.pls` without having to delete rows with missing data. Alternatively, missing data can be imputed prior using the `nipals` function.

The type of algorithm to use is specified with the `mode` argument. Four PLS algorithms are available: PLS regression `("regression")`, PLS canonical analysis `("canonical")`, redundancy analysis `("invariant")` and the classical PLS algorithm `("classic")` (see References and more details in `?pls`).

### Value

`mint.block.splsda` returns an object of class `"mint.splsda", "block.splsda"`, a list that contains the following components:

`X` | the centered and standardized original predictor matrix.
`Y` | the centered and standardized original response vector or matrix.
`ncomp` | the number of components included in the model for each block.
`mode` | the algorithm used to fit the model.
`mat.c` | matrix of coefficients from the regression of X / residual matrices X on the X-variates, to be used internally by `predict`.
`variates` | list containing the X and Y variates.
`loadings` | list containing the estimated loadings for the variates.
`names` | list containing the names to be used for individuals and variables.
`nzv` | list containing the zero- or near-zero predictors information.
`tol` | the tolerance used in the iterative algorithm, used for subsequent S3 methods
`max.iter` | the maximum number of iterations, used for subsequent S3 methods
`iter` | Number of iterations of the algorthm for each component

### Author(s)

Florian Rohart, Benoit Gautier, Kim-Anh Lê Cao

### References

On multi-group PLS: Rohart F, Eslami A, Matigian, N, Bougeard S, Lê Cao K-A (2017). MINT: A multivariate integrative approach to identify a reproducible biomarker signature across multiple experiments and platforms. BMC Bioinformatics 18:128.

Eslami, A., Qannari, E. M., Kohler, A., and Bougeard, S. (2014). Algorithms for multi-group PLS. J. Chemometrics, 28(3), 192-201.

On multiple integration with sparse PLSDA: Singh A., Gautier B., Shannon C., Vacher M., Rohart F., Tebbutt S. and Lê Cao K.A. (2016). DIABLO: multi omics integration for biomarker discovery. BioRxiv available here: http://biorxiv.org/content/early/2016/08/03/067611

Tenenhaus A., Philippe C., Guillemot V, Lê Cao K.A., Grill J, Frouin V. Variable selection for generalized canonical correlation analysis. Biostatistics. kxu001

Gunther O., Shin H., Ng R. T. , McMaster W. R., McManus B. M. , Keown P. A. , Tebbutt S.J. , Lê Cao K-A. , (2014) Novel multivariate methods for integration of genomics and proteomics data: Applications in a kidney transplant rejection study, OMICS: A journal of integrative biology, 18(11), 682-95.

mixOmics article:

Rohart F, Gautier B, Singh A, Lê Cao K-A. mixOmics: an R package for 'omics feature selection and multiple data integration. PLoS Comput Biol 13(11): e1005752

### See Also

`spls`, `summary`, `plotIndiv`, `plotVar`, `predict`, `perf`, `mint.block.spls`, `mint.block.plsda`, `mint.block.pls` and http://www.mixOmics.org/mixMINT for more details.

### Examples

    data(breast.TCGA)

    # for the purpose of this example, we consider the training set as study1 and
    # the test set as another independent study2.
    study = c(rep("study1",150), rep("study2",70))

    mrna = rbind(breast.TCGA$data.train$mrna, breast.TCGA$data.test$mrna)
    mirna = rbind(breast.TCGA$data.train$mirna, breast.TCGA$data.test$mirna)
    data = list(mrna = mrna, mirna = mirna)

    Y = c(breast.TCGA$data.train$subtype, breast.TCGA$data.test$subtype)

    res = mint.block.splsda(data,Y,study=study,
    keepX = list(mrna=c(10,10), mirna=c(20,20)),ncomp=2)

    res

[Package mixOmics version 6.10.9 Index]