@@ -747,9 +747,9 @@ writeHDF5ArrayInImage <- function(
747747 img <-
748748 ImageArray :: writeImageArray(
749749 img ,
750- output = gsub( " .h5$ " , " " , h5_path ) ,
750+ output = h5_path ,
751751 name = paste0(name , " /spat_" , spat , " /" , ch ),
752- format = " HDF5ImageArray " ,
752+ format = " hdf5 " ,
753753 replace = FALSE ,
754754 chunkdim = chunkdim ,
755755 level = level ,
@@ -784,16 +784,18 @@ writeHDF5ArrayInImage <- function(
784784 remotes::install_github('bnprks/BPCells/r')"
785785 )
786786 }
787- # if (!inherits(object, "dgCMatrix")) {
788- if (! inherits(object , " Matrix" )) {
787+ if (! inherits(object , " CsparseMatrix" )) {
789788 object <- as(object , " dgCMatrix" )
790789 }
791- object <- BPCells :: write_matrix_hdf5(
792- object ,
793- path = h5_path ,
794- group = name ,
795- overwrite = TRUE
796- )
790+ # save only when the data is non zero length
791+ if (nrow(object ) > 0 ){
792+ object <- BPCells :: write_matrix_hdf5(
793+ object ,
794+ path = h5_path ,
795+ group = name ,
796+ overwrite = TRUE
797+ )
798+ }
797799 } else if (feature.vs.obs.engine == " DelayedArray" ) {
798800 if (! requireNamespace(' HDF5Array' )) {
799801 stop(
@@ -1001,13 +1003,13 @@ writeZarrArrayInMetadata <- function(
10011003 }
10021004 cur_column <- as.array(cur_column )
10031005 meta.data_list [[" id" ]] <-
1004- Rarr :: writeZarrArray(
1006+ ZarrArray :: writeZarrArray(
10051007 cur_column ,
1006- zarr_array_path = file.path(
1008+ zarr_path = file.path(
10071009 zarr_path ,
10081010 paste0(name , " /" , sn , " /id" )
10091011 ),
1010- chunk_dim = min(length(cur_column ), 2000 ),
1012+ chunkdim = min(length(cur_column ), 2000 ),
10111013 nchar = nchar
10121014 )
10131015 }
@@ -1028,13 +1030,13 @@ writeZarrArrayInMetadata <- function(
10281030 }
10291031 cur_column <- as.array(cur_column )
10301032 meta.data_list [[colnames(meta.data )[i ]]] <-
1031- Rarr :: writeZarrArray(
1033+ ZarrArray :: writeZarrArray(
10321034 cur_column ,
1033- zarr_array_path = file.path(
1035+ zarr_path = file.path(
10341036 zarr_path ,
10351037 paste0(name , " /" , sn , " /" , colnames(meta.data )[i ])
10361038 ),
1037- chunk_dim = min(length(cur_column ), 2000 ),
1039+ chunkdim = min(length(cur_column ), 2000 ),
10381040 nchar = nchar
10391041 )
10401042 }
@@ -1092,10 +1094,10 @@ writeZarrArrayInVrData <- function(
10921094 if (! is.array(a )) {
10931095 a <- as.array(a )
10941096 }
1095- a <- Rarr :: writeZarrArray(
1097+ a <- ZarrArray :: writeZarrArray(
10961098 a ,
1097- zarr_array_path = file.path(zarr_path , paste0(name , " /" , feat )),
1098- chunk_dim = chunkdim
1099+ zarr_path = file.path(zarr_path , paste0(name , " /" , feat )),
1100+ chunkdim = chunkdim
10991101 )
11001102 } else {
11011103 a <- DelayedArray :: DelayedArray(a )
@@ -1121,13 +1123,13 @@ writeZarrArrayInVrData <- function(
11211123 if (! is.array(a )) {
11221124 a <- as.array(a )
11231125 }
1124- a <- Rarr :: writeZarrArray(
1126+ a <- ZarrArray :: writeZarrArray(
11251127 a ,
1126- zarr_array_path = file.path(
1128+ zarr_path = file.path(
11271129 zarr_path ,
11281130 paste0(name , " /" , feat , " _norm" )
11291131 ),
1130- chunk_dim = chunkdim
1132+ chunkdim = chunkdim
11311133 )
11321134 } else {
11331135 a <- DelayedArray :: DelayedArray(a )
@@ -1157,10 +1159,10 @@ writeZarrArrayInVrData <- function(
11571159 if (! is.array(a )) {
11581160 a <- as.array(a )
11591161 }
1160- a <- Rarr :: writeZarrArray(
1162+ a <- ZarrArray :: writeZarrArray(
11611163 a ,
1162- zarr_array_path = file.path(zarr_path , paste0(name , " /rawdata" )),
1163- chunk_dim = chunkdim
1164+ zarr_path = file.path(zarr_path , paste0(name , " /rawdata" )),
1165+ chunkdim = chunkdim
11641166 )
11651167 } else {
11661168 a <- DelayedArray :: DelayedArray(a )
@@ -1186,10 +1188,10 @@ writeZarrArrayInVrData <- function(
11861188 if (! is.array(a )) {
11871189 a <- as.array(a )
11881190 }
1189- a <- Rarr :: writeZarrArray(
1191+ a <- ZarrArray :: writeZarrArray(
11901192 a ,
1191- zarr_array_path = file.path(zarr_path , paste0(name , " /normdata" )),
1192- chunk_dim = chunkdim
1193+ zarr_path = file.path(zarr_path , paste0(name , " /normdata" )),
1194+ chunkdim = chunkdim
11931195 )
11941196 } else {
11951197 a <- DelayedArray :: DelayedArray(a )
@@ -1248,13 +1250,13 @@ writeZarrArrayInImage <- function(
12481250 if (is.null(chunkdim )) {
12491251 chunkdim <- vapply(dim(coords ), function (x ) min(x , 1000 ), numeric (1 ))
12501252 }
1251- coords <- Rarr :: writeZarrArray(
1253+ coords <- ZarrArray :: writeZarrArray(
12521254 coords ,
1253- zarr_array_path = file.path(
1255+ zarr_path = file.path(
12541256 zarr_path ,
12551257 paste0(name , " /spat_" , spat , " /coords" )
12561258 ),
1257- chunk_dim = chunkdim
1259+ chunkdim = chunkdim
12581260 )
12591261
12601262 # Rarr::ZarrArray doesnt have rownames
@@ -1285,9 +1287,9 @@ writeZarrArrayInImage <- function(
12851287 }
12861288 img <- ImageArray :: writeImageArray(
12871289 img ,
1288- output = gsub( " .zarr$ " , " " , zarr_path ) ,
1290+ output = zarr_path ,
12891291 name = paste0(name , " /spat_" , spat , " /" , ch ),
1290- format = " ZarrImageArray " ,
1292+ format = " zarr " ,
12911293 replace = FALSE ,
12921294 chunkdim = chunkdim ,
12931295 level = level ,
0 commit comments