Metadata-Version: 2.1
Name: PartSeg
Version: 0.13.0
Summary: PartSeg is python GUI for bio imaging analysis especially nucleus analysis,
Home-page: https://4dnucleome.cent.uw.edu.pl/PartSeg/
Author: Grzegorz Bokota
Author-email: g.bokota@cent.uw.edu.pl
License: BSD-3-Clause
Project-URL: Documentation, https://partseg.readthedocs.io/en/stable/
Project-URL: Source Code, https://github.com/4DNucleome/PartSeg
Keywords: bioimaging,GUI
Platform: Linux
Platform: Windows
Platform: MacOs
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: napari
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: PartSegCore-compiled-backend (>=0.12.0a0)
Requires-Dist: PartSegData (==0.10.0)
Requires-Dist: PyOpenGL-accelerate (>=3.1.5)
Requires-Dist: QtPy (>=1.7.0)
Requires-Dist: SimpleITK (>=1.1.0)
Requires-Dist: appdirs (>=1.4.4)
Requires-Dist: czifile (>=2019.5.22)
Requires-Dist: defusedxml (>=0.6.0)
Requires-Dist: h5py (>=2.8.0)
Requires-Dist: imagecodecs (>=2020.5.30)
Requires-Dist: imageio (>=2.5.0)
Requires-Dist: napari (>=0.4.2)
Requires-Dist: numpy (>=1.16.0)
Requires-Dist: oiffile (>=2019.1.1)
Requires-Dist: openpyxl (>=2.4.9)
Requires-Dist: packaging (>=17.1)
Requires-Dist: pandas (>=0.24.0)
Requires-Dist: requests (>=2.18.0)
Requires-Dist: scipy (>=1.2.0)
Requires-Dist: sentry-sdk (>=0.14.3)
Requires-Dist: six (>=1.11.0)
Requires-Dist: sympy (>=1.1.1)
Requires-Dist: tifffile (>=2020.2.16)
Requires-Dist: xlrd (>=1.1.0)
Requires-Dist: xlsxwriter
Requires-Dist: typing-extensions (>=3.7.4.2) ; python_version < "3.8"
Provides-Extra: pyqt
Requires-Dist: PyQt5 (!=5.15.0,>=5.12.3) ; extra == 'pyqt'
Provides-Extra: pyqt5
Requires-Dist: PyQt5 (!=5.15.0,>=5.12.3) ; extra == 'pyqt5'
Provides-Extra: pyside
Requires-Dist: PySide2 (!=5.15.0,>=5.12.3) ; extra == 'pyside'
Provides-Extra: pyside2
Requires-Dist: PySide2 (!=5.15.0,>=5.12.3) ; extra == 'pyside2'
Provides-Extra: test
Requires-Dist: pytest (>=3.0.0) ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-qt ; extra == 'test'

# PartSeg

