Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@ pixelSize = params['scales']['pixelSize'] # {'unit': 'mm', 'value': 0.000219}
- Workers inherit from `nimbusimage/worker-base:latest` or `nimbusimage/image-processing-base:latest`
- Test workers (random_squares, sample_interface) use `nimbusimage/test-worker-base:latest`, a micromamba-based image using only conda-forge (avoids Anaconda ToS issues)
- Docker labels identify worker type: `isPropertyWorker`, `isAnnotationWorker`, `annotationShape`, `interfaceName`, `interfaceCategory`
- Every worker's Dockerfile (production `Dockerfile` and any `Dockerfile_M1` variant, in the **final** stage for multi-stage builds) must set an explicit `isGPUWorker="true"` or `isGPUWorker="false"` label — the NimbusImage dispatcher reads it to route the job to the `gpu` or `cpu` Celery queue. An unlabeled image falls back to the `gpu` queue and logs a warning in prod, so never leave it unset on a new worker.
- Architecture-aware builds: `Dockerfile` (x86_64/production) and `Dockerfile_M1` (arm64/Mac development)
- GPU workers (deconwolf, condensatenet, etc.) use NVIDIA CUDA base images by default
- Set `MAC_DEVELOPMENT_MODE=true` to build CPU-only versions on Mac
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/ai_analysis/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ COPY ./workers/annotations/ai_analysis/property_handling.py /
ENV ANTHROPIC_API_KEY=""

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Claude natural language analyzer" \
interfaceCategory="AI analysis" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/ai_analysis/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ COPY ./workers/annotations/ai_analysis/property_handling.py /
ENV ANTHROPIC_API_KEY=""

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Claude natural language analyzer" \
interfaceCategory="AI analysis" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/cellpose/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ COPY ./worker_client /worker_client
RUN pip install /worker_client

LABEL isUPennContrastWorker=True \
isGPUWorker="true" \
isAnnotationWorker=True \
interfaceName="Cellpose" \
interfaceCategory="Cellpose" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/cellpose_train/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ COPY ./worker_client /worker_client
RUN pip install /worker_client

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="Cellpose retrain" \
interfaceCategory="Cellpose" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/cellposesam/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ COPY ./worker_client /worker_client
RUN pip install /worker_client

LABEL isUPennContrastWorker=True \
isGPUWorker="true" \
isAnnotationWorker=True \
interfaceName="Cellpose-SAM" \
interfaceCategory="Cellpose" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/condensatenet/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ COPY ./workers/annotations/condensatenet/entrypoint.py /
WORKDIR /

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="CondensateNet segmentation" \
interfaceCategory="CondensateNet" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/connect_sequential/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/annotations/connect_sequential/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Connect Sequential" \
interfaceCategory="Connections" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/connect_timelapse/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/annotations/connect_timelapse/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Connect Time Lapse" \
interfaceCategory="Connections" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/connect_to_nearest/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/annotations/connect_to_nearest/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Connect to Nearest" \
interfaceCategory="Connections" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/crop/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/crop/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Crop" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/deconwolf/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ COPY ./workers/annotations/deconwolf/entrypoint.py /
WORKDIR /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Route Deconwolf to the GPU queue

With the new dispatcher consuming isGPUWorker, this line sends the production Deconwolf image to the CPU queue even though this Dockerfile is CUDA/OpenCL-enabled and the worker interface defaults Use GPU to true. In that context, Deconwolf jobs that should run on the GPU fleet will land on CPU workers and either fall back to CPU or run much slower, so the production Dockerfile should be labeled true (the M1 variant can remain CPU-only).

Useful? React with 👍 / 👎.

isAnnotationWorker="" \
interfaceName="Deconwolf Deconvolution" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/deconwolf/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ RUN git clone https://github.com/elgw/deconwolf.git /deconwolf && \
COPY ./workers/annotations/deconwolf/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Deconwolf Deconvolution" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/gaussian_blur/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/gaussian_blur/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Gaussian Blur" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/h_and_e_deconvolution/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/h_and_e_deconvolution/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="H&E Deconvolution" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/histogram_matching/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/histogram_matching/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Histogram Matching" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/laplacian_of_gaussian/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/annotations/laplacian_of_gaussian/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Laplacian of Gaussian" \
interfaceCategory="Object Detection" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/piscis/predict/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ COPY ./workers/annotations/piscis/utils.py /
COPY ./workers/annotations/piscis/predict/entrypoint.py /

