cropSpataObject.Rd
Creates a subset of the original SPATA2
object
based on x- and y-range. Data poitns that fall into the
rectangle given by xrange
and yrange
are kept.
cropSpataObject(
object,
xrange,
yrange,
spatial_proc = TRUE,
adjust_capture_area = TRUE,
verbose = NULL
)
An object of class SPATA2
or, in case of S4 generics,
objects of classes for which a method has been defined.
Distance vector of length
two or NULL
. If not NULL
, specifies the x- and y-range to which
the spatial output is cropped. E.g. xrange = c(200, 500)
results in
the two dimensional space being cropped from x-coordinate 200px up to
x-coordinate 500px. If NULL
, the original range is used.
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
.
Logical. If TRUE
, the capture area is adjusted
to the input of xrange
and yrange
. If FALSE
, it stays as is. Defaults to TRUE
.
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.
ggpLayerRect()
to visualize the rectangle based on which
the subsetting is done. subsetSpataObject()
is the working horse behind
this function.
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