![Tests](https://github.com/4DNucleome/PartSeg/workflows/Tests/badge.svg?branch=master)
[![PyPI version](https://badge.fury.io/py/PartSeg.svg)](https://badge.fury.io/py/PartSeg)
[![Documentation Status](https://readthedocs.org/projects/partseg/badge/?version=latest)](https://partseg.readthedocs.io/en/latest/?badge=latest)
[![Azure Pipelines Build Status](https://dev.azure.com/PartSeg/PartSeg/_apis/build/status/4DNucleome.PartSeg?branchName=master)](https://dev.azure.com/PartSeg/PartSeg/_build/latest?definitionId=1&branchName=master)
[![DOI](https://zenodo.org/badge/166421141.svg)](https://zenodo.org/badge/latestdoi/166421141)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/4DNucleome/PartSeg.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/4DNucleome/PartSeg/alerts/)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/4DNucleome/PartSeg.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/4DNucleome/PartSeg/context:python)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/6c6bef8ebb6a4785a7a1a2da88524661)](https://www.codacy.com/manual/Czaki/PartSeg?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=4DNucleome/PartSeg&amp;utm_campaign=Badge_Grade)
[![Requirements Status](https://requires.io/github/4DNucleome/PartSeg/requirements.svg?branch=develop)](https://requires.io/github/4DNucleome/PartSeg/requirements/?branch=master)
[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![codecov](https://codecov.io/gh/4DNucleome/PartSeg/branch/master/graph/badge.svg?token=nbAbkOAe1C)](https://codecov.io/gh/4DNucleome/PartSeg)

PartSeg is a GUI and a library for segmentation algorithms.

This application is designed to help biologist with segmentation based on threshold and connected components.

![interface](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/roi_analysis.png)

## Tutorials

-   Tutorial: **Chromosome 1 (as gui)** [link](https://github.com/4DNucleome/PartSeg/blob/master/tutorials/tutorial-chromosome-1/tutorial-chromosome1_16.md)
-   Data for chromosome 1 tutorial [link](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg_samples.zip)
-   Tutorial: **Different neuron types (as library)** [link](https://github.com/4DNucleome/PartSeg/blob/master/tutorials/tutorial_neuron_types/Neuron_types_example.ipynb)

## Installing

-   From binaries:
    -   [Windows](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-lastest-windows.zip) (build on Windows 10)
    -   [Linux](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-lastest-linux.zip) (build on Ubuntu 18.04)
    -   [MacOS](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-lastest-macos.zip) (build on MacOS Mojave)

-   With pip:
    -   From pypi: `pip install PartSeg[pyqt]`
    -   From repository: `pip install git+https://github.com/4DNucleome/PartSeg.git`

## Running

If you downloaded binaries, run the `PartSeg` (or `PartSeg.exe` for Windows) file inside the `PartSeg` folder

If you installed from repository or from pip, you can run it with `PartSeg` command or `python -m PartSeg`.
First option does not work on Windows.

PartSeg export few commandline options:

-   `--no_report` - disable error reporting
-   `--no_dialog` - disable error reporting and error dialog. Use only when running from terminal.
-   `segmentation_analysis` - skip launcher and start analysis gui
-   `segmentation` - skip launcher and start segmentation gui

## napari plugin

PartSeg provides napari plugins for io to allow reading projects format in napari viewer.

## Save Format

Saved projects are tar files compressed with gzip or bz2.

Metadata is saved in data.json file (in json format).
Images/masks are saved as *.npy (numpy array format).

## Interface

Launcher. Choose the program that you will launch:

![launcher](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/launcher.png)

Main window of Segmentation Analysis:

![interface](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/roi_analysis.png)

Main window of Segmentation Analysis with view on measurement result:

![interface](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/roi_analysis2.png)

Window for creating a set of measurements:

![statistics](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/measurement.png)

Main window of Mask Segmentation:

![mask interface](https://raw.githubusercontent.com/4DNucleome/PartSeg/master/images/roi_mask.png)

## Laboratory

Laboratory of Functional and Structural Genomics
[http://4dnucleome.cent.uw.edu.pl/](http://4dnucleome.cent.uw.edu.pl/)

## Cite as

Bokota, G., Sroka, J., Basu, S. et al. PartSeg: a tool for quantitative feature extraction
from 3D microscopy images for dummies. BMC Bioinformatics 22, 72 (2021).
[https://doi.org/10.1186/s12859-021-03984-1](https://doi.org/10.1186/s12859-021-03984-1)


## Changelog

### 0.13.0

-   Add possibility of custom input widgets for algorithms
-   Switch to napari Colormaps instead of custom one
-   Add points visualization
-   Synchronization widget for builtin (View menu) napari viewer
-   Drop Python 3.6

### 0.12.7

-   Fixes for napari 0.4.6

### 0.12.6

-   Fix prev_mask_get
-   Fix cache mechanism on mask change
-   Update PyInstaller build

### 0.12.5

-   Fix bug in pipeline execute

### 0.12.4

-   Fix ROI Mask windows related build (signal not properly connected)

### 0.12.3

-   Fix ROI Mask

### 0.12.2

-   Fix windows bundle

### 0.12.1

-   History of last opened files
-   Add ROI annotation and ROI alternatives
-   Minor bugfix

### 0.12.0

-   Toggle multiple files widget in View menu
-   Toggle Left panel in ROI Analysis in View Menu
-   Rename Mask Segmentation to ROI Mask
-   Add documentation for interface
-   Add Batch processing tutorial
-   Add information about errors to batch processing output file
-   Load image from the batch prepare window
-   Add search option in part of list and combo boxes
-   Add drag and drop mechanism to load list of files to batch window.

### 0.11.5

-   add side view to viewer
-   fix horizontal view for Measurements result table

### 0.11.4

-   bump to napari 0.3.8 in bundle
-   fix bug with not presented segmentation loaded from project
-   add frame (1 pix) to image cat from base one based on segmentation
-   pin to Qt version to 5.14

### 0.11.3

-   prepare for napari 0.3.7
-   split napari io plugin on multiple part
-   better reporting for numpy array via sentry
-   fix setting color for mask marking

### 0.11.2

-   Speedup image set in viewer using async calls
-   Fix bug in long name of sheet with parameters

### 0.11.1

-   Add screenshot option in View menu
-   Add Voxels measurements

### 0.11.0

-   Make sprawl algorithm name shorter
-   Unify capitalisation of measurement names
-   Add simple measurements to mask segmentation
-   Use napari as viewer
-   Add possibility to preview additional output of algorithms (In View menu)
-   Update names of available Algorithm and Measurement to be more descriptive.

### 0.10.8

-   fix synchronisation between viewers in Segmentation Analysis
-   fix batch crash on error during batch run, add information about file on which calculation fails
-   add changelog preview in Help > About

### 0.10.7

-   in measurements, on empty list of components mean will return 0

### 0.10.6

-   fix border rim preview
-   fix problem with size of image preview
-   zoom with scroll and moving if rectangle zoom is not marked

### 0.10.5

-   make PartSeg PEP517 compatible.
-   fix multiple files widget on Windows (path normalisation)

### 0.10.4

-   fix slow zoom

### 0.10.3

-   deterministic order of elements in batch processing.

### 0.10.2

-   bugfixes

### 0.10.1

-   bugfixes

### 0.10.0

-   Add creating custom label coloring.
-   Change execs interpreter to python 3.7.
-   Add masking operation in Segmentation Mask.
-   Change license to BSD.
-   Allow select root type in batch processing.
-   Add median filter in preview.

### 0.9.7

-   fix bug in compare mask

### 0.9.6

-   fix bug in loading project with mask
-   upgrade PyInstaller version (bug  GHSA-7fcj-pq9j-wh2r)

### 0.9.5

-   fix bug in loading project in "Segmentation analysis"

### 0.9.4

-   read mask segmentation projects
-   choose source type in batch
-   add initial support to OIF and CZI file format
-   extract utils to PartSegCore module
-   add automated tests of example notebook
-   reversed mask
-   load segmentation parameters in mask segmentation
-   allow use sprawl in segmentation tool
-   add radial split of mask for measurement
-   add all measurement results in batch, per component sheet

### 0.9.3

-   start automated build documentation
-   change color map backend and allow for user to create custom color map.
-   segmentation compare
-   update test engines
-   support of PySide2

### 0.9.2.3

-   refactor code to make easier create plugin for mask segmentation
-   create class base updater for update outdated algorithm description
-   fix save functions
-   fix different bugs

### 0.9.2.2

-   extract static data to separated package
-   update marker of fix range and add mark of gauss in channel control

### 0.9.2.1

-   add VoteSmooth and add choosing of smooth algorithm

### 0.9.2

-   add pypi base check for update

-   remove resetting image state when change state in same image

-   in stack segmentation add options to picking components from segmentation's

-   in mask segmentation add:

    -   preview of segmentation parameters per component,
    -   save segmentation parameters in save file
    -   new implementation of batch mode.

### 0.9.1

-   Add multiple files widget

-   Add Calculating distances between segmented object and mask

-   Batch processing plan fixes:

    -   Fix adding pipelines to plan
    -   Redesign mask widget

-   modify measurement backend to allow calculate multi channel measurements.

### 0.9

Begin of changelog


