patchworks 0.11.2__tar.gz → 0.11.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. {patchworks-0.11.2 → patchworks-0.11.4}/PKG-INFO +1 -1
  2. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/snakemake.md +17 -2
  3. patchworks-0.11.4/workflow/.snakemake/iocache/latest.pkl +0 -0
  4. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/README.md +3 -2
  5. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/config/config.yaml +2 -0
  6. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/pixi.toml +4 -2
  7. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/profile/slurm/config.yaml +4 -0
  8. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/scripts/prepare_tiles.py +5 -0
  9. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvbGFiZWxzLmRvbmU= +0 -1
  10. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzAuZG9uZQ== +0 -1
  11. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzEuZG9uZQ== +0 -1
  12. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzIuZG9uZQ== +0 -1
  13. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzMuZG9uZQ== +0 -1
  14. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzQuZG9uZQ== +0 -1
  15. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzUuZG9uZQ== +0 -1
  16. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzYuZG9uZQ== +0 -1
  17. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc2VnLzcuZG9uZQ== +0 -1
  18. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvc3RhZ2UuemFycg== +0 -1
  19. patchworks-0.11.2/workflow/.snakemake/metadata/L3RtcC9wd193Zi9vdXQvdGlsZXMuanNvbg== +0 -1
  20. {patchworks-0.11.2 → patchworks-0.11.4}/.github/workflows/docs.yml +0 -0
  21. {patchworks-0.11.2 → patchworks-0.11.4}/.github/workflows/lint.yml +0 -0
  22. {patchworks-0.11.2 → patchworks-0.11.4}/.github/workflows/release.yml +0 -0
  23. {patchworks-0.11.2 → patchworks-0.11.4}/.gitignore +0 -0
  24. {patchworks-0.11.2 → patchworks-0.11.4}/.markdownlint-cli2.yaml +0 -0
  25. {patchworks-0.11.2 → patchworks-0.11.4}/README.md +0 -0
  26. {patchworks-0.11.2 → patchworks-0.11.4}/cliff.toml +0 -0
  27. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/chunks.md +0 -0
  28. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/cluster.md +0 -0
  29. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/io.md +0 -0
  30. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/merge_tile_labels.md +0 -0
  31. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/plugins/cellpose.md +0 -0
  32. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/plugins/napari.md +0 -0
  33. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/plugins/ome_zarr.md +0 -0
  34. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/relabel.md +0 -0
  35. {patchworks-0.11.2 → patchworks-0.11.4}/docs/api/tile_process.md +0 -0
  36. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/cellpose_2d.md +0 -0
  37. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/cellpose_2d.py +0 -0
  38. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/cellpose_3d.md +0 -0
  39. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/cellpose_3d.py +0 -0
  40. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/custom.md +0 -0
  41. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/custom_method.py +0 -0
  42. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/standalone_merge.md +0 -0
  43. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/stardist.md +0 -0
  44. {patchworks-0.11.2 → patchworks-0.11.4}/docs/examples/stardist_2d.py +0 -0
  45. {patchworks-0.11.2 → patchworks-0.11.4}/docs/getting_started.md +0 -0
  46. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/gpu_distributed.md +0 -0
  47. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/merging.md +0 -0
  48. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/ome_zarr_napari.md +0 -0
  49. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/performance.md +0 -0
  50. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/pitfalls.md +0 -0
  51. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/skip_empty.md +0 -0
  52. {patchworks-0.11.2 → patchworks-0.11.4}/docs/guide/tiling.md +0 -0
  53. {patchworks-0.11.2 → patchworks-0.11.4}/docs/index.md +0 -0
  54. {patchworks-0.11.2 → patchworks-0.11.4}/mkdocs.yml +0 -0
  55. {patchworks-0.11.2 → patchworks-0.11.4}/pyproject.toml +0 -0
  56. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/__init__.py +0 -0
  57. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_chunks.py +0 -0
  58. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_cluster.py +0 -0
  59. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_core.py +0 -0
  60. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_distributed.py +0 -0
  61. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_io.py +0 -0
  62. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_merge.py +0 -0
  63. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/_relabel.py +0 -0
  64. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/plugins/__init__.py +0 -0
  65. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/plugins/cellpose.py +0 -0
  66. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/plugins/napari.py +0 -0
  67. {patchworks-0.11.2 → patchworks-0.11.4}/src/patchworks/plugins/ome_zarr.py +0 -0
  68. {patchworks-0.11.2 → patchworks-0.11.4}/tests/test_core.py +0 -0
  69. {patchworks-0.11.2 → patchworks-0.11.4}/tests/test_distributed.py +0 -0
  70. {patchworks-0.11.2 → patchworks-0.11.4}/tests/test_napari.py +0 -0
  71. {patchworks-0.11.2 → patchworks-0.11.4}/tests/test_ome_zarr.py +0 -0
  72. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/Snakefile +0 -0
  73. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/rules/common.smk +0 -0
  74. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/rules/convert.smk +0 -0
  75. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/rules/merge.smk +0 -0
  76. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/rules/segment.smk +0 -0
  77. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/scripts/_pw.py +0 -0
  78. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/scripts/convert.py +0 -0
  79. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/scripts/merge.py +0 -0
  80. {patchworks-0.11.2 → patchworks-0.11.4}/workflow/scripts/segment_tile.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patchworks
