runspatialdecon,Seurat-method {SpatialDecon} | R Documentation

## Run spatialdecon on a Seurat object

### Description

A wrapper for applying spatialdecon to the Spatial data element in a Seurat object. Unlike spatialdecon, which expects a normalized data matrix, this function operates on raw counts. Scaling for total cells

### Usage

    ## S4 method for signature 'Seurat'
    runspatialdecon(
      object,
      X = NULL,
      bg = 0.1,
      wts = NULL,
      resid_thresh = 3,
      lower_thresh = 0.5,
      align_genes = TRUE,
      is_pure_tumor = NULL,
      n_tumor_clusters = 10,
      cell_counts = NULL,
      cellmerges = NULL,
      maxit = 1000
    )

### Arguments

`object` | A seurat object. Must include a "Spatial" element in the "assays" slot.
`X` | Cell profile matrix. If NULL, the safeTME matrix is used.
`bg` | Expected background counts. Either a scalar applied equally to all points in the count matrix, or a matrix with the same dimensions as the count matrix in GetAssayData(object, assay = "Spatial"). Recommended to use a small non-zero value, default of 0.1.
`wts` | Optional, a matrix of weights.
`resid_thresh` | A scalar, sets a threshold on how extreme individual data points' values can be (in log2 units) before getting flagged as outliers and set to NA.
`lower_thresh` | A scalar. Before log2-scale residuals are calculated, both observed and fitted values get thresholded up to this value. Prevents log2-scale residuals from becoming extreme in points near zero.
`align_genes` | Logical. If TRUE, then Y, X, bg, and wts are row-aligned by shared genes.
`is_pure_tumor` | A logical vector denoting whether each AOI consists of pure tumor. If specified, then the algorithm will derive a tumor expression profile and merge it with the immune profiles matrix.
`n_tumor_clusters` | Number of tumor-specific columns to merge into the cell profile matrix. Has an impact only when is_pure_tumor argument is used to indicate pure tumor AOIs. Takes this many clusters from the pure-tumor AOI data and gets the average expression profile in each cluster. Default 10.
`cell_counts` | Number of cells estimated to be within each sample. If provided alongside norm_factors, then the algorithm will additionally output cell abundance esimtates on the scale of cell counts.
`cellmerges` | A list object holding the mapping from beta's cell names to combined cell names. If left NULL, then defaults to a mapping of granular immune cell definitions to broader categories.
`maxit` | Maximum number of iterations. Default 1000.

### Value

if not given cellmerges and cell_counts, a list including the following items:

- beta: matrix of cell abundance estimates, cells in rows and observations in columns

- p: matrix of p-values for H0: beta == 0

- t: matrix of t-statistics for H0: beta == 0

- se: matrix of standard errors of beta values

- prop_of_all: rescaling of beta to sum to 1 in each observation

- prop_of_nontumor: rescaling of beta to sum to 1 in each observation, excluding tumor abundance estimates

- yhat: a matrix of fitted values

- resids: a matrix of residuals from the model fit. (log2(pmax(y, lower_thresh)) - log2(pmax(xb, lower_thresh))).

- X: the cell profile matrix used in the decon fit.

- sigmas: covariance matrices of each observation's beta estimates

if given cellmerges, the list will additionally include the following items

- beta.granular: cell abundances prior to combining closely-related cell types

- sigma.granular: sigmas prior to combining closely-related cell types

if given cell_counts, the list will additionally include the following items

- cell.counts: beta rescaled to estimate cell numbers, based on prop_of_all and nuclei count

if given both cellmerges and cell_counts, the list will additionally include the following items

- cell.counts.granular: cell.counts prior to combining closely-related cell types

### Examples

    # get dataset
    con <- gzcon(url("https://github.com/almaan/her2st/raw/master/data/ST-cnts/G1.tsv.gz"))
    txt <- readLines(con)
    temp <- read.table(textConnection(txt), sep = "\t", header = TRUE, row.names = 1)
    # parse data
    raw = t(as.matrix(temp))
    norm = sweep(raw, 2, colSums(raw), "/") * mean(colSums(raw))
    x = as.numeric(substr(rownames(temp), 1, unlist(gregexpr("x", rownames(temp))) - 1))
    y = -as.numeric(substr(rownames(temp),
                     unlist(gregexpr("x", rownames(temp))) + 1, nchar(rownames(temp))))
    # put into a seurat object:
    andersson_g1 = SeuratObject::CreateSeuratObject(counts = raw, assay="Spatial")
    andersson_g1@meta.data$x = x
    andersson_g1@meta.data$y = y

    res <- runspatialdecon(andersson_g1)
    str(res)

[Package SpatialDecon version 1.4.3 Index]