Skip to content

Commit 6a2427d

Browse files
Donglai Weiclaude
andcommitted
Update large decode yaml: add overlap param, document both pipelines
overlap=[0,0,0] (default) uses existing non-overlapping chunk pipeline. overlap=[N,N,N] enables the new overlap pipeline with fragment consensus + region graph merge. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 520712e commit 6a2427d

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

tutorials/waterz_decoding_large.yaml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
experiment_name: waterz_decode_large
22
description: >
33
Large-volume parallel waterz decoding using the file-backed orchestrator.
4-
Splits the affinity volume into chunks, decodes each independently,
5-
then merges borders via IOU matching.
64
7-
Supports serial mode (single process) or parallel mode (multiple workers
8-
on shared filesystem, e.g. SLURM array jobs).
5+
Two modes:
6+
- overlap=[0,0,0] (default): non-overlapping chunks, single-face IOU stitching
7+
- overlap=[N,N,N]: overlapping chunks, fragment consensus + region graph merge
98
109
Usage (serial):
1110
python scripts/decode_large.py --config tutorials/waterz_decoding_large.yaml
@@ -26,23 +25,22 @@ large_decode:
2625
affinity_path: "/projects/weilab/dataset/liconn/mansour/DL288B_251222S_cond5_40x_12tiles_round1_fused_488_crop512x1024x1024_ffn_sharp_tta_x8_prediction_uint8.h5" # SET THIS
2726

2827
# Workflow directory (shared filesystem for parallel workers)
29-
workflow_root: "/projects/weilab/weidf/lib/pytorch_connectomics/outputs/neuron_liconn_mit/DL228B/" # SET THIS: e.g. /scratch/waterz_workflow/
28+
workflow_root: "/projects/weilab/weidf/lib/pytorch_connectomics/outputs/neuron_liconn_mit/DL228B/" # SET THIS
3029

31-
# Chunk size in voxels (Z, Y, X). Each chunk is decoded independently.
32-
# Smaller chunks = less memory per worker but more border stitching.
33-
# Rule of thumb: ~256^3 for 16 GB RAM, ~512^3 for 64 GB RAM.
34-
chunk_shape: [80, 2066, 2066]
30+
# Chunk layout
31+
chunk_shape: [80, 2066, 2066] # voxels per chunk (Z, Y, X)
32+
overlap: [0, 0, 0] # overlap per axis; [8,8,8] for overlap pipeline
3533

36-
# Waterz agglomeration parameters (same as decode_waterz kwargs)
34+
# Waterz agglomeration parameters
3735
thresholds: [0.4]
3836
merge_function: aff85_his256
39-
aff_threshold_low: 0.1
40-
aff_threshold_high: 0.999
37+
aff_threshold_low: 0
38+
aff_threshold_high: 1
4139
channel_order: xyz
4240
#use_aff_uint8: true # uint8 affinities (4x less aff memory)
4341
#use_seg_uint32: true # uint32 segment IDs (2x less seg memory)
4442

45-
# Fragment initialization (per chunk)
43+
# Fragment initialization (per chunk, overlap pipeline only)
4644
#compute_fragments: true # 2D slice-by-slice mahotas watershed
4745
#seed_method: maxima_distance # maxima_distance[-T], minima[-T], grid[-N]
4846

@@ -52,7 +50,7 @@ large_decode:
5250
dust_merge_affinity: 0.3
5351
dust_remove_size: 200
5452

55-
# Border stitching (same params as face_merge_pairs / branch_merge)
53+
# Border stitching / overlap merge (same params as face_merge_pairs)
5654
min_overlap: 10 # min overlap pixels to consider a pair
5755
iou_threshold: 0.0 # full Jaccard IOU threshold (0=disabled)
5856
one_sided_threshold: 0.9 # overlap/min_size for small-into-large merge

0 commit comments

Comments
 (0)