From a610ad4acbc6af8e3278f37cc4c1889f47660da7 Mon Sep 17 00:00:00 2001 From: Pariksheet Nanda Date: Wed, 22 Mar 2017 10:44:50 -0400 Subject: [PATCH] ENH: Use cellprofiler batch mode for multi-core processing --- Makefile | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 399f0f8..6eb6c69 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ # Overwritable paths to executables CELLPROFILER := cellprofiler +PARALLEL := parallel PYTHON := python RSCRIPT := Rscript @@ -21,8 +22,15 @@ TARGETS_img_filelist := results/cellprofiler/filelist SOURCES_cellprofiler_filelist := $(TARGETS_img_filelist) SOURCES_cellprofiler_pipe := src/image-processing-pipeline.cpproj SOURCES_cellprofiler_img := $(TARGETS_zproj) -SOURCES_cellprofiler := $(SOURCES_cellprofiler_filelist) \ - $(SOURCES_cellprofiler_pipe) $(SOURCES_cellprofiler_img) +SOURCES_cellprofiler_common := $(SOURCES_cellprofiler_filelist) \ + $(SOURCES_cellprofiler_img) +SOURCES_cellprofiler_gui := $(SOURCES_cellprofiler_common) \ + $(SOURCES_cellprofiler_pipe) +SOURCES_cellprofiler_batch := $(SOURCES_cellprofiler_common) +TARGETS_cellprofiler_batch := results/cellprofiler/Batch_data.h5 +SOURCES_cellprofiler_commands := $(TARGETS_cellprofiler_batch) +TARGETS_cellprofiler_commands := results/cellprofiler/batch_commands.sh +SOURCES_cellprofiler_headless := $(TARGETS_cellprofiler_commands) TARGETS_cellprofiler_db := results/cellprofiler/all-plates.db TARGETS_cellprofiler_prop := results/cellprofiler/all-plates.properties TARGETS_cellprofiler := $(TARGETS_cellprofiler_db) $(TARGETS_cellprofiler_prop) @@ -70,7 +78,13 @@ $(TARGETS_img_zproj) : $(SOURCES_img_zproj) .PHONY : cellprofiler cellprofiler : $(TARGETS_cellprofiler) ## Collect statistics about all images. -$(call singleton,$(TARGETS_cellprofiler)) : $(SOURCES_cellprofiler) +$(call singleton,$(TARGETS_cellprofiler)) : $(SOURCES_cellprofiler_headless) + $(PARALLEL) :::: $< + +$(TARGETS_cellprofiler_commands) : $(SOURCES_cellprofiler_commands) + $(CELLPROFILER) --get-batch-commands=$< | sed 's#^CellProfiler#$(CELLPROFILER)#' > $@ + +$(TARGETS_cellprofiler_batch) : $(SOURCES_cellprofiler) $(CELLPROFILER) $(CELLPROFILER_OPTS) --run-headless .PHONY : gui-cellprofiler