Creates ggplot2 layer with the histology image as a raster.

ggpLayerImage(object, ...)

# S4 method for class 'SPATA2'
ggpLayerImage(
  object,
  img_name = activeImage(object),
  transform = TRUE,
  img_alpha = 1,
  scale_fct = 1,
  ...
)

# S4 method for class 'SpatialData'
ggpLayerImage(
  object,
  img_name = activeImage(object),
  transform = TRUE,
  img_alpha = 1,
  scale_fct = 1,
  ...
)

# S4 method for class 'HistoImage'
ggpLayerImage(object, transform = TRUE, scale_fct = 1, img_alpha = 1, ...)

# S4 method for class 'SpatialAnnotation'
ggpLayerImage(object, img_alpha = 1, rescale_axes = TRUE, scale_fct = 1, ...)

# S4 method for class 'Image'
ggpLayerImage(object, scale_fct = 1, img_alpha = 1, ...)

# S4 method for class 'data.frame'
ggpLayerImage(object, fill_by, img_alpha = 1)

Arguments

object

An object of class SPATA2 or, in case of S4 generics, objects of classes for which a method has been defined.

...

Used to absorb deprecated arguments or functions.

img_name

Character value. The name of the image of interest. If NULL, the active image is chosen by default. Either way, must be one of getImageNames().

transform

Logical value. Ignored if no images exist in the object. If TRUE, spatial transformation instructions saved during image alignment of the image img_name are applied. Only relevant if there are any images registered in the SPATA2 object.

img_alpha

Numeric value. Sets the transparency for the image.

Value

ggpLayer*()-functions return lists of ggproto objects that can be added to ggplots via the + operator. In most of the cases they are supposed to be added to plots created with the plotSurface*() family.

Details

The image is plotted via ggplot2::geom_raster() by mapping the pixel position to the x-axis and the y-axis. See section Image visualization with ggplot2 for more details.

Image visualization with ggplot2

When comparing the output of ggplot() + ggpLayerImage() with other image plotting functions, you may notice that the image appears horizontally flipped when plotted using ggpLayerImage(). This behavior is due to the use of a Cartesian coordinate system in SPATA2, where a pixel with coordinates c(width = 1, height = 1) is plotted on the left side at the bottom. In contrast, functions like EBImage::display() or graphics::plot() use an image space coordinate system, where pixel heights start from the top. Consequently, in image space, pixel c(width = 1, height = 1) is displayed on the top resulting in mirror inverted visualization of the image.

We chose to use a Cartesian coordinate system in SPATA2 because we believe it provides a more intuitive framework for the spatial alignment of tissue, spatial annotations, spatial trajectories, barcoded sots, single cells, etc. where coordinates in the corresponding data.frames are provided in form of x- and y-variables. See getCoordsDf(), getImgAnnOutlineDf(), getTissueOutlineDf() etc.

If you prefer to view your image in the regular orientation, you can use the flipAll() function on your object, specifying axis = "horizontal", to reverse this effect.

Examples


library(SPATA2)
library(tidyverse)

data("example_data")

object <- loadExampleObject("UKF275T")

ggplot() +
 ggpLayerImage(object)