LABEL isUPennContrastWorker=True \
isGPUWorker="true" \
isAnnotationWorker=True \
interfaceName="Piscis spot detection" \
interfaceCategory="Piscis" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/piscis/train/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ COPY ./workers/annotations/piscis/utils.py /
COPY ./workers/annotations/piscis/train/entrypoint.py /

LABEL isUPennContrastWorker=True \
isGPUWorker="true" \
isAnnotationWorker=True \
interfaceName="Piscis spot training" \
interfaceCategory="Piscis" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/registration/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/registration/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Time lapse registration" \
interfaceCategory="Image Processing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/rolling_ball/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ FROM nimbusimage/image-processing-base:latest
COPY ./workers/annotations/rolling_ball/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Rolling Ball" \
interfaceCategory="Image Processing" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 automatic mask generator" \
interfaceCategory="SAM2" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 automatic mask generator" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_fewshot_segmentation/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 few-shot segmentation" \
interfaceCategory="SAM2" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 few-shot segmentation" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_propagate/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 propagator" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_propagate/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 propagator" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_refine/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 Refiner" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_refine/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 propagator" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_video/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 video" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam2_video/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM2 video" \
interfaceCategory="SAM2" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam_fewshot_segmentation/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM few-shot segmentation" \
interfaceCategory="SAM" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sam_fewshot_segmentation/Dockerfile_M1
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ COPY ./annotation_utilities /annotation_utilities
RUN pip install /annotation_utilities

LABEL isUPennContrastWorker="" \
isGPUWorker="true" \
isAnnotationWorker="" \
interfaceName="SAM few-shot segmentation" \
interfaceCategory="SAM" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/sample_interface/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/test-worker-base:latest
COPY --chown=$MAMBA_USER:$MAMBA_USER ./workers/annotations/sample_interface/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isAnnotationWorker="" \
interfaceName="Sample interface" \
interfaceCategory="Testing" \
Expand Down
1 change: 1 addition & 0 deletions workers/annotations/stardist/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ COPY ./worker_client /worker_client
RUN pip install /worker_client

LABEL isUPennContrastWorker=True \
isGPUWorker="true" \
isAnnotationWorker=True \
interfaceName="Stardist" \
interfaceCategory="Stardist" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_annulus_intensity_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Annulus intensity measurements" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_colony_two_color_intensity_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Colony two color intensity" \
Expand Down
1 change: 1 addition & 0 deletions workers/properties/blobs/blob_intensity_worker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_intensity_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Blob intensity measurements" \
Expand Down
1 change: 1 addition & 0 deletions workers/properties/blobs/blob_metrics_worker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_metrics_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Blob metrics" \
Expand Down
1 change: 1 addition & 0 deletions workers/properties/blobs/blob_overlap_worker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_overlap_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Blob overlap" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/blobs/blob_point_count_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Point count" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ RUN pip install -e devops/girder/annotation_client/
COPY ./workers/properties/blobs/blob_random_forest_classifier/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Random Forest Classifier" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ RUN pip install -e devops/girder/annotation_client/
COPY ./workers/properties/blobs/blob_random_forest_classifier/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Random Forest Classifier" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/connections/children_count_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="polygon" \
interfaceName="Count connected objects" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/connections/parent_child_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="any" \
interfaceName="Connection IDs" \
Expand Down
1 change: 1 addition & 0 deletions workers/properties/lines/line_scan_worker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/lines/line_scan_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="line" \
interfaceName="Line scan CSV" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/points/point_circle_intensity_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="point" \
interfaceName="Point intensity" \
Expand Down
1 change: 1 addition & 0 deletions workers/properties/points/point_metrics_worker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/points/point_metrics_worker/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="point" \
interfaceName="Point metrics" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ FROM nimbusimage/worker-base:latest
COPY ./workers/properties/points/point_to_nearest_blob_distance/entrypoint.py /

LABEL isUPennContrastWorker="" \
isGPUWorker="false" \
isPropertyWorker="" \
annotationShape="point" \
interfaceName="Distance to nearest blob" \
Expand Down
Loading