From b2215b9b027e7e80492ff6b4f28fc2e1ed1c0cf6 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 13:16:53 +0000 Subject: automatic import of python-napari-pyclesperanto-assistant --- .gitignore | 1 + python-napari-pyclesperanto-assistant.spec | 654 +++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 656 insertions(+) create mode 100644 python-napari-pyclesperanto-assistant.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..5d8e0bc 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/napari_pyclesperanto_assistant-0.22.1.tar.gz diff --git a/python-napari-pyclesperanto-assistant.spec b/python-napari-pyclesperanto-assistant.spec new file mode 100644 index 0000000..2f6575e --- /dev/null +++ b/python-napari-pyclesperanto-assistant.spec @@ -0,0 +1,654 @@ +%global _empty_manifest_terminate_build 0 +Name: python-napari-pyclesperanto-assistant +Version: 0.22.1 +Release: 1 +Summary: GPU-accelerated image processing in napari using OpenCL +License: BSD-3-Clause +URL: https://github.com/clesperanto/napari_pyclesperanto_assistant +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d2/f4/7cb910f032746576a32a4c601575dede769af02eebbb25f67f4cf2d5d7ec/napari_pyclesperanto_assistant-0.22.1.tar.gz +BuildArch: noarch + +Requires: python3-napari-plugin-engine +Requires: python3-pyopencl +Requires: python3-toolz +Requires: python3-scikit-image +Requires: python3-napari +Requires: python3-pyclesperanto-prototype +Requires: python3-magicgui +Requires: python3-numpy +Requires: python3-pyperclip +Requires: python3-loguru +Requires: python3-jupytext +Requires: python3-jupyter +Requires: python3-pandas +Requires: python3-napari-tools-menu +Requires: python3-napari-time-slicer +Requires: python3-napari-skimage-regionprops +Requires: python3-napari-workflows +Requires: python3-napari-assistant + +%description +# napari-pyclesperanto-assistant +[![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fclesperanto.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/clesperanto) +[![website](https://img.shields.io/website?url=http%3A%2F%2Fclesperanto.net)](http://clesperanto.net) +[![License](https://img.shields.io/pypi/l/napari-pyclesperanto-assistant.svg?color=green)](https://github.com/clesperanto/napari-pyclesperanto-assistant/raw/master/LICENSE) +[![PyPI](https://img.shields.io/pypi/v/napari-pyclesperanto-assistant.svg?color=green)](https://pypi.org/project/napari-pyclesperanto-assistant) +[![Python Version](https://img.shields.io/pypi/pyversions/napari-pyclesperanto-assistant.svg?color=green)](https://python.org) +[![tests](https://github.com/clesperanto/napari_pyclesperanto_assistant/workflows/tests/badge.svg)](https://github.com/clesperanto/napari_pyclesperanto_assistant/actions) +[![codecov](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant/branch/master/graph/badge.svg)](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant) +[![Development Status](https://img.shields.io/pypi/status/napari_pyclesperanto_assistant.svg)](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha) +[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-pyclesperanto-assistant)](https://napari-hub.org/plugins/napari-pyclesperanto-assistant) +[![DOI](https://zenodo.org/badge/322312181.svg)](https://zenodo.org/badge/latestdoi/322312181) + +The py-clEsperanto-assistant is a yet experimental [napari](https://github.com/napari/napari) plugin for building GPU-accelerated image processing workflows. +It is part of the [clEsperanto](http://clesperanto.net) project and thus, aims at removing programming language related barriers between image processing ecosystems in the life sciences. +It uses [pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) and with that [pyopencl](https://documen.tician.de/pyopencl/) as backend for processing images. + +This napari plugin adds some menu entries to the Tools menu. You can recognize them with their suffix `(clEsperanto)` in brackets. +Furthermore, it can be used from the [napari-assistant](https://www.napari-hub.org/plugins/napari-assistant) graphical user interface. +Therefore, just click the menu `Tools > Utilities > Assistant (na)` or run `naparia` from the command line. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/virtual_4d_support1.gif) + +## Usage + +### Start up the assistant +Start up napari, e.g. from the command line: +``` +napari +``` + +Load example data, e.g. from the menu `File > Open Samples > clEsperanto > CalibZAPWfixed` and +start the assistant from the menu `Tools > Utilities > Assistant (na)`. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1.png) + +In case of two dimensional timelapse data, an initial conversion step might be necessary depending on your data source. +Click the menu `Tools > Utilities > Convert to 2d timelapse`. In the dialog, select the dataset and click ok. +You can delete the original dataset afterwards: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1a.png) + +### Set up a workflow + +Choose categories of operations in the top right panel, for example start with denoising using a Gaussian Blur with sigma 1 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2.png) + +Continue with background removal using the top-hat filter with radius 5 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2a.png) + +For labeling the objects, use [Voronoi-Otsu-Labeling](https://nbviewer.jupyter.org/github/clEsperanto/pyclesperanto_prototype/blob/master/demo/segmentation/voronoi_otsu_labeling.ipynb) with both sigma parameters set to 2. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2b.png) + +The labeled objects can be extended using a Voronoi diagram to derive a estimations of cell boundaries. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2c.png) + +You can then configure napari to show the label boundaries on top of the original image: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2d.png) + +When your workflow is set up, click the play button below your dataset: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/timelapse_2d.gif) + +### Neighbor statistics + +When working with 2D or 3D data you can analyze measurements in relationship with their neighbors. +For example, you can measure the area of blobs as shown in the example shown below using the menu +`Tools > Measurements > Statistics of labeled pixels (clesperant)` and visualize it as `area` image by double-clicking on the table column (1). +Additionally, you can measure the maximum area of the 6 nearest neighbors using the menu `Tools > Measurments > Neighborhood statistics of measurements`. +The new column will then be called "max_nn6_area..." (2). When visualizing such parametric images next by each other, it is recommended to use +[napari-brightness-contrast](https://www.napari-hub.org/plugins/napari-brightness-contrast) and visualize the same intensity range to see differences correctly. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/neighbor_statistics.png) + +### Code generation +You can also export your workflow as Python/Jython code or as notebook. See the [napari-assistant documentation](https://www.napari-hub.org/plugins/napari-assistant) for details. + +## Features +[pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) offers various possibilities for processing images. It comes from developers who work in life sciences and thus, it may be focused towards processing two- and three-dimensional microscopy image data showing cells and tissues. A selection of pyclesperanto's functionality is available via the assistant user interface. Typical workflows which can be built with this assistant include +* image filtering + * denoising / noise reduction (mean, median, Gaussian blur) + * background subtraction for uneven illumination or out-of-focus light (bottom-hat, top-hat, subtract Gaussian background) + * grey value morphology (local minimum, maximum. variance) + * gamma correction + * Laplace operator + * Sobel operator +* combining images + * masking + * image math (adding, subtracting, multiplying, dividing images) + * absolute / squared difference +* image transformations + * translation + * rotation + * scale + * reduce stack + * sub-stacks +* image projections + * minimum / mean / maximum / sum / standard deviation projections +* image segmentation + * binarization (thresholding, local maxima detection) + * labeling + * regionalization + * instance segmentation + * semantic segmentation + * detect label edges + * label spots + * connected component labeling + * Voronoi-Otsu-labeling +* post-processing of binary images + * dilation + * erosion + * binary opening + * binary closing + * binary and / or / xor +* post-processing of label images + * dilation (expansion) of labels + * extend labels via Voronoi + * exclude labels on edges + * exclude labels within / out of size / value range + * merge touching labels +* parametric maps + * proximal / touching neighbor count + * distance measurements to touching / proximal / n-nearest neighbors + * pixel count map + * mean / maximum / extension ratio map +* label measurements / post processing of parametric maps + * minimum / mean / maximum / standard deviation intensity maps + * minimum / mean / maximum / standard deviation of touching / n-nearest / neighbors +* neighbor meshes + * touching neighbors + * n-nearest neighbors + * proximal neighbors + * distance meshes +* measurements based on label images + * bounding box 2D / 3D + * minimum / mean / maximum / sum / standard deviation intensity + * center of mass + * centroid + * mean / maximum distance to centroid (and extension ratio shape descriptor) + * mean / maximum distance to center of mass (and extension ratio shape descriptor) + * statistics of neighbors (See related [publication](https://www.frontiersin.org/articles/10.3389/fcomp.2021.774396/full)) +* code export + * python / Fiji-compatible jython + * python jupyter notebooks +* pyclesperanto scripting + * cell segmentation + * cell counting + * cell differentiation + * tissue classification + +## Installation + +It is recommended to install the assistant using conda. If you have never used conda before, it is recommended to read +[this blog post](https://biapol.github.io/blog/johannes_mueller/anaconda_getting_started/) first. + +```shell +conda create --name cle_39 python=3.9 napari-pyclesperanto-assistant +conda activate cle_39 +``` + +Mac-users please also install this: + + conda install -c conda-forge ocl_icd_wrapper_apple + +Linux users please also install this: + + conda install -c conda-forge ocl-icd-system + +You can then start the napari-assistant using this command: + +``` +naparia +``` + + +## Feedback and contributions welcome! +clEsperanto is developed in the open because we believe in the open source community. See our [community guidelines](https://clij.github.io/clij2-docs/community_guidelines). Feel free to drop feedback as [github issue](https://github.com/clEsperanto/pyclesperanto_prototype/issues) or via [image.sc](https://image.sc) + +## Acknowledgements +This project was supported by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence "Physics of Life" of TU Dresden. +This project has been made possible in part by grant number [2021-240341 (Napari plugin accelerator grant)](https://chanzuckerberg.com/science/programs-resources/imaging/napari/improving-image-processing/) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation. + +[Imprint](https://clesperanto.github.io/imprint) + + + +%package -n python3-napari-pyclesperanto-assistant +Summary: GPU-accelerated image processing in napari using OpenCL +Provides: python-napari-pyclesperanto-assistant +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-napari-pyclesperanto-assistant +# napari-pyclesperanto-assistant +[![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fclesperanto.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/clesperanto) +[![website](https://img.shields.io/website?url=http%3A%2F%2Fclesperanto.net)](http://clesperanto.net) +[![License](https://img.shields.io/pypi/l/napari-pyclesperanto-assistant.svg?color=green)](https://github.com/clesperanto/napari-pyclesperanto-assistant/raw/master/LICENSE) +[![PyPI](https://img.shields.io/pypi/v/napari-pyclesperanto-assistant.svg?color=green)](https://pypi.org/project/napari-pyclesperanto-assistant) +[![Python Version](https://img.shields.io/pypi/pyversions/napari-pyclesperanto-assistant.svg?color=green)](https://python.org) +[![tests](https://github.com/clesperanto/napari_pyclesperanto_assistant/workflows/tests/badge.svg)](https://github.com/clesperanto/napari_pyclesperanto_assistant/actions) +[![codecov](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant/branch/master/graph/badge.svg)](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant) +[![Development Status](https://img.shields.io/pypi/status/napari_pyclesperanto_assistant.svg)](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha) +[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-pyclesperanto-assistant)](https://napari-hub.org/plugins/napari-pyclesperanto-assistant) +[![DOI](https://zenodo.org/badge/322312181.svg)](https://zenodo.org/badge/latestdoi/322312181) + +The py-clEsperanto-assistant is a yet experimental [napari](https://github.com/napari/napari) plugin for building GPU-accelerated image processing workflows. +It is part of the [clEsperanto](http://clesperanto.net) project and thus, aims at removing programming language related barriers between image processing ecosystems in the life sciences. +It uses [pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) and with that [pyopencl](https://documen.tician.de/pyopencl/) as backend for processing images. + +This napari plugin adds some menu entries to the Tools menu. You can recognize them with their suffix `(clEsperanto)` in brackets. +Furthermore, it can be used from the [napari-assistant](https://www.napari-hub.org/plugins/napari-assistant) graphical user interface. +Therefore, just click the menu `Tools > Utilities > Assistant (na)` or run `naparia` from the command line. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/virtual_4d_support1.gif) + +## Usage + +### Start up the assistant +Start up napari, e.g. from the command line: +``` +napari +``` + +Load example data, e.g. from the menu `File > Open Samples > clEsperanto > CalibZAPWfixed` and +start the assistant from the menu `Tools > Utilities > Assistant (na)`. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1.png) + +In case of two dimensional timelapse data, an initial conversion step might be necessary depending on your data source. +Click the menu `Tools > Utilities > Convert to 2d timelapse`. In the dialog, select the dataset and click ok. +You can delete the original dataset afterwards: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1a.png) + +### Set up a workflow + +Choose categories of operations in the top right panel, for example start with denoising using a Gaussian Blur with sigma 1 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2.png) + +Continue with background removal using the top-hat filter with radius 5 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2a.png) + +For labeling the objects, use [Voronoi-Otsu-Labeling](https://nbviewer.jupyter.org/github/clEsperanto/pyclesperanto_prototype/blob/master/demo/segmentation/voronoi_otsu_labeling.ipynb) with both sigma parameters set to 2. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2b.png) + +The labeled objects can be extended using a Voronoi diagram to derive a estimations of cell boundaries. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2c.png) + +You can then configure napari to show the label boundaries on top of the original image: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2d.png) + +When your workflow is set up, click the play button below your dataset: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/timelapse_2d.gif) + +### Neighbor statistics + +When working with 2D or 3D data you can analyze measurements in relationship with their neighbors. +For example, you can measure the area of blobs as shown in the example shown below using the menu +`Tools > Measurements > Statistics of labeled pixels (clesperant)` and visualize it as `area` image by double-clicking on the table column (1). +Additionally, you can measure the maximum area of the 6 nearest neighbors using the menu `Tools > Measurments > Neighborhood statistics of measurements`. +The new column will then be called "max_nn6_area..." (2). When visualizing such parametric images next by each other, it is recommended to use +[napari-brightness-contrast](https://www.napari-hub.org/plugins/napari-brightness-contrast) and visualize the same intensity range to see differences correctly. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/neighbor_statistics.png) + +### Code generation +You can also export your workflow as Python/Jython code or as notebook. See the [napari-assistant documentation](https://www.napari-hub.org/plugins/napari-assistant) for details. + +## Features +[pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) offers various possibilities for processing images. It comes from developers who work in life sciences and thus, it may be focused towards processing two- and three-dimensional microscopy image data showing cells and tissues. A selection of pyclesperanto's functionality is available via the assistant user interface. Typical workflows which can be built with this assistant include +* image filtering + * denoising / noise reduction (mean, median, Gaussian blur) + * background subtraction for uneven illumination or out-of-focus light (bottom-hat, top-hat, subtract Gaussian background) + * grey value morphology (local minimum, maximum. variance) + * gamma correction + * Laplace operator + * Sobel operator +* combining images + * masking + * image math (adding, subtracting, multiplying, dividing images) + * absolute / squared difference +* image transformations + * translation + * rotation + * scale + * reduce stack + * sub-stacks +* image projections + * minimum / mean / maximum / sum / standard deviation projections +* image segmentation + * binarization (thresholding, local maxima detection) + * labeling + * regionalization + * instance segmentation + * semantic segmentation + * detect label edges + * label spots + * connected component labeling + * Voronoi-Otsu-labeling +* post-processing of binary images + * dilation + * erosion + * binary opening + * binary closing + * binary and / or / xor +* post-processing of label images + * dilation (expansion) of labels + * extend labels via Voronoi + * exclude labels on edges + * exclude labels within / out of size / value range + * merge touching labels +* parametric maps + * proximal / touching neighbor count + * distance measurements to touching / proximal / n-nearest neighbors + * pixel count map + * mean / maximum / extension ratio map +* label measurements / post processing of parametric maps + * minimum / mean / maximum / standard deviation intensity maps + * minimum / mean / maximum / standard deviation of touching / n-nearest / neighbors +* neighbor meshes + * touching neighbors + * n-nearest neighbors + * proximal neighbors + * distance meshes +* measurements based on label images + * bounding box 2D / 3D + * minimum / mean / maximum / sum / standard deviation intensity + * center of mass + * centroid + * mean / maximum distance to centroid (and extension ratio shape descriptor) + * mean / maximum distance to center of mass (and extension ratio shape descriptor) + * statistics of neighbors (See related [publication](https://www.frontiersin.org/articles/10.3389/fcomp.2021.774396/full)) +* code export + * python / Fiji-compatible jython + * python jupyter notebooks +* pyclesperanto scripting + * cell segmentation + * cell counting + * cell differentiation + * tissue classification + +## Installation + +It is recommended to install the assistant using conda. If you have never used conda before, it is recommended to read +[this blog post](https://biapol.github.io/blog/johannes_mueller/anaconda_getting_started/) first. + +```shell +conda create --name cle_39 python=3.9 napari-pyclesperanto-assistant +conda activate cle_39 +``` + +Mac-users please also install this: + + conda install -c conda-forge ocl_icd_wrapper_apple + +Linux users please also install this: + + conda install -c conda-forge ocl-icd-system + +You can then start the napari-assistant using this command: + +``` +naparia +``` + + +## Feedback and contributions welcome! +clEsperanto is developed in the open because we believe in the open source community. See our [community guidelines](https://clij.github.io/clij2-docs/community_guidelines). Feel free to drop feedback as [github issue](https://github.com/clEsperanto/pyclesperanto_prototype/issues) or via [image.sc](https://image.sc) + +## Acknowledgements +This project was supported by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence "Physics of Life" of TU Dresden. +This project has been made possible in part by grant number [2021-240341 (Napari plugin accelerator grant)](https://chanzuckerberg.com/science/programs-resources/imaging/napari/improving-image-processing/) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation. + +[Imprint](https://clesperanto.github.io/imprint) + + + +%package help +Summary: Development documents and examples for napari-pyclesperanto-assistant +Provides: python3-napari-pyclesperanto-assistant-doc +%description help +# napari-pyclesperanto-assistant +[![Image.sc forum](https://img.shields.io/badge/dynamic/json.svg?label=forum&url=https%3A%2F%2Fforum.image.sc%2Ftag%2Fclesperanto.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC)](https://forum.image.sc/tag/clesperanto) +[![website](https://img.shields.io/website?url=http%3A%2F%2Fclesperanto.net)](http://clesperanto.net) +[![License](https://img.shields.io/pypi/l/napari-pyclesperanto-assistant.svg?color=green)](https://github.com/clesperanto/napari-pyclesperanto-assistant/raw/master/LICENSE) +[![PyPI](https://img.shields.io/pypi/v/napari-pyclesperanto-assistant.svg?color=green)](https://pypi.org/project/napari-pyclesperanto-assistant) +[![Python Version](https://img.shields.io/pypi/pyversions/napari-pyclesperanto-assistant.svg?color=green)](https://python.org) +[![tests](https://github.com/clesperanto/napari_pyclesperanto_assistant/workflows/tests/badge.svg)](https://github.com/clesperanto/napari_pyclesperanto_assistant/actions) +[![codecov](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant/branch/master/graph/badge.svg)](https://codecov.io/gh/clesperanto/napari_pyclesperanto_assistant) +[![Development Status](https://img.shields.io/pypi/status/napari_pyclesperanto_assistant.svg)](https://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha) +[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-pyclesperanto-assistant)](https://napari-hub.org/plugins/napari-pyclesperanto-assistant) +[![DOI](https://zenodo.org/badge/322312181.svg)](https://zenodo.org/badge/latestdoi/322312181) + +The py-clEsperanto-assistant is a yet experimental [napari](https://github.com/napari/napari) plugin for building GPU-accelerated image processing workflows. +It is part of the [clEsperanto](http://clesperanto.net) project and thus, aims at removing programming language related barriers between image processing ecosystems in the life sciences. +It uses [pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) and with that [pyopencl](https://documen.tician.de/pyopencl/) as backend for processing images. + +This napari plugin adds some menu entries to the Tools menu. You can recognize them with their suffix `(clEsperanto)` in brackets. +Furthermore, it can be used from the [napari-assistant](https://www.napari-hub.org/plugins/napari-assistant) graphical user interface. +Therefore, just click the menu `Tools > Utilities > Assistant (na)` or run `naparia` from the command line. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/virtual_4d_support1.gif) + +## Usage + +### Start up the assistant +Start up napari, e.g. from the command line: +``` +napari +``` + +Load example data, e.g. from the menu `File > Open Samples > clEsperanto > CalibZAPWfixed` and +start the assistant from the menu `Tools > Utilities > Assistant (na)`. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1.png) + +In case of two dimensional timelapse data, an initial conversion step might be necessary depending on your data source. +Click the menu `Tools > Utilities > Convert to 2d timelapse`. In the dialog, select the dataset and click ok. +You can delete the original dataset afterwards: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot1a.png) + +### Set up a workflow + +Choose categories of operations in the top right panel, for example start with denoising using a Gaussian Blur with sigma 1 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2.png) + +Continue with background removal using the top-hat filter with radius 5 in x and y. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2a.png) + +For labeling the objects, use [Voronoi-Otsu-Labeling](https://nbviewer.jupyter.org/github/clEsperanto/pyclesperanto_prototype/blob/master/demo/segmentation/voronoi_otsu_labeling.ipynb) with both sigma parameters set to 2. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2b.png) + +The labeled objects can be extended using a Voronoi diagram to derive a estimations of cell boundaries. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2c.png) + +You can then configure napari to show the label boundaries on top of the original image: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/screenshot2d.png) + +When your workflow is set up, click the play button below your dataset: + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/timelapse_2d.gif) + +### Neighbor statistics + +When working with 2D or 3D data you can analyze measurements in relationship with their neighbors. +For example, you can measure the area of blobs as shown in the example shown below using the menu +`Tools > Measurements > Statistics of labeled pixels (clesperant)` and visualize it as `area` image by double-clicking on the table column (1). +Additionally, you can measure the maximum area of the 6 nearest neighbors using the menu `Tools > Measurments > Neighborhood statistics of measurements`. +The new column will then be called "max_nn6_area..." (2). When visualizing such parametric images next by each other, it is recommended to use +[napari-brightness-contrast](https://www.napari-hub.org/plugins/napari-brightness-contrast) and visualize the same intensity range to see differences correctly. + +![](https://github.com/clEsperanto/napari_pyclesperanto_assistant/raw/master/docs/images/neighbor_statistics.png) + +### Code generation +You can also export your workflow as Python/Jython code or as notebook. See the [napari-assistant documentation](https://www.napari-hub.org/plugins/napari-assistant) for details. + +## Features +[pyclesperanto](https://github.com/clEsperanto/pyclesperanto_prototype) offers various possibilities for processing images. It comes from developers who work in life sciences and thus, it may be focused towards processing two- and three-dimensional microscopy image data showing cells and tissues. A selection of pyclesperanto's functionality is available via the assistant user interface. Typical workflows which can be built with this assistant include +* image filtering + * denoising / noise reduction (mean, median, Gaussian blur) + * background subtraction for uneven illumination or out-of-focus light (bottom-hat, top-hat, subtract Gaussian background) + * grey value morphology (local minimum, maximum. variance) + * gamma correction + * Laplace operator + * Sobel operator +* combining images + * masking + * image math (adding, subtracting, multiplying, dividing images) + * absolute / squared difference +* image transformations + * translation + * rotation + * scale + * reduce stack + * sub-stacks +* image projections + * minimum / mean / maximum / sum / standard deviation projections +* image segmentation + * binarization (thresholding, local maxima detection) + * labeling + * regionalization + * instance segmentation + * semantic segmentation + * detect label edges + * label spots + * connected component labeling + * Voronoi-Otsu-labeling +* post-processing of binary images + * dilation + * erosion + * binary opening + * binary closing + * binary and / or / xor +* post-processing of label images + * dilation (expansion) of labels + * extend labels via Voronoi + * exclude labels on edges + * exclude labels within / out of size / value range + * merge touching labels +* parametric maps + * proximal / touching neighbor count + * distance measurements to touching / proximal / n-nearest neighbors + * pixel count map + * mean / maximum / extension ratio map +* label measurements / post processing of parametric maps + * minimum / mean / maximum / standard deviation intensity maps + * minimum / mean / maximum / standard deviation of touching / n-nearest / neighbors +* neighbor meshes + * touching neighbors + * n-nearest neighbors + * proximal neighbors + * distance meshes +* measurements based on label images + * bounding box 2D / 3D + * minimum / mean / maximum / sum / standard deviation intensity + * center of mass + * centroid + * mean / maximum distance to centroid (and extension ratio shape descriptor) + * mean / maximum distance to center of mass (and extension ratio shape descriptor) + * statistics of neighbors (See related [publication](https://www.frontiersin.org/articles/10.3389/fcomp.2021.774396/full)) +* code export + * python / Fiji-compatible jython + * python jupyter notebooks +* pyclesperanto scripting + * cell segmentation + * cell counting + * cell differentiation + * tissue classification + +## Installation + +It is recommended to install the assistant using conda. If you have never used conda before, it is recommended to read +[this blog post](https://biapol.github.io/blog/johannes_mueller/anaconda_getting_started/) first. + +```shell +conda create --name cle_39 python=3.9 napari-pyclesperanto-assistant +conda activate cle_39 +``` + +Mac-users please also install this: + + conda install -c conda-forge ocl_icd_wrapper_apple + +Linux users please also install this: + + conda install -c conda-forge ocl-icd-system + +You can then start the napari-assistant using this command: + +``` +naparia +``` + + +## Feedback and contributions welcome! +clEsperanto is developed in the open because we believe in the open source community. See our [community guidelines](https://clij.github.io/clij2-docs/community_guidelines). Feel free to drop feedback as [github issue](https://github.com/clEsperanto/pyclesperanto_prototype/issues) or via [image.sc](https://image.sc) + +## Acknowledgements +This project was supported by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence "Physics of Life" of TU Dresden. +This project has been made possible in part by grant number [2021-240341 (Napari plugin accelerator grant)](https://chanzuckerberg.com/science/programs-resources/imaging/napari/improving-image-processing/) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation. + +[Imprint](https://clesperanto.github.io/imprint) + + + +%prep +%autosetup -n napari-pyclesperanto-assistant-0.22.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-napari-pyclesperanto-assistant -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 0.22.1-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..5d15026 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +b626d484e90aaae4e7180907ce986a2d napari_pyclesperanto_assistant-0.22.1.tar.gz -- cgit v1.2.3