runNMDS {mia} | R Documentation

## Perform non-metric MDS on sample-level data

### Description

Perform non-metric multi-dimensional scaling (nMDS) on samples, based on the data in a `SingleCellExperiment` object.

### Usage

    calculateNMDS(x, ...)

    ## S4 method for signature 'ANY'
    calculateNMDS(
      x,
      FUN = vegdist,
      nmdsFUN = c("isoMDS", "monoMDS"),
      ncomponents = 2,
      ntop = 500,
      subset_row = NULL,
      scale = FALSE,
      transposed = FALSE,
      keep_dist = FALSE,
      ...
    )

    ## S4 method for signature 'SummarizedExperiment'
    calculateNMDS(
      x,
      ...,
      abund_values = exprs_values,
      exprs_values = "counts",
      FUN = vegdist
    )

    ## S4 method for signature 'SingleCellExperiment'
    calculateNMDS(
      x,
      ...,
      abund_values = exprs_values,
      exprs_values = "counts",
      dimred = NULL,
      n_dimred = NULL,
      FUN = vegdist
    )

    runNMDS(x, ..., altexp = NULL, name = "NMDS")

    plotNMDS(x, ..., ncomponents = 2)

### Arguments

`x` | For `calculateNMDS`, a numeric matrix of expression values where rows are features and columns are cells. Alternatively, a `TreeSummarizedExperiment` containing such a matrix. For `runNMDS` a SingleCellExperiment
`...` | additional arguments to pass to `FUN` and `nmdsFUN`.
`FUN` | a `function` or `character` value with a function name returning a `dist` object
`nmdsFUN` | a `character` value to choose the scaling implementation, either “isoMDS” for `MASS::isoMDS` or “monoMDS” for `vegan::monoMDS`
`ncomponents` | Numeric scalar indicating the number of NMDS dimensions to obtain.
`ntop` | Numeric scalar specifying the number of features with the highest variances to use for dimensionality reduction.
`subset_row` | Vector specifying the subset of features to use for dimensionality reduction. This can be a character vector of row names, an integer vector of row indices or a logical vector.
`scale` | Logical scalar, should the expression values be standardized?
`transposed` | Logical scalar, is x transposed with cells in rows?
`keep_dist` | Logical scalar indicating whether the `dist` object calculated by `FUN` should be stored as ‘dist’ attribute of the matrix returned/stored by `calculateNMDS`/ `runNMDS`.
`abund_values` | a single `character` value for specifying which assay to use for calculation.
`exprs_values` | a single `character` value for specifying which assay to use for calculation. (Please use `abund_values` instead. At some point `exprs_values` will be disabled.)
`dimred` | String or integer scalar specifying the existing dimensionality reduction results to use.
`n_dimred` | Integer scalar or vector specifying the dimensions to use if dimred is specified.
`altexp` | String or integer scalar specifying an alternative experiment containing the input data.
`name` | String specifying the name to be used to store the result in the reducedDims of the output.

### Details

Either `MASS::isoMDS` or `vegan::monoMDS` are used internally to compute the NMDS components. If you supply a custom `FUN`, make sure that the arguments of `FUN` and `nmdsFUN` do not collide.

### Value

For `calculateNMDS`, a matrix is returned containing the MDS coordinates for each sample (row) and dimension (column).

### Author(s)

Felix Ernst

### See Also

`MASS::isoMDS`, `vegan::monoMDS` for NMDS component calculation.

`plotMDS`, to quickly visualize the results.

### Examples

    # generate some example data
    mat <- matrix(1:60, nrow = 6)
    df <- DataFrame(n = c(1:6))
    se <- SummarizedExperiment(assays = list(counts = mat),
                               rowData = df)
    #
    calculateNMDS(se)

    #
    data(esophagus)
    esophagus <- runNMDS(esophagus, FUN = vegan::vegdist, name = "BC")
    esophagus <- runNMDS(esophagus, FUN = vegan::vegdist, name = "euclidean",
                         method = "euclidean")
    reducedDims(esophagus)

[Package mia version 1.2.7 Index]