%global _empty_manifest_terminate_build 0 Name: python-PartSeg Version: 0.14.6 Release: 1 Summary: PartSeg is python GUI and set of napari plugins for bio imaging analysis especially nucleus analysis, License: BSD-3-Clause URL: https://4dnucleome.cent.uw.edu.pl/PartSeg/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/98/98/0504d6ffbbd38b91f03a46caf8f9a1c5b0c9488809184615a3f997b9207f/PartSeg-0.14.6.tar.gz BuildArch: noarch Requires: python3-IPython Requires: python3-PartSegCore-compiled-backend Requires: python3-PartSegData Requires: python3-QtAwesome Requires: python3-QtPy Requires: python3-SimpleITK Requires: python3-appdirs Requires: python3-czifile Requires: python3-defusedxml Requires: python3-h5py Requires: python3-imagecodecs Requires: python3-imageio Requires: python3-ipykernel Requires: python3-magicgui Requires: python3-mahotas Requires: python3-napari Requires: python3-nme Requires: python3-numpy Requires: python3-oiffile Requires: python3-openpyxl Requires: python3-packaging Requires: python3-pandas Requires: python3-psygnal Requires: python3-pydantic Requires: python3-pygments Requires: python3-qtconsole Requires: python3-requests Requires: python3-scipy Requires: python3-sentry-sdk Requires: python3-six Requires: python3-superqt Requires: python3-sympy Requires: python3-tifffile Requires: python3-traceback-with-variables Requires: python3-vispy Requires: python3-xlrd Requires: python3-xlsxwriter Requires: python3-importlib-metadata Requires: python3-typing-extensions Requires: python3-vispy Requires: python3-PyOpenGL-accelerate Requires: python3-PyOpenGL-accelerate Requires: python3-PyQt5 Requires: python3-autodoc-pydantic Requires: python3-sphinx Requires: python3-sphinx-autodoc-typehints Requires: python3-sphinx-qt-documentation Requires: python3-PyQt5 Requires: python3-PyQt5 Requires: python3-PySide2 Requires: python3-PySide2 Requires: python3-codecov Requires: python3-lxml Requires: python3-pytest Requires: python3-pytest-cov Requires: python3-pytest-qt Requires: python3-pytest-timeout Requires: python3-scikit-image Requires: python3-tox %description # PartSeg ![Tests](https://github.com/4DNucleome/PartSeg/workflows/Tests/badge.svg?branch=develop) [![PyPI version](https://badge.fury.io/py/PartSeg.svg)](https://badge.fury.io/py/PartSeg) [![Anaconda version](https://anaconda.org/conda-forge/partseg/badges/version.svg)](https://anaconda.org/conda-forge/partseg) [![Python Version](https://img.shields.io/pypi/pyversions/partseg.svg)](https://pypi.org/project/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=develop)](https://dev.azure.com/PartSeg/PartSeg/_build/latest?definitionId=1&branchName=develop) [![DOI](https://zenodo.org/badge/166421141.svg)](https://zenodo.org/badge/latestdoi/166421141) [![Publication DOI](https://img.shields.io/badge/Publication%20DOI-10.1186%2Fs12859--021--03984--1-blue)](https://doi.org/10.1186/s12859-021-03984-1) [![Licence: BSD3](https://img.shields.io/github/license/4DNucleome/PartSeg)](https://github.com/4DNucleome/PartSeg/blob/master/License.txt) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Contributions](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg) [![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://app.codacy.com/project/badge/Grade/f9b0f1eb2c92486d9efd99ed5b2ef326)](https://www.codacy.com/gh/4DNucleome/PartSeg/dashboard?utm_source=github.com&utm_medium=referral&utm_content=4DNucleome/PartSeg&utm_campaign=Badge_Grade) [![codecov](https://codecov.io/gh/4DNucleome/PartSeg/branch/develop/graph/badge.svg?token=nbAbkOAe1C)](https://codecov.io/gh/4DNucleome/PartSeg) [![DeepSource](https://deepsource.io/gh/4DNucleome/PartSeg.svg/?label=active+issues&show_trend=true&token=RuuHPIzqyqGaU-bKtOKPFWTg)](https://deepsource.io/gh/4DNucleome/PartSeg/?ref=repository-badge) PartSeg is a GUI and a library for segmentation algorithms. PartSeg also provide napari plugins for IO and labels measurement. 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) ## Installation - From binaries: - [Windows](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-windows.zip) (build on Windows 10) - [Linux](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-linux.zip) (build on Ubuntu 18.04) - [MacOS](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-macos.zip) (build on MacOS Mojave) - With pip: - From pypi: `pip install PartSeg[all]` - From repository: `pip install git+https://github.com/4DNucleome/PartSeg.git` Installation troubleshooting information could be found in wiki: [wiki](https://github.com/4DNucleome/PartSeg/wiki/Instalation-troubleshoot). If this information does not solve problem you can open [issue](https://github.com/4DNucleome/PartSeg/issues). ## 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.14.6 - 2022-11-13 #### Bug Fixes - Fix bug when loading already created project causing hide of ROI layer (#787) #### Features - Improve error message if segmentation do not fit in ROI Mask (#788) ### 0.14.5 - 2022-11-09 #### Bug Fixes - Fix scalebar color (#774) - Fix bug when saving segmentation parameters in mask analysis (#781) - Fix multiple errors related to loading a new file in interactive mode (#784) #### Features - Add an option for ensuring type in EventedDict and use it to validate profiles structures (#776) - Add an option to create an issue from the error report dialog (#782) - Add option for the multiline field in algorithm parameters (#766) #### Refactor - Optimize CLI actions (#772) - Clean warnings about threshold methods (#783) #### Build - Bump chanzuckerberg/napari-hub-preview-action from 0.1.5 to 0.1.6 (#775) ### 0.14.4 - 2022-10-24 #### Bug Fixes - Fix `get_theme` calls to prepare for napari 0.4.17 (#729) - Fix sentry tests (#742) - Fix reporting error in load settings from the drive (#725) - Fix saving pipeline from GUI (#756) - Fix profile export/import dialogs (#761) - Enable the "Compare" button if ROI is available (#765) - Fix bug in cut with ROI to not make black artifacts (#767) #### Features - Load alternatives labeling when opening PartSeg projects in napari (#731) - Add option to toggle scale bar (#733) - Allow customizing the settings directory using the `PARTSEG_SETTINGS_DIR` environment variable (#751) - Separate recent algorithms from general application settings (#752) - Add multiple otsu as threshold method with selection range of components (#710) - Add function to load components from Mask Segmentation with a background in ROI Analysis (#768) #### Miscellaneous Tasks - Prepare pyinstaller configuration for napari 0.4.17 (#748) - Add ruff linter (#754) #### Testing - Add new build and inspect wheel action (#747) #### Build - Bump actions/checkout from 2 to 3 (#716) - Bump actions/download-artifact from 1 to 3 (#709) ### 0.14.3 - 2022-08-18 #### Bug Fixes - Fix lack of rendering ROI when load image from segmentation (#694) - Fix running ROI extraction from napari widget (#695) - Delay setting image if an algorithm is still running (#627) - Wrong error report when no component is found in restartable segmentation algorithm. (#633) - Fix the process of building documentation (#653) #### Refactor - Clean potential vulnerabilities (#630) #### Testing - Add more tests for common GUI elements (#622) - Report coverage per package. (#639) - Update conda environment to not use PyQt5 in test (#646) - Add tests files to calculate coverage (#655) ### 0.14.2 - 2022-05-05 #### Bug Fixes - Fix bug in save label colors between sessions (#610) - Register PartSeg plugins before starting napari widgets. (#611) - Mouse interaction with components works again after highlight. (#620) #### Refactor - Limit test run (#603) - Filter and solve warnings in tests (#607) - Use QAbstractSpinBox.AdaptiveDecimalStepType in SpinBox instead of hardcoded bounds (#616) - Clean and test `PartSeg.common_gui.universal_gui_part` (#617) #### Testing - Speedup test by setup cache for pip (#604) - Setup cache for azure pipelines workflows (#606) ### 0.14.1 - 2022-04-27 #### Bug Fixes - Update build wheels and sdist to have proper version tag (#583) - Fix removing the first measurement entry in the napari Measurement widget (#584) - Fix compatibility bug for conda Pyside2 version (#595) - Error when synchronization is loaded, and newly loaded image has different dimensionality than currently loaded. (#598) #### Features - Use pygments for coloring code in exception window (#591) - Add option to calculate Measurement per Mask component (#590) #### Refactor - Refactor the creation batch plan widgets and add tests for it (#587) - Drop napari bellow 0.4.12 (#592) - Update the order of ROI Mask algorithms to be the same as in older PartSeg versions (#600) ### 0.14.0 - 2022-04-14 #### Bug Fixes - Fix "Show selected" rendering mode in PartSeg ROI Mask (#565) - Add access by operator `[]` to `pydantic.BaseModel` base structures for keeping backward compatibility (#579) #### Features - Allow setting zoom factor from the interface in Search Label napari plugin (#538) - Add controlling of zoom factor of search ROI in main GUI (#540) - Better serialization mechanism allow for declaration data structure migration locally (#462) - Make `*.obsep" file possible to load in PartSeg Analysis (#564) - Add option to extract measurement profile or ROI extraction profile from the batch plan (#568) - Allow import calculation plan from batch result excel file (#567) - Improve error reporting when failing to deserialize data (#574) - Launch PartSeg GUI from napari #581 #### Refactor - Store PartSegImage.Image channels as separated arrays (#554) - Remove deprecated modules. (#429) - Switch serialization backend to `nme` (#569) #### Testing - Add test of creating AboutDialog (#539) - Setup test for python 3.10. Disable `class_generator` test for this python (#570) ### 0.13.15 #### Bug Fixes - Using `translation` instead of `translation_grid` for shifting layers. (#474) - Bugs in napari plugins (#478) - Missing mask when using roi extraction from napari (#479) - Fix segmentation fault on macos machines (#487) - Fixes for napari 0.4.13 (#506) #### Documentation - Create 0.13.15 release (#511) - Add categories and preview page workflow for the napari hub (#489) #### Features - Assign properties to mask layer in napari measurement widget (#480) #### Build - Bump qtpy from 1.11.3 to 2.0.0 in /requirements (#498) - Bump pydantic from 1.8.2 to 1.9.0 in /requirements (#496) - Bump sentry-sdk from 1.5.1 to 1.5.2 in /requirements (#497) - Bump sphinx from 4.3.1 to 4.3.2 in /requirements (#500) - Bump pyinstaller from 4.7 to 4.8 in /requirements (#502) - Bump pillow from 8.4.0 to 9.0.0 in /requirements (#501) - Bump requests from 2.26.0 to 2.27.1 in /requirements (#495) - Bump numpy from 1.21.4 to 1.22.0 in /requirements (#499) - Bump numpy from 1.22.0 to 1.22.1 in /requirements (#509) - Bump sphinx from 4.3.2 to 4.4.0 in /requirements (#510) ### 0.13.14 #### Bug Fixes - ROI alternative representation (#471) - Change additive to translucent in rendering ROI and Mask (#472) #### Features - Add morphological watershed segmentation (#469) - Add Bilateral image filter (#470) ### 0.13.13 #### Bug Fixes - Fix bugs in the generation process of the changelog for release. (#428) - Restoring ROI on home button click in compare viewer (#443) - Fix Measurement name prefix in bundled PartSeg. (#458) - Napari widgets registration in pyinstaller bundle (#465) - Hide points button if no points are loaded, hide Mask checkbox if no mask is set (#463) - Replace Label data instead of adding/removing layers - fix blending layers (#464) #### Features - Add threshold information in layer annotation in the Multiple Otsu ROI extraction method (#430) - Add option to select rendering method for ROI (#431) - Add callback mechanism to ProfileDict, live update of ROI render parameters (#432) - Move the info bar on the bottom of the viewer (#442) - Add options to load recent files in multiple files widget (#444) - Add ROI annotations as properties to napari labels layer created by ROI Extraction widgets (#445) - Add signals to ProfileDict, remove redundant synchronization mechanisms (#449) - Allow ignoring updates for 21 days (#453) - Save all components if no components selected in mask segmentation (#456) - Add modal dialog for search ROI components (#459) - Add full measurement support as napari widget (#460) - Add search labels as napari widget (#467) #### Refactor - Export common code for load/save dialog to one place (#437) - Change most of call QFileDialog to more generic code (#440) #### Testing - Add test for `PartSeg.common_backend` module (#433) ### 0.13.12 #### Bug Fixes - Importing the previous version of settings (#406) - Cutting without masking data (#407) - Save in subdirectory in batch plan (#414) - Loading plugins for batch processing (#423) #### Features - Add randomization option for correlation calculation (#421) - Add Imagej TIFF writter for image. (#405) - Mask create widget for napari (#395) - In napari roi extraction method show information from roi extraction method (#408) - Add `*[0-9].tif` button in batch processing window (#412) - Better label representation in 3d view (#418) #### Refactor - Use Font Awesome instead of custom symbols (#424) ### 0.13.11 #### Bug Fixes - Adding mask in Prepare Plan for batch (#383) - Set proper completion mode in SearchComboBox (#384) - Showing warnings on the error with ROI load (#385) #### Features - Add CellFromNucleusFlow "Cell from nucleus flow" cell segmentation method (#367) - When cutting components in PartSeg ROI mask allow not masking outer data (#379) - Theme selection in GUI (#381) - Allow return points from ROI extraction algorithm (#382) - Add measurement to get ROI annotation by name. (#386) - PartSeg ROI extraction algorithms as napari plugins (#387) - Add Pearson, Mander's, Intensity, Spearman colocalization measurements (#392) - Separate standalone napari settings from PartSeg embedded napari settings (#397) #### Performance - Use faster calc bound function (#375) #### Refactor - Remove CustomApplication (#389) ### 0.13.10 - change tiff save backend to ome-tiff - add `DistanceROIROI` and `ROINeighbourhoodROI` measurements ### 0.13.9 - annotation show bugfix ### 0.13.8 - napari deprecation fixes - speedup simple measurement - bundle plugins initial support ### 0.13.7 - add measurements widget for napari - fix bug in pipeline usage ### 0.13.6 - Hotfix release - Prepare for a new napari version ### 0.13.5 - Small fixes for error reporting - Fix mask segmentation ### 0.13.4 - Bugfix for outdated profile/pipeline preview ### 0.13.3 - Fix saving roi_info in multiple files and history ### 0.13.2 - Fix showing label in select label tab ### 0.13.1 - Add Haralick measurements - Add obsep file support ### 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 %package -n python3-PartSeg Summary: PartSeg is python GUI and set of napari plugins for bio imaging analysis especially nucleus analysis, Provides: python-PartSeg BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-PartSeg # PartSeg ![Tests](https://github.com/4DNucleome/PartSeg/workflows/Tests/badge.svg?branch=develop) [![PyPI version](https://badge.fury.io/py/PartSeg.svg)](https://badge.fury.io/py/PartSeg) [![Anaconda version](https://anaconda.org/conda-forge/partseg/badges/version.svg)](https://anaconda.org/conda-forge/partseg) [![Python Version](https://img.shields.io/pypi/pyversions/partseg.svg)](https://pypi.org/project/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=develop)](https://dev.azure.com/PartSeg/PartSeg/_build/latest?definitionId=1&branchName=develop) [![DOI](https://zenodo.org/badge/166421141.svg)](https://zenodo.org/badge/latestdoi/166421141) [![Publication DOI](https://img.shields.io/badge/Publication%20DOI-10.1186%2Fs12859--021--03984--1-blue)](https://doi.org/10.1186/s12859-021-03984-1) [![Licence: BSD3](https://img.shields.io/github/license/4DNucleome/PartSeg)](https://github.com/4DNucleome/PartSeg/blob/master/License.txt) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Contributions](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg) [![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://app.codacy.com/project/badge/Grade/f9b0f1eb2c92486d9efd99ed5b2ef326)](https://www.codacy.com/gh/4DNucleome/PartSeg/dashboard?utm_source=github.com&utm_medium=referral&utm_content=4DNucleome/PartSeg&utm_campaign=Badge_Grade) [![codecov](https://codecov.io/gh/4DNucleome/PartSeg/branch/develop/graph/badge.svg?token=nbAbkOAe1C)](https://codecov.io/gh/4DNucleome/PartSeg) [![DeepSource](https://deepsource.io/gh/4DNucleome/PartSeg.svg/?label=active+issues&show_trend=true&token=RuuHPIzqyqGaU-bKtOKPFWTg)](https://deepsource.io/gh/4DNucleome/PartSeg/?ref=repository-badge) PartSeg is a GUI and a library for segmentation algorithms. PartSeg also provide napari plugins for IO and labels measurement. 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) ## Installation - From binaries: - [Windows](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-windows.zip) (build on Windows 10) - [Linux](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-linux.zip) (build on Ubuntu 18.04) - [MacOS](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-macos.zip) (build on MacOS Mojave) - With pip: - From pypi: `pip install PartSeg[all]` - From repository: `pip install git+https://github.com/4DNucleome/PartSeg.git` Installation troubleshooting information could be found in wiki: [wiki](https://github.com/4DNucleome/PartSeg/wiki/Instalation-troubleshoot). If this information does not solve problem you can open [issue](https://github.com/4DNucleome/PartSeg/issues). ## 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.14.6 - 2022-11-13 #### Bug Fixes - Fix bug when loading already created project causing hide of ROI layer (#787) #### Features - Improve error message if segmentation do not fit in ROI Mask (#788) ### 0.14.5 - 2022-11-09 #### Bug Fixes - Fix scalebar color (#774) - Fix bug when saving segmentation parameters in mask analysis (#781) - Fix multiple errors related to loading a new file in interactive mode (#784) #### Features - Add an option for ensuring type in EventedDict and use it to validate profiles structures (#776) - Add an option to create an issue from the error report dialog (#782) - Add option for the multiline field in algorithm parameters (#766) #### Refactor - Optimize CLI actions (#772) - Clean warnings about threshold methods (#783) #### Build - Bump chanzuckerberg/napari-hub-preview-action from 0.1.5 to 0.1.6 (#775) ### 0.14.4 - 2022-10-24 #### Bug Fixes - Fix `get_theme` calls to prepare for napari 0.4.17 (#729) - Fix sentry tests (#742) - Fix reporting error in load settings from the drive (#725) - Fix saving pipeline from GUI (#756) - Fix profile export/import dialogs (#761) - Enable the "Compare" button if ROI is available (#765) - Fix bug in cut with ROI to not make black artifacts (#767) #### Features - Load alternatives labeling when opening PartSeg projects in napari (#731) - Add option to toggle scale bar (#733) - Allow customizing the settings directory using the `PARTSEG_SETTINGS_DIR` environment variable (#751) - Separate recent algorithms from general application settings (#752) - Add multiple otsu as threshold method with selection range of components (#710) - Add function to load components from Mask Segmentation with a background in ROI Analysis (#768) #### Miscellaneous Tasks - Prepare pyinstaller configuration for napari 0.4.17 (#748) - Add ruff linter (#754) #### Testing - Add new build and inspect wheel action (#747) #### Build - Bump actions/checkout from 2 to 3 (#716) - Bump actions/download-artifact from 1 to 3 (#709) ### 0.14.3 - 2022-08-18 #### Bug Fixes - Fix lack of rendering ROI when load image from segmentation (#694) - Fix running ROI extraction from napari widget (#695) - Delay setting image if an algorithm is still running (#627) - Wrong error report when no component is found in restartable segmentation algorithm. (#633) - Fix the process of building documentation (#653) #### Refactor - Clean potential vulnerabilities (#630) #### Testing - Add more tests for common GUI elements (#622) - Report coverage per package. (#639) - Update conda environment to not use PyQt5 in test (#646) - Add tests files to calculate coverage (#655) ### 0.14.2 - 2022-05-05 #### Bug Fixes - Fix bug in save label colors between sessions (#610) - Register PartSeg plugins before starting napari widgets. (#611) - Mouse interaction with components works again after highlight. (#620) #### Refactor - Limit test run (#603) - Filter and solve warnings in tests (#607) - Use QAbstractSpinBox.AdaptiveDecimalStepType in SpinBox instead of hardcoded bounds (#616) - Clean and test `PartSeg.common_gui.universal_gui_part` (#617) #### Testing - Speedup test by setup cache for pip (#604) - Setup cache for azure pipelines workflows (#606) ### 0.14.1 - 2022-04-27 #### Bug Fixes - Update build wheels and sdist to have proper version tag (#583) - Fix removing the first measurement entry in the napari Measurement widget (#584) - Fix compatibility bug for conda Pyside2 version (#595) - Error when synchronization is loaded, and newly loaded image has different dimensionality than currently loaded. (#598) #### Features - Use pygments for coloring code in exception window (#591) - Add option to calculate Measurement per Mask component (#590) #### Refactor - Refactor the creation batch plan widgets and add tests for it (#587) - Drop napari bellow 0.4.12 (#592) - Update the order of ROI Mask algorithms to be the same as in older PartSeg versions (#600) ### 0.14.0 - 2022-04-14 #### Bug Fixes - Fix "Show selected" rendering mode in PartSeg ROI Mask (#565) - Add access by operator `[]` to `pydantic.BaseModel` base structures for keeping backward compatibility (#579) #### Features - Allow setting zoom factor from the interface in Search Label napari plugin (#538) - Add controlling of zoom factor of search ROI in main GUI (#540) - Better serialization mechanism allow for declaration data structure migration locally (#462) - Make `*.obsep" file possible to load in PartSeg Analysis (#564) - Add option to extract measurement profile or ROI extraction profile from the batch plan (#568) - Allow import calculation plan from batch result excel file (#567) - Improve error reporting when failing to deserialize data (#574) - Launch PartSeg GUI from napari #581 #### Refactor - Store PartSegImage.Image channels as separated arrays (#554) - Remove deprecated modules. (#429) - Switch serialization backend to `nme` (#569) #### Testing - Add test of creating AboutDialog (#539) - Setup test for python 3.10. Disable `class_generator` test for this python (#570) ### 0.13.15 #### Bug Fixes - Using `translation` instead of `translation_grid` for shifting layers. (#474) - Bugs in napari plugins (#478) - Missing mask when using roi extraction from napari (#479) - Fix segmentation fault on macos machines (#487) - Fixes for napari 0.4.13 (#506) #### Documentation - Create 0.13.15 release (#511) - Add categories and preview page workflow for the napari hub (#489) #### Features - Assign properties to mask layer in napari measurement widget (#480) #### Build - Bump qtpy from 1.11.3 to 2.0.0 in /requirements (#498) - Bump pydantic from 1.8.2 to 1.9.0 in /requirements (#496) - Bump sentry-sdk from 1.5.1 to 1.5.2 in /requirements (#497) - Bump sphinx from 4.3.1 to 4.3.2 in /requirements (#500) - Bump pyinstaller from 4.7 to 4.8 in /requirements (#502) - Bump pillow from 8.4.0 to 9.0.0 in /requirements (#501) - Bump requests from 2.26.0 to 2.27.1 in /requirements (#495) - Bump numpy from 1.21.4 to 1.22.0 in /requirements (#499) - Bump numpy from 1.22.0 to 1.22.1 in /requirements (#509) - Bump sphinx from 4.3.2 to 4.4.0 in /requirements (#510) ### 0.13.14 #### Bug Fixes - ROI alternative representation (#471) - Change additive to translucent in rendering ROI and Mask (#472) #### Features - Add morphological watershed segmentation (#469) - Add Bilateral image filter (#470) ### 0.13.13 #### Bug Fixes - Fix bugs in the generation process of the changelog for release. (#428) - Restoring ROI on home button click in compare viewer (#443) - Fix Measurement name prefix in bundled PartSeg. (#458) - Napari widgets registration in pyinstaller bundle (#465) - Hide points button if no points are loaded, hide Mask checkbox if no mask is set (#463) - Replace Label data instead of adding/removing layers - fix blending layers (#464) #### Features - Add threshold information in layer annotation in the Multiple Otsu ROI extraction method (#430) - Add option to select rendering method for ROI (#431) - Add callback mechanism to ProfileDict, live update of ROI render parameters (#432) - Move the info bar on the bottom of the viewer (#442) - Add options to load recent files in multiple files widget (#444) - Add ROI annotations as properties to napari labels layer created by ROI Extraction widgets (#445) - Add signals to ProfileDict, remove redundant synchronization mechanisms (#449) - Allow ignoring updates for 21 days (#453) - Save all components if no components selected in mask segmentation (#456) - Add modal dialog for search ROI components (#459) - Add full measurement support as napari widget (#460) - Add search labels as napari widget (#467) #### Refactor - Export common code for load/save dialog to one place (#437) - Change most of call QFileDialog to more generic code (#440) #### Testing - Add test for `PartSeg.common_backend` module (#433) ### 0.13.12 #### Bug Fixes - Importing the previous version of settings (#406) - Cutting without masking data (#407) - Save in subdirectory in batch plan (#414) - Loading plugins for batch processing (#423) #### Features - Add randomization option for correlation calculation (#421) - Add Imagej TIFF writter for image. (#405) - Mask create widget for napari (#395) - In napari roi extraction method show information from roi extraction method (#408) - Add `*[0-9].tif` button in batch processing window (#412) - Better label representation in 3d view (#418) #### Refactor - Use Font Awesome instead of custom symbols (#424) ### 0.13.11 #### Bug Fixes - Adding mask in Prepare Plan for batch (#383) - Set proper completion mode in SearchComboBox (#384) - Showing warnings on the error with ROI load (#385) #### Features - Add CellFromNucleusFlow "Cell from nucleus flow" cell segmentation method (#367) - When cutting components in PartSeg ROI mask allow not masking outer data (#379) - Theme selection in GUI (#381) - Allow return points from ROI extraction algorithm (#382) - Add measurement to get ROI annotation by name. (#386) - PartSeg ROI extraction algorithms as napari plugins (#387) - Add Pearson, Mander's, Intensity, Spearman colocalization measurements (#392) - Separate standalone napari settings from PartSeg embedded napari settings (#397) #### Performance - Use faster calc bound function (#375) #### Refactor - Remove CustomApplication (#389) ### 0.13.10 - change tiff save backend to ome-tiff - add `DistanceROIROI` and `ROINeighbourhoodROI` measurements ### 0.13.9 - annotation show bugfix ### 0.13.8 - napari deprecation fixes - speedup simple measurement - bundle plugins initial support ### 0.13.7 - add measurements widget for napari - fix bug in pipeline usage ### 0.13.6 - Hotfix release - Prepare for a new napari version ### 0.13.5 - Small fixes for error reporting - Fix mask segmentation ### 0.13.4 - Bugfix for outdated profile/pipeline preview ### 0.13.3 - Fix saving roi_info in multiple files and history ### 0.13.2 - Fix showing label in select label tab ### 0.13.1 - Add Haralick measurements - Add obsep file support ### 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 %package help Summary: Development documents and examples for PartSeg Provides: python3-PartSeg-doc %description help # PartSeg ![Tests](https://github.com/4DNucleome/PartSeg/workflows/Tests/badge.svg?branch=develop) [![PyPI version](https://badge.fury.io/py/PartSeg.svg)](https://badge.fury.io/py/PartSeg) [![Anaconda version](https://anaconda.org/conda-forge/partseg/badges/version.svg)](https://anaconda.org/conda-forge/partseg) [![Python Version](https://img.shields.io/pypi/pyversions/partseg.svg)](https://pypi.org/project/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=develop)](https://dev.azure.com/PartSeg/PartSeg/_build/latest?definitionId=1&branchName=develop) [![DOI](https://zenodo.org/badge/166421141.svg)](https://zenodo.org/badge/latestdoi/166421141) [![Publication DOI](https://img.shields.io/badge/Publication%20DOI-10.1186%2Fs12859--021--03984--1-blue)](https://doi.org/10.1186/s12859-021-03984-1) [![Licence: BSD3](https://img.shields.io/github/license/4DNucleome/PartSeg)](https://github.com/4DNucleome/PartSeg/blob/master/License.txt) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Contributions](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg) [![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://app.codacy.com/project/badge/Grade/f9b0f1eb2c92486d9efd99ed5b2ef326)](https://www.codacy.com/gh/4DNucleome/PartSeg/dashboard?utm_source=github.com&utm_medium=referral&utm_content=4DNucleome/PartSeg&utm_campaign=Badge_Grade) [![codecov](https://codecov.io/gh/4DNucleome/PartSeg/branch/develop/graph/badge.svg?token=nbAbkOAe1C)](https://codecov.io/gh/4DNucleome/PartSeg) [![DeepSource](https://deepsource.io/gh/4DNucleome/PartSeg.svg/?label=active+issues&show_trend=true&token=RuuHPIzqyqGaU-bKtOKPFWTg)](https://deepsource.io/gh/4DNucleome/PartSeg/?ref=repository-badge) PartSeg is a GUI and a library for segmentation algorithms. PartSeg also provide napari plugins for IO and labels measurement. 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) ## Installation - From binaries: - [Windows](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-windows.zip) (build on Windows 10) - [Linux](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-linux.zip) (build on Ubuntu 18.04) - [MacOS](https://4dnucleome.cent.uw.edu.pl/PartSeg/Downloads/PartSeg-0.14.6-macos.zip) (build on MacOS Mojave) - With pip: - From pypi: `pip install PartSeg[all]` - From repository: `pip install git+https://github.com/4DNucleome/PartSeg.git` Installation troubleshooting information could be found in wiki: [wiki](https://github.com/4DNucleome/PartSeg/wiki/Instalation-troubleshoot). If this information does not solve problem you can open [issue](https://github.com/4DNucleome/PartSeg/issues). ## 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.14.6 - 2022-11-13 #### Bug Fixes - Fix bug when loading already created project causing hide of ROI layer (#787) #### Features - Improve error message if segmentation do not fit in ROI Mask (#788) ### 0.14.5 - 2022-11-09 #### Bug Fixes - Fix scalebar color (#774) - Fix bug when saving segmentation parameters in mask analysis (#781) - Fix multiple errors related to loading a new file in interactive mode (#784) #### Features - Add an option for ensuring type in EventedDict and use it to validate profiles structures (#776) - Add an option to create an issue from the error report dialog (#782) - Add option for the multiline field in algorithm parameters (#766) #### Refactor - Optimize CLI actions (#772) - Clean warnings about threshold methods (#783) #### Build - Bump chanzuckerberg/napari-hub-preview-action from 0.1.5 to 0.1.6 (#775) ### 0.14.4 - 2022-10-24 #### Bug Fixes - Fix `get_theme` calls to prepare for napari 0.4.17 (#729) - Fix sentry tests (#742) - Fix reporting error in load settings from the drive (#725) - Fix saving pipeline from GUI (#756) - Fix profile export/import dialogs (#761) - Enable the "Compare" button if ROI is available (#765) - Fix bug in cut with ROI to not make black artifacts (#767) #### Features - Load alternatives labeling when opening PartSeg projects in napari (#731) - Add option to toggle scale bar (#733) - Allow customizing the settings directory using the `PARTSEG_SETTINGS_DIR` environment variable (#751) - Separate recent algorithms from general application settings (#752) - Add multiple otsu as threshold method with selection range of components (#710) - Add function to load components from Mask Segmentation with a background in ROI Analysis (#768) #### Miscellaneous Tasks - Prepare pyinstaller configuration for napari 0.4.17 (#748) - Add ruff linter (#754) #### Testing - Add new build and inspect wheel action (#747) #### Build - Bump actions/checkout from 2 to 3 (#716) - Bump actions/download-artifact from 1 to 3 (#709) ### 0.14.3 - 2022-08-18 #### Bug Fixes - Fix lack of rendering ROI when load image from segmentation (#694) - Fix running ROI extraction from napari widget (#695) - Delay setting image if an algorithm is still running (#627) - Wrong error report when no component is found in restartable segmentation algorithm. (#633) - Fix the process of building documentation (#653) #### Refactor - Clean potential vulnerabilities (#630) #### Testing - Add more tests for common GUI elements (#622) - Report coverage per package. (#639) - Update conda environment to not use PyQt5 in test (#646) - Add tests files to calculate coverage (#655) ### 0.14.2 - 2022-05-05 #### Bug Fixes - Fix bug in save label colors between sessions (#610) - Register PartSeg plugins before starting napari widgets. (#611) - Mouse interaction with components works again after highlight. (#620) #### Refactor - Limit test run (#603) - Filter and solve warnings in tests (#607) - Use QAbstractSpinBox.AdaptiveDecimalStepType in SpinBox instead of hardcoded bounds (#616) - Clean and test `PartSeg.common_gui.universal_gui_part` (#617) #### Testing - Speedup test by setup cache for pip (#604) - Setup cache for azure pipelines workflows (#606) ### 0.14.1 - 2022-04-27 #### Bug Fixes - Update build wheels and sdist to have proper version tag (#583) - Fix removing the first measurement entry in the napari Measurement widget (#584) - Fix compatibility bug for conda Pyside2 version (#595) - Error when synchronization is loaded, and newly loaded image has different dimensionality than currently loaded. (#598) #### Features - Use pygments for coloring code in exception window (#591) - Add option to calculate Measurement per Mask component (#590) #### Refactor - Refactor the creation batch plan widgets and add tests for it (#587) - Drop napari bellow 0.4.12 (#592) - Update the order of ROI Mask algorithms to be the same as in older PartSeg versions (#600) ### 0.14.0 - 2022-04-14 #### Bug Fixes - Fix "Show selected" rendering mode in PartSeg ROI Mask (#565) - Add access by operator `[]` to `pydantic.BaseModel` base structures for keeping backward compatibility (#579) #### Features - Allow setting zoom factor from the interface in Search Label napari plugin (#538) - Add controlling of zoom factor of search ROI in main GUI (#540) - Better serialization mechanism allow for declaration data structure migration locally (#462) - Make `*.obsep" file possible to load in PartSeg Analysis (#564) - Add option to extract measurement profile or ROI extraction profile from the batch plan (#568) - Allow import calculation plan from batch result excel file (#567) - Improve error reporting when failing to deserialize data (#574) - Launch PartSeg GUI from napari #581 #### Refactor - Store PartSegImage.Image channels as separated arrays (#554) - Remove deprecated modules. (#429) - Switch serialization backend to `nme` (#569) #### Testing - Add test of creating AboutDialog (#539) - Setup test for python 3.10. Disable `class_generator` test for this python (#570) ### 0.13.15 #### Bug Fixes - Using `translation` instead of `translation_grid` for shifting layers. (#474) - Bugs in napari plugins (#478) - Missing mask when using roi extraction from napari (#479) - Fix segmentation fault on macos machines (#487) - Fixes for napari 0.4.13 (#506) #### Documentation - Create 0.13.15 release (#511) - Add categories and preview page workflow for the napari hub (#489) #### Features - Assign properties to mask layer in napari measurement widget (#480) #### Build - Bump qtpy from 1.11.3 to 2.0.0 in /requirements (#498) - Bump pydantic from 1.8.2 to 1.9.0 in /requirements (#496) - Bump sentry-sdk from 1.5.1 to 1.5.2 in /requirements (#497) - Bump sphinx from 4.3.1 to 4.3.2 in /requirements (#500) - Bump pyinstaller from 4.7 to 4.8 in /requirements (#502) - Bump pillow from 8.4.0 to 9.0.0 in /requirements (#501) - Bump requests from 2.26.0 to 2.27.1 in /requirements (#495) - Bump numpy from 1.21.4 to 1.22.0 in /requirements (#499) - Bump numpy from 1.22.0 to 1.22.1 in /requirements (#509) - Bump sphinx from 4.3.2 to 4.4.0 in /requirements (#510) ### 0.13.14 #### Bug Fixes - ROI alternative representation (#471) - Change additive to translucent in rendering ROI and Mask (#472) #### Features - Add morphological watershed segmentation (#469) - Add Bilateral image filter (#470) ### 0.13.13 #### Bug Fixes - Fix bugs in the generation process of the changelog for release. (#428) - Restoring ROI on home button click in compare viewer (#443) - Fix Measurement name prefix in bundled PartSeg. (#458) - Napari widgets registration in pyinstaller bundle (#465) - Hide points button if no points are loaded, hide Mask checkbox if no mask is set (#463) - Replace Label data instead of adding/removing layers - fix blending layers (#464) #### Features - Add threshold information in layer annotation in the Multiple Otsu ROI extraction method (#430) - Add option to select rendering method for ROI (#431) - Add callback mechanism to ProfileDict, live update of ROI render parameters (#432) - Move the info bar on the bottom of the viewer (#442) - Add options to load recent files in multiple files widget (#444) - Add ROI annotations as properties to napari labels layer created by ROI Extraction widgets (#445) - Add signals to ProfileDict, remove redundant synchronization mechanisms (#449) - Allow ignoring updates for 21 days (#453) - Save all components if no components selected in mask segmentation (#456) - Add modal dialog for search ROI components (#459) - Add full measurement support as napari widget (#460) - Add search labels as napari widget (#467) #### Refactor - Export common code for load/save dialog to one place (#437) - Change most of call QFileDialog to more generic code (#440) #### Testing - Add test for `PartSeg.common_backend` module (#433) ### 0.13.12 #### Bug Fixes - Importing the previous version of settings (#406) - Cutting without masking data (#407) - Save in subdirectory in batch plan (#414) - Loading plugins for batch processing (#423) #### Features - Add randomization option for correlation calculation (#421) - Add Imagej TIFF writter for image. (#405) - Mask create widget for napari (#395) - In napari roi extraction method show information from roi extraction method (#408) - Add `*[0-9].tif` button in batch processing window (#412) - Better label representation in 3d view (#418) #### Refactor - Use Font Awesome instead of custom symbols (#424) ### 0.13.11 #### Bug Fixes - Adding mask in Prepare Plan for batch (#383) - Set proper completion mode in SearchComboBox (#384) - Showing warnings on the error with ROI load (#385) #### Features - Add CellFromNucleusFlow "Cell from nucleus flow" cell segmentation method (#367) - When cutting components in PartSeg ROI mask allow not masking outer data (#379) - Theme selection in GUI (#381) - Allow return points from ROI extraction algorithm (#382) - Add measurement to get ROI annotation by name. (#386) - PartSeg ROI extraction algorithms as napari plugins (#387) - Add Pearson, Mander's, Intensity, Spearman colocalization measurements (#392) - Separate standalone napari settings from PartSeg embedded napari settings (#397) #### Performance - Use faster calc bound function (#375) #### Refactor - Remove CustomApplication (#389) ### 0.13.10 - change tiff save backend to ome-tiff - add `DistanceROIROI` and `ROINeighbourhoodROI` measurements ### 0.13.9 - annotation show bugfix ### 0.13.8 - napari deprecation fixes - speedup simple measurement - bundle plugins initial support ### 0.13.7 - add measurements widget for napari - fix bug in pipeline usage ### 0.13.6 - Hotfix release - Prepare for a new napari version ### 0.13.5 - Small fixes for error reporting - Fix mask segmentation ### 0.13.4 - Bugfix for outdated profile/pipeline preview ### 0.13.3 - Fix saving roi_info in multiple files and history ### 0.13.2 - Fix showing label in select label tab ### 0.13.1 - Add Haralick measurements - Add obsep file support ### 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 %prep %autosetup -n PartSeg-0.14.6 %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-PartSeg -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 0.14.6-1 - Package Spec generated