3
- Version: 0.11.2
3
+ Version: 0.11.4
4
4
  Summary: Tiled processing of arbitrarily large images with globally consistent labels
5
5
  Project-URL: Homepage, https://github.com/imcf/patchworks
6
6
  Project-URL: Issues, https://github.com/imcf/patchworks/issues
@@ -56,6 +56,7 @@ shard: false # true → pack chunks into shards (fewer files)
56
56
  channel: 0 # channel to segment (null = keep all)
57
57
  level: 0 # pyramid level (0 = full resolution)
58
58
  tile_shape: "auto" # "auto", or e.g. [16, 1024, 1024] (zyx)
59
+ gpu_memory_gb: null # for "auto" on SLURM: your segment GPU's VRAM
59
60
  overlap: 30 # halo ≈ one object diameter
60
61
  skip_empty: true # skip background tiles
61
62
  empty_threshold: null # null → Otsu
@@ -81,6 +82,11 @@ sequential_labels: true # renumber labels to a contiguous 1..N
81
82
  more (faster) jobs; very large 3-D tiles are slow. Keep `do_3D: false` (2-D
82
83
  per slice) if your objects segment fine per slice — it is much faster.
83
84
 
85
+ Tile planning runs on a **CPU** node, which cannot see the segment GPU, so
86
+ it logs `GPU memory query failed … using 8 GiB default` and sizes tiles for
87
+ 8 GiB. Harmless, but to size for the real GPU set `gpu_memory_gb:` to its
88
+ VRAM (e.g. `24`, `40`, `80`) — or just set `tile_shape` explicitly.
89
+
84
90
  ## 4. Dry-run (always do this first)
85
91
 
86
92
  Check the plan without running anything:
@@ -96,11 +102,14 @@ known after `prepare` decides which tiles are non-empty.)
96
102
  ## 5a. Run locally (single machine)
97
103
 
98
104
  ```bash
99
- python -m snakemake -s Snakefile --configfile config/config.yaml --cores 8
105
+ python -m snakemake -s Snakefile --configfile config/config.yaml \
106
+ --rerun-triggers mtime --cores 8
100
107
  ```
101
108
 
102
109
  Tiles run on the local machine (one at a time on the GPU). Good for a small
103
- image or a smoke test.
110
+ image or a smoke test. `--rerun-triggers mtime` re-runs only steps whose output
111
+ is missing/stale — so upgrading patchworks won't redo the conversion (the SLURM
112
+ profile sets this for you).
104
113
 
105
114
  ## 5b. Run on SLURM (one GPU job per tile)
106
115
 
@@ -179,6 +188,12 @@ The OME-ZARR conversion is **not redone** once `image.zarr` exists: the
179
188
  on every later run. To force a fresh conversion, delete `image.zarr` or run
180
189
  `snakemake --forcerun convert`.
181
190
 
191
+ This relies on `--rerun-triggers mtime` (set in the SLURM profile and the pixi
192
+ tasks; add it on the command line for ad-hoc local runs). Without it, Snakemake
193
+ also re-runs a step when its **code, params or software environment** change —
194
+ so upgrading patchworks would re-do the conversion and overwrite an existing
195
+ result. Keep `mtime` and reruns happen only when an output is missing or stale.
196
+
182
197
  ## pixi (instead of conda)
183
198
 
184
199
  Conda is **not** required — Snakemake runs in whatever environment launches it.
@@ -56,10 +56,11 @@ account, GPU request).
56
56
  ## Run
57
57
 
58
58
  ```bash
59
- # locally (single machine)
60
- snakemake --cores 8 --configfile config/config.yaml
59
+ # locally (single machine) — mtime triggers => upgrades don't redo conversion
60
+ snakemake --cores 8 --configfile config/config.yaml --rerun-triggers mtime
61
61
 
62
62
  # on SLURM — one GPU job per tile, up to `jobs:` in parallel
63
+ # (the profile already sets --rerun-triggers mtime)
63
64
  snakemake --workflow-profile profile/slurm --configfile config/config.yaml
64
65
  ```
65
66
 
@@ -22,6 +22,8 @@ shard: false # true → pack chunks into shards (zarr v3; fewer files)
22
22
  channel: 0 # channel to segment
23
23
  level: 0 # pyramid level to segment (0 = full res)
24
24
  tile_shape: "auto" # "auto", or e.g. [16, 1024, 1024] (zyx)
25
+ gpu_memory_gb: null # for "auto" on a CPU prepare node: your segment GPU's VRAM
26
+ # (e.g. 24, 40, 80). null → 8 GiB guess + a harmless warning
25
27
  overlap: 30 # halo (≈ one object diameter)
26
28
  skip_empty: true # skip background tiles
27
29
  empty_threshold: null # null → Otsu; or a number
