Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ jobs:
fail-fast: false
matrix:
config:
- {os: macos-latest, r: 'devel'}
- {os: macos-latest, r: 'release'}
- {os: windows-latest, r: 'release', rtools-version: '44'}
- {os: ubuntu-latest, r: 'release'}
- {os: ubuntu-24.04, r: 'release'}
- {os: windows-latest, r: 'devel', rtools-version: '45'}
- {os: ubuntu-latest, r: 'devel'}
- {os: ubuntu-24.04, r: 'devel'}

steps:

Expand Down
10 changes: 5 additions & 5 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Package: VoltRon
Type: Package
Title: VoltRon for Spatial Omics Data Integration and Analysis
Version: 0.2.5
Depends: R (>= 4.4.0)
Version: 0.2.6
Depends: R (>= 4.6.0)
Author@R:
person("Artür", "Manukyan",
role=c("aut", "cre"),
Expand Down Expand Up @@ -69,6 +69,7 @@ Suggests:
BiocParallel,
rhdf5,
Rarr,
ZarrArray,
basilisk,
reticulate,
RBioFormats,
Expand Down Expand Up @@ -104,13 +105,12 @@ Suggests:
anndata,
SimpleITK
Remotes:
stla/RCDT,
stla/RCDT,
BIMSBbioinfo/VoltRonStore,
bnprks/BPCells/r@v0.3.0,
BIMSBbioinfo/VoltRon,
BIMSBbioinfo/HDF5DataFrame,
BIMSBbioinfo/ZarrDataFrame,
Artur-man/ImageArray
BIMSBbioinfo/ZarrDataFrame
Config/testthat/edition: 3
LazyData: true
LazyDataCompression: gzip
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ RUN R -e "install.packages(c('shiny', 'devtools', 'BiocManager'), repos='http://

# Install VoltRon dependencies
RUN R -e "install.packages(c('grDevices', 'data.table', 'RcppAnnoy', 'RANN', 'Matrix', 'dplyr', 'ggplot2', 'ggrepel', 'igraph', 'rjson', 'magick', 'ids', 'sp', 'reshape2', 'rlang', 'ggpubr', 'shinyjs'), repos='http://cran.rstudio.com/')"
RUN R -e "install.packages(c('stringr', 'uwot'), repos='http://cran.rstudio.com/')"
RUN R -e "install.packages(c('remotes', 'stringr', 'uwot'), repos='http://cran.rstudio.com/')"
RUN R -e "BiocManager::install(c('EBImage', 'S4Arrays', 'BiocSingular'))"

# set up java
Expand Down
4 changes: 2 additions & 2 deletions R/image.R
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ subsetvrImage <- function(x, subset, spatialpoints = NULL, image = NULL) {
img_data <- ImageArray::crop(
img_data,
ind = list(
crop_info_int[3]:(crop_info_int[3] + crop_info_int[1]),
crop_info_int[4]:(crop_info_int[4] + crop_info_int[2])
x = crop_info_int[3]:(crop_info_int[3] + crop_info_int[1]),
y = crop_info_int[4]:(crop_info_int[4] + crop_info_int[2])
)
)
object@image[[img]] <- img_data
Expand Down
68 changes: 35 additions & 33 deletions R/ondisk.R
Original file line number Diff line number Diff line change
Expand Up @@ -747,9 +747,9 @@ writeHDF5ArrayInImage <- function(
img <-
ImageArray::writeImageArray(
img,
output = gsub(".h5$", "", h5_path),
output = h5_path,
name = paste0(name, "/spat_", spat, "/", ch),
format = "HDF5ImageArray",
format = "hdf5",
replace = FALSE,
chunkdim = chunkdim,
level = level,
Expand Down Expand Up @@ -784,16 +784,18 @@ writeHDF5ArrayInImage <- function(
remotes::install_github('bnprks/BPCells/r')"
)
}
# if (!inherits(object, "dgCMatrix")) {
if (!inherits(object, "Matrix")) {
if (!inherits(object, "CsparseMatrix")) {
object <- as(object, "dgCMatrix")
}
object <- BPCells::write_matrix_hdf5(
object,
path = h5_path,
group = name,
overwrite = TRUE
)
# save only when the data is non zero length
if(nrow(object) > 0){
object <- BPCells::write_matrix_hdf5(
object,
path = h5_path,
group = name,
overwrite = TRUE
)
}
} else if (feature.vs.obs.engine == "DelayedArray") {
if (!requireNamespace('HDF5Array')) {
stop(
Expand Down Expand Up @@ -1001,13 +1003,13 @@ writeZarrArrayInMetadata <- function(
}
cur_column <- as.array(cur_column)
meta.data_list[["id"]] <-
Rarr::writeZarrArray(
ZarrArray::writeZarrArray(
cur_column,
zarr_array_path = file.path(
zarr_path = file.path(
zarr_path,
paste0(name, "/", sn, "/id")
),
chunk_dim = min(length(cur_column), 2000),
chunkdim = min(length(cur_column), 2000),
nchar = nchar
)
}
Expand All @@ -1028,13 +1030,13 @@ writeZarrArrayInMetadata <- function(
}
cur_column <- as.array(cur_column)
meta.data_list[[colnames(meta.data)[i]]] <-
Rarr::writeZarrArray(
ZarrArray::writeZarrArray(
cur_column,
zarr_array_path = file.path(
zarr_path = file.path(
zarr_path,
paste0(name, "/", sn, "/", colnames(meta.data)[i])
),
chunk_dim = min(length(cur_column), 2000),
chunkdim = min(length(cur_column), 2000),
nchar = nchar
)
}
Expand Down Expand Up @@ -1092,10 +1094,10 @@ writeZarrArrayInVrData <- function(
if (!is.array(a)) {
a <- as.array(a)
}
a <- Rarr::writeZarrArray(
a <- ZarrArray::writeZarrArray(
a,
zarr_array_path = file.path(zarr_path, paste0(name, "/", feat)),
chunk_dim = chunkdim
zarr_path = file.path(zarr_path, paste0(name, "/", feat)),
chunkdim = chunkdim
)
} else {
a <- DelayedArray::DelayedArray(a)
Expand All @@ -1121,13 +1123,13 @@ writeZarrArrayInVrData <- function(
if (!is.array(a)) {
a <- as.array(a)
}
a <- Rarr::writeZarrArray(
a <- ZarrArray::writeZarrArray(
a,
zarr_array_path = file.path(
zarr_path = file.path(
zarr_path,
paste0(name, "/", feat, "_norm")
),
chunk_dim = chunkdim
chunkdim = chunkdim
)
} else {
a <- DelayedArray::DelayedArray(a)
Expand Down Expand Up @@ -1157,10 +1159,10 @@ writeZarrArrayInVrData <- function(
if (!is.array(a)) {
a <- as.array(a)
}
a <- Rarr::writeZarrArray(
a <- ZarrArray::writeZarrArray(
a,
zarr_array_path = file.path(zarr_path, paste0(name, "/rawdata")),
chunk_dim = chunkdim
zarr_path = file.path(zarr_path, paste0(name, "/rawdata")),
chunkdim = chunkdim
)
} else {
a <- DelayedArray::DelayedArray(a)
Expand All @@ -1186,10 +1188,10 @@ writeZarrArrayInVrData <- function(
if (!is.array(a)) {
a <- as.array(a)
}
a <- Rarr::writeZarrArray(
a <- ZarrArray::writeZarrArray(
a,
zarr_array_path = file.path(zarr_path, paste0(name, "/normdata")),
chunk_dim = chunkdim
zarr_path = file.path(zarr_path, paste0(name, "/normdata")),
chunkdim = chunkdim
)
} else {
a <- DelayedArray::DelayedArray(a)
Expand Down Expand Up @@ -1248,13 +1250,13 @@ writeZarrArrayInImage <- function(
if (is.null(chunkdim)) {
chunkdim <- vapply(dim(coords), function(x) min(x, 1000), numeric(1))
}
coords <- Rarr::writeZarrArray(
coords <- ZarrArray::writeZarrArray(
coords,
zarr_array_path = file.path(
zarr_path = file.path(
zarr_path,
paste0(name, "/spat_", spat, "/coords")
),
chunk_dim = chunkdim
chunkdim = chunkdim
)

# Rarr::ZarrArray doesnt have rownames
Expand Down Expand Up @@ -1285,9 +1287,9 @@ writeZarrArrayInImage <- function(
}
img <- ImageArray::writeImageArray(
img,
output = gsub(".zarr$", "", zarr_path),
output = zarr_path,
name = paste0(name, "/spat_", spat, "/", ch),
format = "ZarrImageArray",
format = "zarr",
replace = FALSE,
chunkdim = chunkdim,
level = level,
Expand Down
6 changes: 3 additions & 3 deletions R/registration.R
Original file line number Diff line number Diff line change
Expand Up @@ -2250,7 +2250,7 @@ plotImage <- function(image, max.pixel.size = NULL) {
}
imgggplot <- magick::image_ggplot(image)
} else if (inherits(image, "ImageArray")) {
img_raster <- ImageArray::as.raster(image, max.pixel.size = max.pixel.size)
img_raster <- as.raster(image, max.pixel.size = max.pixel.size)
info <- list(width = dim(img_raster)[2], height = dim(img_raster)[1])
imgggplot <- ggplot2::ggplot(
data.frame(x = 0, y = 0),
Expand Down Expand Up @@ -2398,8 +2398,8 @@ cropImage <- function(image, geometry) {
image <- ImageArray::crop(
image,
ind = list(
crop_info_int[3]:(crop_info_int[3] + crop_info_int[1]),
crop_info_int[4]:(crop_info_int[4] + crop_info_int[2])
x = crop_info_int[3]:(crop_info_int[3] + crop_info_int[1]),
y = crop_info_int[4]:(crop_info_int[4] + crop_info_int[2])
)
)
}
Expand Down
2 changes: 1 addition & 1 deletion R/visualization.R
Original file line number Diff line number Diff line change
Expand Up @@ -2421,7 +2421,7 @@ vrSpatialPlotImage <- function(

# TODO: is this necessary ?
if (inherits(image, "ImageArray")) {
image <- ImageArray::as.raster(image)
image <- as.raster(image)
}

# annotation raster
Expand Down
1 change: 1 addition & 0 deletions tests/testthat/test-ondisk.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ skip_if_not_installed("HDF5DataFrame")
skip_if_not_installed("ZarrDataFrame")
skip_if_not_installed("ImageArray")
skip_if_not_installed("BPCells")
skip_if_not_installed("DelayedMatrixStats")

# create dir
dir.create(td <- tempfile())
Expand Down
Loading