PartSeg is python GUI and set of napari plugins for bio imaging analysis especially nucleus analysis,
PartSeg is a specialized GUI for feature extraction from multichannel light microscopy images, but also most of its features are available as napari Widgets. Information about PartSeg as standalone program or library are here
Who is This For?¶
This plugin is for 2D and 3D segmentation of distinct objects from images and measuring various parameters of these objects.
This plugin process everything in memory, so it may not work with images stored in dask arrays. Currently, this plugin does not support the processing of Time data.
The example data is stored here.
The above video presents simple segmentation and measurement of various parameters of this segmentation (ROI).
As bellow described, algorithms are the result of porting PartSeg utilities to napari then detailed description could be found in PartSeg documentation/
ROI Extraction (Segmentation, pixel labeling)¶
The PartSeg is focused on the reproducible ROI Extraction process and offers two groups of algorithms:
- ROI Mask Extraction set of algorithms (from PartSeg ROI Analysis) to work on a whole stack and mainly used for extracting nucleus or cell from a stack.
- ROI Analysis Extraction set of algorithms (from PartSeg ROI Mask) for detailed segmentation on the level of a single nucleus. If possible, they use an inner caching mechanism to improve performance while adjusting parameters.
Algorithms from both groups should support masking. (perform ROI extraction only on the mask layer's area has non-zero values).
Parameters of ROI Extraction could be saved for later reuse (in the program) or exported to JSON and imported in another instance. With an accuracy of up to channel selection, they are identical to PartSeg, so importing should work both ways, but the channel selection step needs to be repeated.
The list of available algorithms could be extensible using the PartSeg plugin mechanism.
PartSeg offers two measurement widgets:
Interface to PartSeg measurement engine. In this widget, there are two tabs. *Measurement settings that allow to define, delete, import, and export set of measurements
and Measurement for performing measures using an already defined set.
The list of available measurements could be extensible using the PartSeg plugin mechanism.
Set of measurements that could be calculated per component respecting data voxel size. In comparison to Measurement list of available measures is limited to ones that do not need Mask information and could be calculated per component.
This widget is equivalent to the PartSeg ROI Mask Simple Measurement window.
Widget to find the layer with the given number By highlighting it or zooming on it. The highlight widget uses white color, so the highlight may not be visible if the label has a bright color.
Transform labels layer into another labels layer with the possibility to dilate, and filling small holes
In this plugin, there are also all PartSeg readers and writers. The most important readers are this, which allows loading PartSeg projects to napari. The one which could impact a user workflow is tiff reader. In comparison to the napari default one, there are two essential differences. Napari's built-in plugin loads data as they are in a file. PartSeg plugin read file metadata and return data in TZYX order. PartSeg reader returns each channel as a separate layer. PartSeg reader also tries to parse voxel size metadata and set scale parameters to nanometers' size.
How to cite this plugin¶
If you use this plugin in your work, please cite it using the following citation. Don’t forget to cite napari too!
- 18 August 2022
- 14 January 2019
- Stars: 20
- Forks: 4
- Issues + PRs: 12
- Stars: 20
- Forks: 4
- Issues + PRs: 12
- PartSegCore-compiled-backend (>=0.13.11)
- PartSegData (==0.10.0)
- QtAwesome (>=1.0.3)
- QtPy (>=1.7.0)
- SimpleITK (>=1.1.0)
- appdirs (>=1.4.4)
- czifile (>=2019.5.22)
- defusedxml (>=0.6.0)
- h5py (>=2.8.0)
- imagecodecs (>=2020.5.30)
- imageio (>=2.5.0)
- magicgui (!=0.5.0,>=0.3.3)
- mahotas (>=1.4.9)
- napari (>=0.4.12)
- nme (>=0.1.4)
- numpy (>=1.18.5)
- oiffile (>=2020.1.18)
- openpyxl (>=2.4.9)
- packaging (>=20.0)
- pandas (>=0.24.0)
- psygnal (>=0.2.0)
- pygments (>=2.4.0)
- requests (>=2.18.0)
- scipy (>=1.2.0)
- sentry-sdk (>=0.14.3)
- six (>=1.11.0)
- superqt (>=0.2.4)
- sympy (>=1.1.1)
- tifffile (>=2020.9.30)
- traceback-with-variables (>=2.0.4)
- vispy (>=0.6.4)
- xlrd (>=1.1.0)
- importlib-metadata (!=4.12.0) ; python_version < "3.8"
- typing-extensions (>=184.108.40.206) ; python_version < "3.8"