@@ -19,6 +19,8 @@ python = "3.12.*"
19
19
  patchworks = { version = "*", extras = ["workflow", "cellpose", "imaris", "bioio"] }
20
20
 
21
21
  [tasks]
22
- dry = "snakemake -s Snakefile --configfile config/config.yaml -n -p"
23
- go = "snakemake -s Snakefile --configfile config/config.yaml --cores 8"
22
+ # --rerun-triggers mtime: don't redo finished steps (e.g. the conversion) just
23
+ # because the patchworks version/code changed only when an output is missing.
24
+ dry = "snakemake -s Snakefile --configfile config/config.yaml --rerun-triggers mtime -n -p"
25
+ go = "snakemake -s Snakefile --configfile config/config.yaml --rerun-triggers mtime --cores 8"
24
26
  slurm = "snakemake --workflow-profile profile/slurm --configfile config/config.yaml"
@@ -8,6 +8,10 @@ executor: slurm
8
8
  jobs: 64 # max concurrent SLURM jobs (≈ how many GPUs you can grab at once)
9
9
  latency-wait: 60
10
10
  rerun-incomplete: true
11
+ # Only re-run when an output is missing/stale — NOT when the patchworks code,
12
+ # params or software env change. Stops an upgrade from re-doing the expensive
13
+ # conversion / re-segmenting an existing image.zarr.
14
+ rerun-triggers: mtime
11
15
  printshellcmds: true
12
16
  keep-going: true
13
17
 
@@ -20,12 +20,17 @@ image = open_image(work_dir, cfg["channel"], cfg["level"])
20
20
  ts = cfg.get("tile_shape", "auto")
21
21
  if ts == "auto":
22
22
  cp = cfg["cellpose"]
23
+ # prepare runs on a CPU node, so the segment GPU's VRAM can't be queried
24
+ # here; pass gpu_memory_gb from the config to size tiles for it (avoids the
25
+ # "GPU memory query failed" fallback). None => the built-in 8 GiB default.
26
+ gpu_gb = cfg.get("gpu_memory_gb")
23
27
  tile_shape = tuple(
24
28
  partial(
25
29
  auto_tile_shape_cellpose,
26
30
  do_3D=cp.get("do_3D", False),
27
31
  use_gpu=cp.get("gpu", True),
28
32
  diameter=cp.get("diameter"),
33
+ gpu_memory=int(gpu_gb * 1024**3) if gpu_gb else None,
29
34
  )(image.shape, image.dtype)
30
35
  )
31
36
  else:
@@ -1 +0,0 @@
1
- {"rule": "merge", "input": ["/tmp/pw_wf/out/seg/0.done", "/tmp/pw_wf/out/seg/1.done", "/tmp/pw_wf/out/seg/2.done", "/tmp/pw_wf/out/seg/3.done", "/tmp/pw_wf/out/seg/4.done", "/tmp/pw_wf/out/seg/5.done", "/tmp/pw_wf/out/seg/6.done", "/tmp/pw_wf/out/seg/7.done"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/merge.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289946198395, "starttime": 1782306826.05809, "endtime": 1782306826.057891, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/seg/0.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/1.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/2.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/3.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/4.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/5.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/6.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "/tmp/pw_wf/out/seg/7.done": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938895482, "starttime": 1782306823.2564273, "endtime": 1782306823.255227, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938895635, "starttime": 1782306823.2361996, "endtime": 1782306823.2352273, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938895788, "starttime": 1782306820.7251186, "endtime": 1782306820.724245, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938792521, "starttime": 1782306820.8450873, "endtime": 1782306820.8442442, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938792674, "starttime": 1782306820.7828398, "endtime": 1782306820.7822447, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938792827, "starttime": 1782306823.5588164, "endtime": 1782306823.558225, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938792980, "starttime": 1782306823.0890763, "endtime": 1782306823.0882282, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "segment", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json", "/tmp/pw_wf/out/stage.zarr", "/tmp/pw_wf/out/tiles.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/segment_tile.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289938793133, "starttime": 1782306821.0048127, "endtime": 1782306821.0042431, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/tiles.json": "sha256:d5abe0a9301e6274b02cdae545a8b5e414d3b51c1396d18ae9bcb1ea935bfe67", "/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "prepare", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/prepare_tiles.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289946375343, "starttime": 1782306818.2703326, "endtime": 1782306818.2701185, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
@@ -1 +0,0 @@
1
- {"rule": "prepare", "input": ["/tmp/pw_wf/out/image.zarr/zarr.json"], "log": [], "shellcmd": null, "params": [], "code": " \"../scripts/prepare_tiles.py\"\n", "record_format_version": 6, "conda_env": null, "container_img_url": null, "software_stack_hash": "d41d8cd98f00b204e9800998ecf8427e", "job_hash": 8289946375343, "starttime": 1782306818.2703326, "endtime": 1782306818.2692626, "incomplete": false, "external_jobid": null, "input_checksums": {"/tmp/pw_wf/out/image.zarr/zarr.json": "sha256:8baa9bb439818b6e4a5358464300e6239dae6fddb2b31fa26717a7c56eaf1458"}}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes