Skip to main content
# convolutional network metric scripts
- Code for fast watersheds. Code is based around code from https://bitbucket.org/poozh/watershed described in http://arxiv.org/abs/1505.00249. For use in https://github.com/naibaf7/PyGreentea.

# building

### conda
- `conda install -c conda-forge zwatershed`

### pip [<img src="https://img.shields.io/pypi/v/zwatershed.svg?maxAge=2592000">](https://pypi.python.org/pypi/zwatershed/)
- `pip install zwatershed`

### from source
- clone the repository
- run ./make.sh

### requirements
- numpy, h5py, cython
- if using parallel watershed, also requires multiprocessing or pyspark
- in order to build the cython, requires a c++ compiler and boost

# function api
- `(segs, rand) = zwatershed_and_metrics(segTrue, aff_graph, eval_thresh_list, seg_save_thresh_list)`
- *returns segmentations and metrics*
- `segs`: list of segmentations
- `len(segs) == len(seg_save_thresh_list)`
- `rand`: dict
- `rand['V_Rand']`: V_Rand score (scalar)
- `rand['V_Rand_split']`: list of score values
- `len(rand['V_Rand_split']) == len(eval_thresh_list)`
- `rand['V_Rand_merge']`: list of score values,
- `len(rand['V_Rand_merge']) == len(eval_thresh_list)`
- `segs = zwatershed(aff_graph, seg_save_thresh_list)`
- *returns segmentations*
- `segs`: list of segmentations
- `len(segs) == len(seg_save_thresh_list)`

##### These methods have versions which save the segmentations to hdf5 files instead of returning them
- `rand = zwatershed_and_metrics_h5(segTrue, aff_graph, eval_thresh_list, seg_save_thresh_list, seg_save_path)`
- `zwatershed_h5(aff_graph, eval_thresh_list, seg_save_path)`

##### All 4 methods have versions which take an edgelist representation of the affinity graph
- `(segs, rand) = zwatershed_and_metrics_arb(segTrue, node1, node2, edgeWeight, eval_thresh_list, seg_save_thresh_list)`
- `segs = zwatershed_arb(seg_shape, node1, node2, edgeWeight, seg_save_thresh_list)`
- `rand = zwatershed_and_metrics_h5_arb(segTrue, node1, node2, edgeWeight, eval_thresh_list, seg_save_thresh_list, seg_save_path)`
- `zwatershed_h5_arb(seg_shape, node1, node2, edgeWeight, eval_thresh_list, seg_save_path)`

# parallel watershed - 4 steps
- *a full example is given in par_ex.ipynb*

1. Partition the subvolumes
- `partition_data = partition_subvols(pred_file,out_folder,max_len)`
- evenly divides the data in *pred_file* with the constraint that no dimension of any subvolume is longer than max_len
2. Zwatershed the subvolumes
1. `eval_with_spark(partition_data[0])`
- *with spark*
2. `eval_with_par_map(partition_data[0],NUM_WORKERS)`
- *with python multiprocessing map*
- after evaluating, subvolumes will be saved into the out\_folder directory named based on their smallest indices in each dimension (ex. path/to/out\_folder/0\_0\_0\_vol)
3. Stitch the subvolumes together
- `stitch_and_save(partition_data,outname)`
- stitch together the subvolumes in partition_data
- save to the hdf5 file outname
- outname['starts'] = list of min_indices of each subvolume
- outname['ends'] = list of max_indices of each subvolume
- outname['seg'] = full stitched segmentation
- outname['seg_sizes'] = array of size of each segmentation
- outname['rg_i'] = region graph for ith subvolume
4. Threshold individual subvolumes by merging
- `seg_merged = merge_by_thresh(seg,seg_sizes,rg,thresh)`
- load in these areguments from outname

Metadata

Release files for zwatershed 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zwatershed 0.10
File Size Uploaded
zwatershed-0.10.tar.gz 29.6 kB Details

Release files / zwatershed-0.10.tar.gz

Download URL zwatershed-0.10.tar.gz
Size 29.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4892f63d5aefb7dd5ae199c4481e94c88ce7e398d30cd90fa45fa555587ff5c1
BLAKE2b-256 checksum
How to use checksums
fe4bfa666cc4c5921bb19250087ce200360923969aaaa902795f7a8794da41e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.10 This release

1 release file

0.9

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page