patchworks 0.11.0__tar.gz → 0.11.1__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.
- {patchworks-0.11.0 → patchworks-0.11.1}/PKG-INFO +1 -1
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/snakemake.md +21 -2
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/README.md +9 -0
- patchworks-0.11.1/workflow/pixi.toml +24 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/.github/workflows/docs.yml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/.github/workflows/lint.yml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/.github/workflows/release.yml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/.gitignore +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/.markdownlint-cli2.yaml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/README.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/cliff.toml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/chunks.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/cluster.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/io.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/merge_tile_labels.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/plugins/cellpose.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/plugins/napari.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/plugins/ome_zarr.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/relabel.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/api/tile_process.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/cellpose_2d.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/cellpose_2d.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/cellpose_3d.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/cellpose_3d.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/custom.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/custom_method.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/standalone_merge.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/stardist.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/examples/stardist_2d.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/getting_started.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/gpu_distributed.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/merging.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/ome_zarr_napari.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/performance.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/pitfalls.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/skip_empty.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/guide/tiling.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/docs/index.md +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/mkdocs.yml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/pyproject.toml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/__init__.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_chunks.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_cluster.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_core.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_distributed.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_io.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_merge.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/_relabel.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/plugins/__init__.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/plugins/cellpose.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/plugins/napari.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/src/patchworks/plugins/ome_zarr.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/tests/test_core.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/tests/test_distributed.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/tests/test_napari.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/tests/test_ome_zarr.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L2ltYWdlLnphcnI= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L2xhYmVscy5kb25l +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3N0YWdlLnphcnI= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3NlZy80LmRvbmU= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3NlZy8wLmRvbmU= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3NlZy8xLmRvbmU= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3NlZy8zLmRvbmU= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/.snakemake/metadata/L3RtcC90b3kvb3V0L3RpbGVzLmpzb24= +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/Snakefile +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/config/config.yaml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/profile/slurm/config.yaml +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/rules/common.smk +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/rules/convert.smk +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/rules/merge.smk +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/rules/segment.smk +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/scripts/_pw.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/scripts/convert.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/scripts/merge.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/workflow/scripts/prepare_tiles.py +0 -0
- {patchworks-0.11.0 → patchworks-0.11.1}/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.
|
|
3
|
+
Version: 0.11.1
|
|
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
|
|
@@ -34,8 +34,9 @@ pip install "patchworks[workflow,cellpose,imaris,bioio]"
|
|
|
34
34
|
- `cellpose` → the segmentation model
|
|
35
35
|
- `imaris` / `bioio` → read your input format (`.ims`, `.czi`, `.lif`, …)
|
|
36
36
|
|
|
37
|
-
On a cluster, do this inside a conda/venv that the compute nodes can
|
|
38
|
-
each rule activate a conda env
|
|
37
|
+
On a cluster, do this inside a conda/venv/pixi env that the compute nodes can
|
|
38
|
+
see, or let each rule activate a conda env. Prefer pixi? Skip this step — the
|
|
39
|
+
workflow ships a `pixi.toml`; see *pixi (instead of conda)*, below.
|
|
39
40
|
|
|
40
41
|
## 3. Configure the run
|
|
41
42
|
|
|
@@ -173,6 +174,24 @@ Snakemake is resumable — if jobs fail or you cancel, just relaunch the same
|
|
|
173
174
|
command and it picks up only the missing tiles. To force a clean rerun, delete
|
|
174
175
|
`work_dir` (or the relevant outputs).
|
|
175
176
|
|
|
177
|
+
## pixi (instead of conda)
|
|
178
|
+
|
|
179
|
+
Conda is **not** required — Snakemake runs in whatever environment launches it.
|
|
180
|
+
The workflow ships a `pixi.toml`, so the whole thing is:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
cd workflow
|
|
184
|
+
pixi install # builds the env (patchworks + snakemake + readers)
|
|
185
|
+
pixi run dry # dry-run
|
|
186
|
+
pixi run go # run locally (8 cores)
|
|
187
|
+
pixi run slurm # submit to SLURM (edit profile/slurm/config.yaml first)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
`pixi run …` activates the env, so the rule scripts execute in that env — do
|
|
191
|
+
**not** pass `--use-conda`. On a cluster, keep the `workflow/` directory on a
|
|
192
|
+
shared filesystem the compute nodes can read: the SLURM executor re-launches
|
|
193
|
+
Snakemake from this env's interpreter on each compute node.
|
|
194
|
+
|
|
176
195
|
## Conda (optional)
|
|
177
196
|
|
|
178
197
|
To have each rule run in a named conda env instead of the active one, add
|
|
@@ -38,6 +38,15 @@ pip install "patchworks[workflow,cellpose,imaris,bioio]"
|
|
|
38
38
|
# workflow → snakemake + the SLURM executor plugin
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
Prefer pixi? No conda needed — a `pixi.toml` is included:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pixi install
|
|
45
|
+
pixi run dry # dry-run
|
|
46
|
+
pixi run go # run locally
|
|
47
|
+
pixi run slurm # submit to SLURM
|
|
48
|
+
```
|
|
49
|
+
|
|
41
50
|
## Configure
|
|
42
51
|
|
|
43
52
|
Edit `config/config.yaml` (input, output dir, channel, tile shape, Cellpose
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# pixi environment for the patchworks Snakemake workflow.
|
|
2
|
+
# pixi install
|
|
3
|
+
# pixi run dry # dry-run (plan only)
|
|
4
|
+
# pixi run go # run locally
|
|
5
|
+
# pixi run slurm # submit to SLURM (edit profile/slurm/config.yaml first)
|
|
6
|
+
#
|
|
7
|
+
# On a cluster, put this project on a shared filesystem the compute nodes can
|
|
8
|
+
# read: the SLURM jobs re-launch snakemake from this env's interpreter.
|
|
9
|
+
|
|
10
|
+
[project]
|
|
11
|
+
name = "patchworks-workflow"
|
|
12
|
+
channels = ["conda-forge"]
|
|
13
|
+
platforms = ["linux-64"]
|
|
14
|
+
|
|
15
|
+
[dependencies]
|
|
16
|
+
python = "3.12.*"
|
|
17
|
+
|
|
18
|
+
[pypi-dependencies]
|
|
19
|
+
patchworks = { version = "*", extras = ["workflow", "cellpose", "imaris", "bioio"] }
|
|
20
|
+
|
|
21
|
+
[tasks]
|
|
22
|
+
dry = "snakemake -s Snakefile --configfile config/config.yaml -n -p"
|
|
23
|
+
go = "snakemake -s Snakefile --configfile config/config.yaml --cores 8"
|
|
24
|
+
slurm = "snakemake --workflow-profile profile/slurm --configfile config/config.yaml"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|