# mgc.test: MGC Permutation Test In mgc: Multiscale Graph Correlation

## Description

Test of Dependence using MGC Approach.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```mgc.test( X, Y, is.dist.X = FALSE, dist.xfm.X = mgc.distance, dist.params.X = list(method = "euclidean"), dist.return.X = NULL, is.dist.Y = FALSE, dist.xfm.Y = mgc.distance, dist.params.Y = list(method = "euclidean"), dist.return.Y = NULL, nperm = 1000, option = "mgc", no_cores = 1 ) ```

## Arguments

 `X` is interpreted as: a `[n x d]` data matrixX is a data matrix with `n` samples in `d` dimensions, if flag `is.dist.X=FALSE`. a `[n x n]` distance matrixX is a distance matrix. Use flag `is.dist.X=TRUE`. `Y` is interpreted as: a `[n x d]` data matrixY is a data matrix with `n` samples in `d` dimensions, if flag `is.dist.Y=FALSE`. a `[n x n]` distance matrixY is a distance matrix. Use flag `is.dist.Y=TRUE`. `is.dist.X` a boolean indicating whether your `X` input is a distance matrix or not. Defaults to `FALSE`. `dist.xfm.X` if `is.dist == FALSE`, a distance function to transform `X`. If a distance function is passed, it should accept an `[n x d]` matrix of `n` samples in `d` dimensions and return a `[n x n]` distance matrix as the `\$D` return argument. See mgc.distance for details. `dist.params.X` a list of trailing arguments to pass to the distance function specified in `dist.xfm.X`. Defaults to `list(method='euclidean')`. `dist.return.X` the return argument for the specified `dist.xfm.X` containing the distance matrix. Defaults to `FALSE`. `is.null(dist.return)`use the return argument directly from `dist.xfm` as the distance matrix. Should be a `[n x n]` matrix. `is.character(dist.return) | is.integer(dist.return)`use `dist.xfm.X[[dist.return]]` as the distance matrix. Should be a `[n x n]` matrix. `is.dist.Y` a boolean indicating whether your `Y` input is a distance matrix or not. Defaults to `FALSE`. `dist.xfm.Y` if `is.dist == FALSE`, a distance function to transform `Y`. If a distance function is passed, it should accept an `[n x d]` matrix of `n` samples in `d` dimensions and return a `[n x n]` distance matrix as the `dist.return.Y` return argument. See mgc.distance for details. `dist.params.Y` a list of trailing arguments to pass to the distance function specified in `dist.xfm.Y`. Defaults to `list(method='euclidean')`. `dist.return.Y` the return argument for the specified `dist.xfm.Y` containing the distance matrix. Defaults to `FALSE`. `is.null(dist.return)`use the return argument directly from `dist.xfm.Y(Y)` as the distance matrix. Should be a `[n x n]` matrix. `is.character(dist.return) | is.integer(dist.return)`use `dist.xfm.Y(Y)[[dist.return]]` as the distance matrix. Should be a `[n x n]` matrix. `nperm` specifies the number of replicates to use for the permutation test. Defaults to `1000`. `option` is a string that specifies which global correlation to build up-on. Defaults to `'mgc'`. `'mgc'`use the MGC global correlation. `'dcor'`use the dcor global correlation. `'mantel'`use the mantel global correlation. `'rank'`use the rank global correlation. `no_cores` the number of cores to use for the permutations. Defaults to `1`.

## Value

A list containing the following:

 `p.value` P-value of MGC `stat` is the sample MGC statistic within `[-1,1]` `p.localCorr` P-value of the local correlations by double matrix index. `localCorr` the local correlations `optimalScale` the optimal scale identified by MGC `option` specifies which global correlation was used

## Details

A test of independence using the MGC approach, described in Vogelstein et al. (2019). For X ~ Fx, Y ~ Fy:

H0: Fx != Fy

and:

Ha: Fx = Fy

Note that one should avoid report positive discovery via minimizing individual p-values of local correlations, unless corrected for multiple hypotheses.

For details on usage see the help vignette: `vignette("mgc", package = "mgc")`

## Author(s)

Eric Bridgeford and C. Shen

## References

Joshua T. Vogelstein, et al. "Discovering and deciphering relationships across disparate data modalities." eLife (2019).

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10``` ```## Not run: library(mgc) n = 100; d = 2 data <- mgc.sims.linear(n, d) # note: on real data, one would put nperm much higher (at least 100) # nperm is set to 10 merely for demonstration purposes result <- mgc.test(data\$X, data\$Y, nperm=10) ## End(Not run) ```

mgc documentation built on July 1, 2020, 7:09 p.m.