Skip to contents

Apply iterative smoothing to Vesalius images

Usage

smooth_image(
  vesalius_assay,
  dimensions = seq(1, 3),
  embedding = "last",
  method = "iso",
  iter = 1,
  sigma = 1,
  box = 20,
  threshold = 0,
  neuman = TRUE,
  gaussian = TRUE,
  na.rm = FALSE,
  across_levels = "min",
  verbose = TRUE
)

Arguments

vesalius_assay

a vesalius_assay object

dimensions

numeric vector of latent space dimensions to use.

embedding

character string describing which embedding should be used.

method

character describing smoothing method to use "median" , "iso" or "box" or a combination of them.

iter

numeric - number of smoothing iteration

sigma

numeric - standard deviation associated with isoblur (Gaussian)

box

numeric describing box size (centered around center pixel) for smoothing

threshold

numeric - discard pixels that are too low in value (cutoff threshold only applied in box/median blurs).

neuman

logical describing If Neumann boundary conditions should be used, Dirichlet otherwise (default true, Neumann)

gaussian

logical - use gaussian filter

na.rm

logical describing if NA values should be removed

across_levels

character - method used to account for multiple smoothing levels (see details). Select from: "min","mean", "max"

verbose

logical - progress message output.

Value

a vesalius_assay

Details

The smooth_image function provides a series of options to smooth your grey scale images contained within the vesalius_assay object.

You can select any number of dimensions to be smoothed. As default, we take the first 3 dimensions.

Vesalius provides 3 smoothing methods: * median: computes median color in box (box size defined by box) * box: computes max color value in box (box size defined by box) * iso: compute gaussian kernel using sigma (Gussian SD defined by sigma)

Vesalius can apply the same smoothing paramters over multiple iterations as defined by the iter argument. It is also possible to provide multiple values to box and sigma as numeric vectors. Vesalius will run the smoothing over all provided values and return either the maximum, minimum or mean color value as described by the across_levels argument.

Please note that unless specified the smoothing always applied to the active embedding (default is last embedding computed). If you want to start over you can simply set embedding to which ever embedding you want to work with.

This will take the raw embedding values before any image processing has been applied. No need to re-run the embedding if you are not satisfied with the smoothing.

For more information, we suggest reading through the imager vignette.

Examples

if (FALSE) { # \dontrun{
data(vesalius)
# First we build a simple object
ves <- build_vesalius_object(coordinates, counts)
# We can do a simple run
ves <- build_vesalius_embeddings(ves)

# simple smoothing
ves <- smooth_image(ves, embedding = "PCA")
# multiple rounds
ves <- smooth_image(ves, iter = 3, embedding = "PCA")
# accross level
ves <- smooth_image(ves, box = seq(3,11),
 accross_level = "mean",
 embedding = "PCA")
} # }