subsetSpataObject.Rd
Creates a subset of the SPATA2
object by using a list
of barcodes and/or molecules. This function is the working horse behind all functions that manipulate
the number of observations and molecules in the object.
subsetSpataObject(
object,
barcodes = NULL,
molecules = NULL,
spatial_proc = TRUE,
opt = "keep",
verbose = NULL
)
An object of class SPATA2
or, in case of S4 generics,
objects of classes for which a method has been defined.
Character vector or NULL
. Names the observations of interest.
Character vector or NULL
. Names the molecules of interest.
Logical value. Indicates whether the new sub-object is
processed spatially. If TRUE
, a new tissue outline is identified based
on the remaining observations via identifyTissueOutline()
. Then,
spatial annotations are tested on being located on either of the remaining
tissue sections. If they are not, they are removed.
If FALSE
, these processing steps are skipped. Generally speaking, this is
not recommended. Only set to FALSE
, if you know what you're doing.
Only relevant, if barcodes
is not NULL
.
Character value. Decides how the input for barcodes
and molecules
is handled.
'keep': The specified barcodes and/or molecules are kept (default).
'remove': The specified barcodes and/or molecules are removed.
Logical. If TRUE
, informative messages regarding
the computational progress will be printed.
(Warning messages will always be printed.)
The updated input object, containing the added, removed or computed results.
After removal of observations, unused levels of factor variables in the feature data.frame are dropped. Analysis results are not affected.
library(SPATA2)
library(tidyverse)
library(patchwork)
# ----- Example 1: subsetSpataObject()
object <- loadExampleObject("UKF313T", meta = TRUE)
barcodes_keep <-
getMetaDf(object) %>%
filter(bayes_space %in% c("B3", "B2", "B1")) %>%
pull(barcodes)
object_sub <- subsetSpataObject(object, barcodes = barcodes_keep)
show(object)
show(object_sub)
plotSpatialAnnotations(object) # plots all annotations
plotSpatialAnnotations(object_sub) # subsetting affects everything by default
ids <- getSpatAnnIds(object)
ids_sub <- getSpatAnnIds(object_sub)
# use patchwork to compare plots
plot_orig <-
plotSurface(object, color_by = "bayes_space", outline = T) +
ggpLayerSpatAnnOutline(object, ids = ids)
plot_sub <-
plotSurface(object_sub, color_by = "bayes_space", outline = T) +
ggpLayerSpatAnnOutline(object_sub, ids = ids_sub)
plot_orig + plot_sub
# ----- Example 2: splitSpataObject()
# uses subsetSpataObject() in the background
object_mouse <- loadExampleObject("LMU_MCI", process = TRUE, meta = TRUE)
orig_frame <- ggpLayerFrameByCoords(object_mouse)
ids <- getSpatAnnIds(object_mouse)
plotSurface(object_mouse, color_by = "tissue_section", pt_clr = "lightgrey") +
ggpLayerSpatAnnOutline(object_mouse, ids = ids) +
ggpLayerSpatAnnPointer(object_mouse, ids = ids, ptr_lengths = "0.45mm", text_dist = 10, text_size = 7)
obj_list <- splitSpataObject(object_mouse, grouping = "tissue_section")
# present resulting sub-objects
purrr::map(obj_list, .f = ~ .x)
# present remaining ids
purrr::map(obj_list, .f = ~ getSpatAnnIds(.x))
# show surface plot with all remaining spatial annotations
purrr::map(obj_list, .f = ~ plotSurface(.x) + ggpLayerSpatAnnOutline(.x) + orig_frame) %>%
patchwork::wrap_plots()
# repeat with spatial_proc = FALSE
obj_list <- splitSpataObject(object_mouse, grouping = "tissue_section", spatial_proc = FALSE)
# present remaining spatial annotation ids
purrr::map(obj_list, .f = ~ getSpatAnnIds(.x))
# show surface plot with all remaining spatial annotations
purrr::map(obj_list, .f = ~ plotSurface(.x) + ggpLayerSpatAnnOutline(.x) + orig_frame) %>%
patchwork::wrap_plots()
# ----- Example 3: cropSpataObject()
# uses subsetSpataObject() in the background
object <- loadExampleObject("UKF275T", meta = TRUE)
orig_frame <- ggpLayerFrameByCoords(object)
xcrop <- c("2.5mm", "5.5mm")
ycrop <- c("5mm", "7mm")
plotSurface(object, color_by = "bayes_space") +
ggpLayerAxesSI(object) +
ggpLayerRect(object, xrange = xcrop, yrange = ycrop)
object_cropped <-
cropSpataObject(object, xrange = xcrop, yrange = ycrop)
plotSurface(object_cropped, color_by = "bayes_space", pt_size = 0.75) + orig_frame