PartSeg

PartSeg

PartSeg is python GUI and set of napari plugins for bio imaging analysis especially nucleus analysis,

Workflow step:
Image segmentationCell segmentation
Image segmentationConnected-component analysis
Image reconstruction
Image feature detection
Object feature extraction

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.

How-to Guide

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.

Measurement widgets

PartSeg offers two measurement widgets:

Measurement

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

Measurement Settings

and Measurement for performing measures using an already defined set.

Measurement

The list of available measurements could be extensible using the PartSeg plugin mechanism.

Simple Measurement

Simple Measurement

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.

Search label

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.

Mask create

Transform labels layer into another labels layer with the possibility to dilate, and filling small holes

Mask create widget

Reader plugins

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.

Version:

  • 0.14.6

Last updated:

  • 13 November 2022

First released:

  • 14 January 2019

License:

  • BSD-3-Clause

Supported data:

Open extension:

Save extension:

  • Information not submitted

Save layers:

GitHub activity:

  • Stars: 24
  • Forks: 8
  • Issues + PRs: 11

Python versions supported:

Operating system:

Requirements:

  • IPython (>=7.7.0)
  • PartSegCore-compiled-backend (>=0.13.11)
  • PartSegData (==0.10.0)
  • QtAwesome (!=1.2.0,>=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)
  • ipykernel (>=5.2.0)
  • magicgui (!=0.5.0,>=0.4.0)
  • mahotas (>=1.4.9)
  • napari (>=0.4.12)
  • nme (>=0.1.6)
  • numpy (>=1.18.5)
  • oiffile (>=2020.1.18)
  • openpyxl (>=2.4.9)
  • packaging (>=20.0)
  • pandas (>=0.24.0)
  • psygnal (>=0.3.1)
  • pydantic (>=1.8.1)
  • pygments (>=2.4.0)
  • qtconsole (>=4.7.7)
  • 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)
  • xlsxwriter
  • importlib-metadata (<4.12.0) ; python_version < "3.8"
  • typing-extensions (>=3.7.4.3) ; python_version < "3.8"
  • vispy (<0.10.0) ; python_version < "3.8"

Sign up to receive updates