This class facilitates the handling of multiple one- or multi-channel images.
It inherits from SimpleList setting
elementType="Image". Therefore, each slot contains an either one- or
multi-dimensional array in form of an Image object.
CytoImageList(
...,
on_disk = FALSE,
h5FilesPath = NULL,
BPPARAM = SerialParam()
)A list of images (or coercible to a list) or individual images
Logical indicating if images in form of HDF5Array objects (as .h5 files) should be stored on disk rather than in memory.
path to where the .h5 files for on disk representation
are stored. This path needs to be defined when on_disk = TRUE.
When files should only temporarily be stored on disk, please set
h5FilesPath = getHDF5DumpDir()
parameters for parallelised processing.
This is only recommended for very large images.
See MulticoreParam for information on how to use
multiple cores for parallelised processing.
A CytoImageList object
Similar to the Image class, the first two
dimensions of each entry indicate the spatial dimension of the image. These
can be different for each entry. The third dimension indicates the number
of channels per Image. Each entry in the CytoImageList class object must
contain the same number of channels. Here, each channel represents pixel
values indicating measurement intensities or in case of segmentation masks
the cells' ID. The CytoImageList class therefore only supports a Grayscale
colormode (see colormode) representation of each
individual image.
The class further contains an elementMetadata slot that
stores image-level meta information. This slot should be accessed using the
mcols accessor function.
The CytoImageList class only supports unique entry names to avoid duplicated
images. Names of a CytoImageList object can be get and set via
names(x), where x is a CytoImageList object. Furthermore, only
named or unnamed CytoImageList objects are allowed. Partially named objects
causing empty or NA names return an error.
Coercion to and from list, SimpleList and
List:
Coercion from a CytoImageList object x
Coercion from a list, SimpleList or List
object x to anCytoImageList object
While lapply and mapply return
regular list objects, endoapply and
mendoapply return CytoImageList objects.
When setting on_disk = TRUE and specifying the h5FilesPath,
images are stored on disk. To convert back to an in-memory
CytoImageList object, one can call
CytoImageList(on_disk_IL, on_disk = FLASE).
Image, for further image analysis tools.
SimpleList, for basics functions to handle SimpleList
objects
?loadImages, for reading images into a CytoImageList
object
?"CytoImageList-naming", for setting and getting image and
channel names
?"CytoImageList-subsetting", for subsetting and
accessor functions
# Creation of CytoImageList
u <- matrix(rbinom(100, 10, 0.5), ncol=10, nrow=10)
v <- matrix(rbinom(100, 10, 0.5), ncol=10, nrow=10)
IL1 <- CytoImageList(image1 = Image(u), image2 = Image(v))
# Coercion
as.list(IL1)
#> $image1
#> Image
#> colorMode : Grayscale
#> storage.mode : integer
#> dim : 10 10
#> frames.total : 1
#> frames.render: 1
#>
#> imageData(object)[1:5,1:6]
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] 3 7 4 2 6 5
#> [2,] 7 4 6 4 5 4
#> [3,] 5 2 6 4 6 4
#> [4,] 3 4 4 6 6 5
#> [5,] 1 5 8 5 3 5
#>
#> $image2
#> Image
#> colorMode : Grayscale
#> storage.mode : integer
#> dim : 10 10
#> frames.total : 1
#> frames.render: 1
#>
#> imageData(object)[1:5,1:6]
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] 6 6 7 3 3 6
#> [2,] 6 7 5 6 9 4
#> [3,] 5 2 4 7 5 6
#> [4,] 4 7 7 7 4 4
#> [5,] 5 9 7 5 7 5
#>
as(IL1, "SimpleList")
#> List of length 2
#> names(2): image1 image2
as(list(image1 = Image(u), image2 = Image(v)), "CytoImageList")
#> CytoImageList containing 2 image(s)
#> names(2): image1 image2
#> Each image contains 1 channel
# On disk representation
IL1 <- CytoImageList(image1 = Image(u), image2 = Image(v),
on_disk = TRUE,
h5FilesPath = HDF5Array::getHDF5DumpDir())