mint.block.pls {mixOmics} | R Documentation

## NP-integration

### 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 multi-group and generalised PLS (unsupervised analysis).

### Usage

    mint.block.pls(X,
    Y,
    indY,
    study,
    ncomp = 2,
    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` | Matrix or vector response for a multivariate regression framework. Data should be continuous variables (see `mint.block.plsda` for supervised classification and factor reponse)
`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` | the number of components to include in the model. Default to 2.
`design` | numeric matrix of size (number of blocks) x (number of blocks) with only 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 multi-group generalised PLS models with a specified number of `ncomp` components. An outcome needs to be provided, either by `Y` or by its position `indY` in the list of blocks `X`.

Multi (continuous)response are supported. `X` and `Y` 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.pls` returns an object of class `"mint.pls", "block.pls"`, 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

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.

### See Also

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

### Examples

    data(breast.TCGA)

    # for the purpose of this example, we create data that fit in the context of
    # this function.
    # We consider the training set as study1 and the test set as another
    # independent study2.

    study = c(rep("study1",150), rep("study2",70))

    # to put the data in the MINT format, we rbind the two studies
    mrna = rbind(breast.TCGA$data.train$mrna, breast.TCGA$data.test$mrna)
    mirna = rbind(breast.TCGA$data.train$mirna, breast.TCGA$data.test$mirna)

    # For the purpose of this example, we create a continuous response by
    # taking the first mrna variable, and removing it from the data
    Y = mrna[,1]
    mrna = mrna[,-1]

    data = list(mrna = mrna, mirna = mirna)

    # we can now apply the function
    res = mint.block.plsda(data, Y, study=study, ncomp=2)

    res

[Package mixOmics version 6.6.2 Index]