diff --git a/.gitignore b/.gitignore index fd2845d3941e8d1d96668c156e33eb5b146bf527..42fb8d44769ed547e9e564cc121fc54a559958e4 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ venv/ # written by setuptools_scm **/_version.py +bin* diff --git a/setup.cfg b/setup.cfg index f2973756cc3d255e0a78332541d2ac4ff91dfc72..202ec2d46039298a4711a8a9e86d4d0374b5ebb6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,25 +1,26 @@ [metadata] -name = napari-segment - -author = Andrey Aristov -author_email = aaristov@pasteur.fr -url = https://github.com/aaristov/napari-segment -license = BSD-3-Clause +name = napari_segment description = Segment organoids and measure intensities long_description = file: README.md long_description_content_type = text/markdown +url = https://github.com/aaristov/napari-segment +author = Andrey Aristov +author_email = aaristov@pasteur.fr +license = BSD-3-Clause +license_file = LICENSE classifiers = Development Status :: 2 - Pre-Alpha - Intended Audience :: Developers Framework :: napari - Topic :: Software Development :: Testing + Intended Audience :: Developers + License :: OSI Approved :: BSD License + Operating System :: OS Independent Programming Language :: Python Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 - Operating System :: OS Independent - License :: OSI Approved :: BSD License + Topic :: Software Development :: Testing project_urls = Bug Tracker = https://github.com/aaristov/napari-segment/issues Documentation = https://github.com/aaristov/napari-segment#README.md @@ -28,22 +29,24 @@ project_urls = [options] packages = find: -include_package_data = True -python_requires = >=3.8 -package_dir = - =src -setup_requires = setuptools_scm -# add your package requirements here install_requires = nd2 numpy + scikit-image + zarr +python_requires = >=3.8 +include_package_data = True +package_dir = + =src +setup_requires = + setuptools-scm [options.packages.find] where = src +[options.entry_points] +napari.manifest = + napari-segment = napari_segment:napari.yaml + [options.package_data] * = *.yaml - -[options.entry_points] -napari.manifest = - napari-segment = napari_segment:napari.yaml diff --git a/src/napari_segment/_reader.py b/src/napari_segment/_reader.py index 272ff9eac214e4d717e63b5a4d7bf36e9db34e17..cb88a94b8fac8dd3761e9796b3e09be39b17a2f8 100644 --- a/src/napari_segment/_reader.py +++ b/src/napari_segment/_reader.py @@ -41,7 +41,10 @@ def napari_get_reader(path): return read_zarr # otherwise we return the *function* that can read ``path``. - return reader_function + if path.endswith(".npy"): + return reader_function + + return None def read_zarr(path): @@ -57,13 +60,34 @@ def read_zarr(path): datasets = [dask.array.from_zarr(p) for p in dataset_paths] except Exception as e: raise e + + try: + contrast_limits = info["lut"] + except KeyError: + contrast_limits = None + + try: + colormap = info["colormap"] + except KeyError: + colormap = None + + try: + name = info["name"] + except KeyError: + print("name not found") + name = [os.path.basename(path)] * datasets[0].shape[channel_axis] + except Exception as e: + print("name exception", e.args) + name = os.path.basename(path) + return [ ( datasets, { "channel_axis": channel_axis, -# "colormap": ["gray", "inferno"], -# "contrast_limits": [(0, 65000), (0, 6000)], + "colormap": colormap, + "contrast_limits": contrast_limits, + "name": name, }, "image", ) diff --git a/src/napari_segment/_widget.py b/src/napari_segment/_widget.py index fc85458d602092bdc633bd279d8939e428965ffc..f1aa024a27f1d12990a6f4a737349550285322ae 100644 --- a/src/napari_segment/_widget.py +++ b/src/napari_segment/_widget.py @@ -75,7 +75,6 @@ def save_values(val): ) def segment_organoid( BF_layer: "napari.layers.Image", - fluo_layer: "napari.layers.Image", thr: float = 0.3, erode: int = 10, min_diam=150, @@ -84,8 +83,13 @@ def segment_organoid( show_detections=True, ) -> napari.types.LayerDataTuple: # frame = napari.current_viewer().cursor.position[0] - kwargs = {} + kwargs = {"scale": BF_layer.scale} + print(kwargs) ddata = BF_layer.data + if isinstance(ddata, np.ndarray): + chunksize = np.ones(ddata.ndims) + chunksize[-2:] = ddata.shape[-2:] # xy full size + ddata = dask.array.from_array(ddata, chunksize=chunksize) smooth_gradient = ddata.map_blocks( partial(get_gradient), dtype=ddata.dtype ) diff --git a/src/napari_segment/napari.yaml b/src/napari_segment/napari.yaml index 685b576ecac3daf7740138539bdf5d6821806e9c..4c5f9cd9f080958edde161074eecc34aa308cd76 100644 --- a/src/napari_segment/napari.yaml +++ b/src/napari_segment/napari.yaml @@ -25,7 +25,7 @@ contributions: title: Segment organoid readers: - command: napari-segment.get_reader - accepts_directories: true + accepts_directories: True filename_patterns: ['*.npy', '*.nd2', '*.zarr'] writers: - command: napari-segment.write_multiple