Skip to content

Commit d6df820

Browse files
committed
Improvements to MergeSeurat
1 parent cc57c13 commit d6df820

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

singlecell/resources/chunks/MergeSeurat.R

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)