Skip to content

Commit 2950346

Browse files
committed
Better resume behavior for escape
1 parent 431345b commit 2950346

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

singlecell/resources/chunks/RunEscape.R

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,41 @@ if (Sys.getenv('SEURAT_MAX_THREADS') != '') {
55
}
66

77
for (datasetId in names(seuratObjects)) {
8-
printName(datasetId)
9-
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
8+
printName(datasetId)
9+
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
1010

11-
seuratObj <- CellMembrane::RunEscape(seuratObj, outputAssayBaseName = outputAssayBaseName, doPlot = TRUE, heatmapGroupingVars = heatmapGroupingVars, performDimRedux = performDimRedux, escapeMethod = escapeMethod, nCores = nCores)
11+
toDelete <- c()
1212

13-
saveData(seuratObj, datasetId)
13+
vals <- eval(formals(CellMembrane::RunEscape)$msigdbGeneSets)
14+
for (idx in seq_along(vals)) {
15+
geneSetName <- names(vals)[idx]
16+
geneSet <- vals[[idx]]
17+
logger::log_info(paste0('Processing: ', geneSetName, ' / ', geneSet))
1418

15-
# Cleanup
16-
rm(seuratObj)
17-
gc()
19+
fn <- paste0('escape.', datasetId, '.', ifelse(geneSetName == '', yes = geneSet, no = geneSetName), '.rds')
20+
if (file.exists(fn)) {
21+
logger::log_info(paste0('resuming: ', fn))
22+
seuratObj <- readRDS(fn)
23+
toDelete <- c(toDelete, fn)
24+
} else {
25+
msigdbGeneSets <- geneSet
26+
if (geneSetName != '') {
27+
names(msigdbGeneSets) <- geneSetName
28+
}
29+
30+
seuratObj <- CellMembrane::RunEscape(seuratObj, msigdbGeneSets = msigdbGeneSets, outputAssayBaseName = outputAssayBaseName, doPlot = TRUE, heatmapGroupingVars = heatmapGroupingVars, performDimRedux = performDimRedux, escapeMethod = escapeMethod, nCores = nCores)
31+
saveRDS(seuratObj, file = fn)
32+
toDelete <- c(toDelete, fn)
33+
}
34+
}
35+
36+
for(fn in toDelete) {
37+
unlink(fn)
38+
}
39+
40+
saveData(seuratObj, datasetId)
41+
42+
# Cleanup
43+
rm(seuratObj)
44+
gc()
1845
}

singlecell/src/org/labkey/singlecell/analysis/AbstractSingleCellHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ else if ("NotUsed".equals(val))
10301030
}
10311031
}
10321032

1033-
if (saturationIdx >= 0)
1033+
if (saturationIdx >= 0 && !"NA".equals(line[saturationIdx]) && !StringUtils.isEmpty(line[saturationIdx]))
10341034
{
10351035
double saturation = Double.parseDouble(line[saturationIdx]);
10361036
totalSaturation += saturation;

0 commit comments

Comments
 (0)