@@ -43,10 +43,13 @@ mergeBatchInMemory <- function(datasetIdToFilePath, saveFile) {
4343 stop(' There were no passing seurat objects!' )
4444 }
4545
46- seuratObj <- CellMembrane :: MergeSeuratObjs(toMerge , projectName = projectName , doGC = doDiet , errorOnBarcodeSuffix = errorOnBarcodeSuffix )
47- saveRDS(seuratObj , file = saveFile )
46+ saveRDS(CellMembrane :: MergeSeuratObjs(toMerge , projectName = projectName , doGC = doDiet , errorOnBarcodeSuffix = errorOnBarcodeSuffix ), file = saveFile )
4847 filesToDelete <<- c(filesToDelete , saveFile )
4948
49+ logger :: log_info(paste0(' mem used: ' , R.utils :: hsize(as.numeric(pryr :: mem_used()))))
50+ gc()
51+ logger :: log_info(paste0(' after gc: ' , R.utils :: hsize(as.numeric(pryr :: mem_used()))))
52+
5053 return (saveFile )
5154}
5255
@@ -95,11 +98,12 @@ mergeBatch <- function(seuratObjects, outerBatchIdx, maxBatchSize = 20, maxInput
9598
9699 batchName <- paste0(' merge.' , outerBatchIdx , ' .' , i )
97100 saveFile <- paste0(batchName , ' .rds' )
101+ if (length(activeBatch ) == 1 ){
102+ print(' Only single file in batch, skipping merge' )
103+ mergedObjectFiles [[batchName ]] <- activeBatch [[1 ]]
104+ next
105+ }
98106 mergedObjectFiles [[batchName ]] <- mergeBatchInMemory(activeBatch , saveFile = saveFile )
99-
100- logger :: log_info(paste0(' mem used: ' , R.utils :: hsize(as.numeric(pryr :: mem_used()))))
101- gc()
102- logger :: log_info(paste0(' after gc: ' , R.utils :: hsize(as.numeric(pryr :: mem_used()))))
103107 }
104108 logger :: log_info(' Done with inner batch' )
105109
0 commit comments