pycat-napari


Namepycat-napari JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryPython Condensate Analysis Toolbox - A napari-based tool for biomolecular condensate analysis
upload_time2024-12-19 20:01:56
maintainerNone
docs_urlNone
authorNone
requires_python==3.9.*
licenseLicense ------- BSD 3-Clause License Copyright (c) 2024, Christian Neureuter, Banerjee Lab, State University of New York at Buffalo All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the University at Buffalo, the author, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Third-Party Software Notice --------------------------- This project includes third-party software components licensed under various open-source licenses. For more information regarding these licenses, please refer to the THIRD_PARTY_LICENSES.txt file located in the root directory of this project.
keywords bio-image condensate fluorescence image analysis microscopy napari pycat scientific
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyCAT-Napari
![License](https://img.shields.io/github/license/BanerjeeLab-repertoire/pycat-napari)
![PyPI](https://img.shields.io/pypi/v/pycat-napari)
![Python Version](https://img.shields.io/pypi/pyversions/pycat-napari)
![Downloads](https://img.shields.io/pypi/dm/pycat-napari)
![GitHub Stars](https://img.shields.io/github/stars/BanerjeeLab-repertoire/pycat-napari)
![GitHub Forks](https://img.shields.io/github/forks/BanerjeeLab-repertoire/pycat-napari)

![PyCAT Logo](src/pycat/icons/pycat_logo_512.png)

PyCAT (Python Condensate Analysis Toolbox) is an open-source application built on [napari](https://napari.org/) for analyzing biomolecular condensates in biological images. It provides a comprehensive suite of tools for fluorescence image analysis, particularly focused on condensate detection, measurement, and characterization. PyCAT aims to provide a low/no-code solution, accessible to researchers with varying levels of programming experience.

## Table of Contents

- [Features](#features)
- [System Requirements](#system-requirements)
- [Getting Started](#getting-started)
- [Installation](#installation)
- [Usage](#usage)
- [Documentation](#documentation)
- [Notebooks](#notebooks)
- [Development](#development)
- [Contributing](#contributing)
- [License](#license)
- [Citation](#citation)
- [Support & Troubleshooting](#support--troubleshooting)
- [Project Status & Roadmap](#project-status--roadmap)
- [Acknowledgments](#acknowledgments)

## Features

PyCAT-Napari provides a comprehensive suite of tools for biological image analysis, with a focus on in-cellulo and per-cell analyses.

| Category                     | Capabilities                                                                                              |
|------------------------------|----------------------------------------------------------------------------------------------------------|
| **Image Processing and Segmentation** | - Versatile toolbox with common image processing and analysis functions.<br>- Specialized condensate segmentation and object filtering algorithms.<br>- Optimized for in-cellulo analysis in challenging biological datasets. |
| **Quantitative Region Analysis**      | - Simple and intuitive layer and ROI mask design.<br>- Extensive ROI feature analysis, including area, intensity, shape, texture, and more.<br>- Advanced colocalization analysis:<br>&nbsp;&nbsp;&nbsp;- Object-based metrics: Jaccard Index, Dice Coefficient, Mander’s coefficients, and distance analysis.<br>&nbsp;&nbsp;&nbsp;- Pixel-wise metrics: Pearson’s R, Spearman’s R, Li’s ICQ, and more.<br>&nbsp;&nbsp;&nbsp;- Modified Costes analysis: Automated thresholds and statistical significance testing.<br>- Correlation function analysis: Auto- and cross-correlation functions with Gaussian fitting. |
| **Integrated Analysis Pipelines**     | - **Condensate Analysis Pipeline**: Tailored for in-cellulo biomolecular condensates.<br>- **Colocalization Analysis Pipeline**: Combines object-based and pixel-wise methods for robust colocalization studies.<br>- **General ROI Analysis Pipeline**: Flexible pipeline for exploratory measurements.<br>- **Fibril Analysis Pipeline**: Specialized for analyzing beta-amyloid fibers and fibril structures. |


## System Requirements

### Compatibility Matrix

| Platform      | Python | Status    | Notes                    |
|--------------|---------|-----------|--------------------------|
| Windows 10/11 | 3.9     | Tested    | Logo display issue      |
| Mac M1/ARM   | 3.9     | Tested    | Requires specific torch |
| Mac Intel    | 3.9     | Untested* | Should work            |
| Linux        | 3.9     | Untested* | Should work            |

*While untested, these platforms should work with standard installation.

### Minimum Requirements
- **Python Version**: 3.9.x (Required)
  > ⚠️ **Important**: PyCAT-Napari is currently only compatible with Python 3.9. Other versions are not supported in this release. Future releases may aim to expand to more versions. 
- RAM: 8GB (16GB recommended)
- Disk Space: ~100MB (including dependencies)
- GPU: Not required (CPU-only processing)

## Getting Started

PyCAT requires Python 3.9 and a package/environment manager. We recommend using Mambaforge/Miniforge for package and environment management, but we include instructions for alternative methods.  Before installing PyCAT-Napari, follow this quick assessment to determine your setup needs:

### Initial Setup Check

#### 1. Do you have Python installed?

Check Python Installation

Run this command in your terminal (mac)/command prompt (anaconda prompt)/powershell(windows):
```bash
python --version
```

If you get a version number: ✅ You have Python installed

If you get an error: ❌ See [Python and Package Manager Installation Guide](https://pycat-napari.readthedocs.io/en/latest/installation.html#python-and-package-manager-installation) 

#### 2. Do you have Conda or Mamba installed?

Check Your Environment Manager

```bash
conda --version
# or
mamba --version
```

If you get a version number: ✅ You have conda/mamba installed 

If you get an error: ❌ See [Python and Package Manager Installation Guide](https://pycat-napari.readthedocs.io/en/latest/installation.html#python-and-package-manager-installation) 

#### 3. Are you familiar with Python environments?

If yes: ✅ Proceed to [Installation](#installation)

If no: ❌ Read our quick environment guide below

**Python Package and Environments Info**

Think of environments like separate containers for different projects - they help avoid conflicts and keep things organized. Don't worry, they're simpler than they sound!

Python environments help you:
- Keep projects separate
- Avoid version conflicts
- Ensure reproducibility

Package Manager Choice
> 💡 **Why Miniforge?**  
> Miniforge is a lightweight distribution of Conda, offering faster package installation and fewer pre-installed packages Mambaforge is being deprecated in favor of Miniforge. 
> **Key Advantages:**  
> - Quicker dependency resolution  
> - Minimal initial install (no unnecessary extras)  
> - Fully compatible with conda commands (just use `mamba` in place of `conda`)

Already have Anaconda? That's fine! You can skip the Miniforge installation and use your existing setup.

Basic environment commands:
```bash
# Create new environment with Python 3.9
mamba create -n pycat-env python=3.9

# Activate the environment
mamba activate pycat-env

# Verify you're in the right environment
python --version  # Should show Python 3.9.x
```

## Installation

### Basic Installation

Create and activate a new environment:
```bash
# Create environment
mamba create -n pycat-env python=3.9

# Activate environment
mamba activate pycat-env
```

#### Windows
```bash
pip install pycat-napari
```
Note: On Windows, due to some platform-specific rendering quirks, the application logo may not display correctly. This is purely cosmetic and does not affect functionality.

#### Mac M1/ARM
```bash
pip install "pycat-napari[arm-mac]"
```

### Optional Features

You can install PyCAT with additional tools, features, and packages. For example, dev, test, and doc tools. The devbio-napari package adds numerous additional image analysis tools. Learn more at [devbio-napari documentation](https://github.com/haesleinhuepf/devbio-napari).

```bash
# Development tools
pip install "pycat-napari[dev]"

# Additional bio-image analysis tools (recommended)
pip install "pycat-napari[devbio-napari]"
```
> 💡 **Tip**: You can designate multiple optional dependencies by separating them with a comma
   ```bash
   # Install dev tools on an ARM Mac
   pip install "pycat-napari[arm-mac, dev]"
   ```


### Alternative Installation Methods

If you encounter issues with the standard installation, use our tested environment files located in the config/ folder. We provide complete environment files that match our development package setup (no dev tools installed though, please install those separately if youre trying to install a dev version for a fork or pull request) to provide you with the same environment we developed and ran in. To use these environment files, just download the yaml file from the config folder on the github repo, then cd to the location of the downloaded file in your terminal, then run:

```bash
# Windows
mamba env create -f pycat-devbio-napari-env-x86-windows.yml

# Mac M1/ARM
mamba env create -f pycat-devbio-napari-env-arm-mac.yml
```

### Verifying Installation & Optional Testing 

After installation, verify PyCAT-Napari is working correctly:

#### 1. Basic Checks
```bash
# Activate your environment
mamba activate pycat-env

# Verify Python version
python --version  # Should show 3.9.x

# Test basic import
python -c "import pycat; print('PyCAT import successful!')"

# Launch GUI (basic smoke test)
run-pycat  # Should open the GUI window
```

If you encounter any failures, check:

1. Python version (must be 3.9.x)
2. Environment activation
3. Complete installation of dependencies
4. [Troubleshooting Tips](#support--troubleshooting)
5. Check the issues 

Still having problems installing or running the program? Open a github issue. If you need urgent help, reach out to us and we will try to get back to you as soon as possible. 

## Usage

PyCAT-Napari offers two ways to analyze your data: through a user-friendly GUI or programmatically via Python code. PyCAT was developed as a low/no-code solution to image analysis so usage of the GUI is recommedned. API usage has not been thoroughly tested however many core functions are modular and should work via API. 

### GUI Application

![PyCAT main interface with key areas labeled](./assets/screenshots/Viewer_and_menu_highlights.png)

Launch PyCAT's graphical interface with:
```bash
run-pycat
```

A blank Napari viewer with added menu items on the right will open up for you. In the image above the added menus have been expanded and color coded.
- 🟦 **Analysis Methods** - provides pre-made pipelines offering tools and outputs depending on the given method that you choose.
- 🟩 **Toolbox** - is a menu full of all of the individual functions and tools in PyCAT, for novel algorithm experimentation and analysis workflow customization.
- 🟥 **Open/Save File(s)** - handles image and data input/output for PyCAT, using AICSImageIO to read various microscope and metadata formats, and storing the information in PyCAT’s internal data structure.
   - Note: you must use this and not the integrated Napari IO under the typical file open file save or the integrated drag and drop feature since they are not integrated with PyCATs internal data structure. 

PyCAT-Napari integrates seamlessly with the Napari interface, providing users with a powerful and intuitive environment for image analysis. Napari's interface is designed to be user-friendly, resembling popular pixel or raster photo editors like MSPaint or Photoshop. So, if you've ever used a photo editor, the tools should be simple enough to acclimate to. 

- 🟨 **Layer Tools** - where users can easily add or remove various layers such as images, shapes, and labels from the viewer. This feature allows for quick management of the visual elements, including the ability to hide or show layers using the eye icon.
- 🟪 **Shape and Label Tools** - which include node tools for manipulating shape layers, as well as paint brush, eraser, and bucket tools for label layers. Users can also apply colormaps to images and change opacity to view overlapping images. 






#### Basic GUI Workflow 

Once you have the application open, choose your analysis method from the menu. This populates the dock with a pre-made analysis pipeline, even if you're doing your own algorithmic exploration, it is recomended to use `General Analysis` for more robust integration with the internal PyCAT data strcutre. 

PyCAT excels at in-cellulo nuclear condensate analysis. An example pair of images are included in the folder assets/example analysis images/. The following is a basic example of a `Condensate Analysis` with this data. For a more comprehensive walkthrough of this example, please see our expanded [tutorial](https://pycat-napari.readthedocs.io/en/latest/usage/tutorials/nuclear_condensate_analysis_gui_tutorial.html) in our full [API Documentation](https://pycat-napari.readthedocs.io/en/latest/)

**Load Data**

   Open/Save File(s)
   - Click `Open/Save File(s) > Open 2D Image(s)`
      - Note: you must use this and not the integrated Napari IO under the typical file open file save or the integrated drag and drop feature since they are not integrated with PyCATs internal data structure. 
      - Supported formats: TIFF, CZI, PNG, JPG
   - Multiple files can be loaded simultaneously, multi-channel images or multiple selected files will be added the the viewer as separate layers
   - Assign names to each channel in a dialog box for easier layer tracking
   - In addition to the images, 2 shapes layers will be added for measuring object sizes

![PyCAT main interface with image loaded](./assets/screenshots/opened_image_in_viewer.png)

**View, Process, and analyze images** 

1. **Draw Measurement Lines**
   - Draw lines across characteristic objects on the shapes layers:
     - **Cell Diameter**: For cell or nuclei diameters (or if in-vitro ~size of background features)
     - **Object Diameter**: For condensate or subcellular object diameters
   - Click "Measure Lines" to calculate diameters in both pixels and microns (if metadata is available).

![PyCAT object measurement layers](./assets/screenshots/measuring_lines.png)

   **Upscale Images (Optional)**
   - If you are upscaling your images, you can multi-select the layers in the viewer and then click `Run Upscaling` button
      - Upscaling can be useful for segmentation and pre-processing algorithms, however, it can also introduce noise artifcats, and should be considered appropriately and applied consistently. 

2. **Preprocess Images**
- Preprocessing operates on the active image layer (blue highlighted layer in layers panel on the left side)
   - In the example, we do this on the GFP image
   - Preprocessing steps include:
     - White top-hat filtering
     - Laplacian of Gaussian enhancement
     - Wavelet-based noise reduction
     - Gaussian smoothing
     - Contrast-limited adaptive histogram equalization (CLAHE)

4. **Background Removal**
- Background removal operates on the active image layer (blue highlighted layer in layers panel on the left side)
- In the example, we do this on the GFP image
   - Background removal consists of:
     - Rolling ball background removal
     - Gaussian background subtraction and division
     - Gabor filtering

![PyCAT preprocessed and bacground removed image](./assets/screenshots/preprocessed_images.png)

5. **Primary Mask Generation**
   - Use Cellpose or Random Forest for cell/nuclei segmentation:
     - Select the primary object image (DAPI, Hoechst, etc.) for segmentation in the respective dropdown.
     - Click `Run Cellpose`
     - See full walkthrough for example of RF classifier

6. **Cell/Nuclei Analysis**
   - Measure various properties of the primary object mask
      - In the example, we do this on the GFP image (we always measure off of the unaltered image or in the case of this example the unaltered, upscaled, image)
   - **Optional Mask to exclude**
      - Create a blank labels layer to mark structures to omit (e.g., nucleoli, cytoplasm, etc.).
   - Select the primary mask, objects to omit (optionally), and the image to measure on.
   - Click "Run Cell Analyzer."

![PyCAT cell segmentation and analysis](./assets/screenshots/cell_analyzer.png)

7. **Condensate Segmentation**
   - Choose the most processed image for segmentation and the unaltered image (in this examplke, the upscaled gfp image) to measure from, in the respective dropdowns
   - Click `Run Condensate Segmentation`
   - Two masks are generated:
     - **Total Puncta Mask**: Over-segmented, unfiltered result.
     - **Total Refined Puncta Mask**: Object-filtered for balanced accuracy.

8. **Condensate Analysis**
   - Choose a mask and make any final manual tweaks.
   - Select the measurement image (in this examplke, the upscaled gfp image) and click `Run Condensate Analyzer`
   - Outputs include:
     - **Cell Data Frame**: Individual cell/nuclei/primary mask metrics
     - **Puncta Data Frame**: Metrics for individual condensates or subcellular objects
   - Visualization layers:
     - Labeled puncta mask for each cell (where the objects share the same label as their parent cell)
     - Side-by-side image with raw and segmentation overlay for domstrative purposes

![PyCAT condensate segmentation](./assets/screenshots/condensate_segmentation.png)


**Exporting Data**

   Save Results and Clear the Viewer
   - To export analyzed images, data, and masks, navigate to `Open/Save File(s) > Save and Clear`
   - Select from all active layers, and internal dataframes to export:
     - Images as .tiff
     - Masks as .png
     - Data Frames (cell and/or puncta) as .csv
   - Choose between `Clear Only Saved` or `Clear All` to reset PyCAT for the next analysis.

![PyCAT condensate segmentation](./assets/screenshots/save_and_clear_popup.png)



### Programmatic API

For automated analysis or integration into existing workflows:

```python
# Launch the GUI programmatically
from pycat import run_pycat_func
run_pycat_func()

# or 

# Use processing tools programmatically
import numpy as np
from pycat.toolbox.image_processing_tools import apply_rescale_intensity

# Load your image (using your preferred method)
image = np.array([...])  # Your image data

# Process the image
# Rescale intensity to full range of image's data type
processed_image = apply_rescale_intensity(image)

# Or specify custom intensity range
processed_image = apply_rescale_intensity(
    image,
    out_min=0,      # Minimum intensity value
    out_max=65535   # Maximum intensity value (e.g., for 16-bit image)
)
```

> 💡 **Tip**: PyCAT is designed primarily as a low/no-code solution for image analysis, making the GUI the recommended interface for most users. While the API offers modular access to core functions, it hasn't been extensively tested, so users should proceed with caution when integrating it into programmatic workflows. Running the PyCAT GUI should not be done in jupyter notebooks as there are PyQT and UI related issues that can cause downstream bugs. 


## Documentation

For more detailed and comprehehnsive documentation on everything from installation, to contributing, to our API documentation, see our full [Read the Docs Documentation](https://pycat-napari.readthedocs.io/en/latest/).

Current documentation includes:
- Installation Guide
- Usage Guide 
   - Full tutorial for the included analysis walkthrough
- Full feature descriptions 
- API reference 
- Development Guide
   - Contributing Guide
   - Support Information
   - Roadmap/Future Improvement plans 

## Notebooks

The notebooks included are examples of how to read, combine, and compare data output by PyCAT. They are for coding and methodology examples and are not as structured, documented, or tested as the main PyCAT application, but we thought they would be more useful than not.

### Analysis Examples
- **pycat_plotting.ipynb**
  - Loading and combining of output dataframes from multiple subfolders
  - Generate scatter plots for multiple datasets
  - Estimate saturation concentrations (C-sat) by boud, constrained, fitting of a generalized ReLU function parameterized by the x_0 intercept
  - Add interactive data cursors identifying plot points to files and cells
  - Create plots with customizable parameters

### Data Processing
- **int_truncated_dfs.ipynb**
  - Filter datasets by intensity ranges
  - Process cell and puncta dataframes
  - Combine CSV files from multiple directories
  - Generate truncated datasets based on custom parameters
  - Export filtered results for further analysis

### Synthetic Data Generation Notebook
- **Synthetic Data Generation NB.ipynb**
  - Load cell mask
  - Generate a ground truth object mask 
  - Generate a Perlin noise, background flourescence image
  - Apply the cell mask to the noise and object mask
  - Combine the background and objects where object intensity is determined by object size and local background intensity

## Development

### Setting Up Development Environment

1. Clone the repository:
```bash
git clone https://github.com/BanerjeeLab-repertoire/pycat-napari.git
cd pycat-napari
```

2. Create development environment:
```bash
# Windows
mamba env create -f pycat-devbio-napari-env-x86-windows.yml

# Mac M1/ARM
mamba env create -f pycat-devbio-napari-env-arm-mac.yml

mamba activate pycat-napari-env
```

3. Install development dependencies:
```bash
pip install -e ".[dev]"
```

### Running Tests
```bash
# Install test dependencies
pip install -e ".[test]"

# Run tests with coverage
pytest --cov=pycat_napari tests/
```

## Contributing

We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

Key areas for contribution:
- Bug fixes and feature improvements
- Documentation and examples
- Test coverage expansion
- Platform compatibility testing

## License

PyCAT-Napari is licensed under the BSD 3-Clause License. See [LICENSE](LICENSE) for details.

### Third-Party Libraries
See [THIRD_PARTY_LICENSES.txt](THIRD_PARTY_LICENSES.txt) for details about dependencies.

## Citation

If you use PyCAT-Napari in your research, please cite:

```bibtex
@software{neureuter2024pycat,
  author = {Neureuter, Christian},
  title = {PyCAT-Napari: Python Condensate Analysis Toolbox},
  year = {2024},
  publisher = {GitHub},
  url = {https://github.com/BanerjeeLab-repertoire/pycat-napari}
}
```

## Support & Troubleshooting

### Common Issues

1. **Installation Problems**
   - Verify Python 3.9 installation
   - Check platform-specific requirements
   - Use provided environment files

2. **GUI Issues**
   - Check PyQt5 installation
   - Update graphics drivers
   - Verify you're not running the program from jupyter notebook

3. **Analysis Errors**
   - Confirm input file format
   - Check memory availability
   - View traceback in napari or check your terminal for console errors

4. **Performance Issues**
   - Slow processing, or spinnning wheel in Windows/Mac is normal for condensate segmentation
      - Unfortunately, PyCAT 1.0 was not able to have much performance optimization due to timeline constraints of the project
   - Check the terminal for the progress printouts of the analysis

If the above suggestions did not help, you can use the info below to open an issue or contact the maintainers. Modern AIs (ChatGPT, Claude, etc) are very good at troubleshooting installtion issues and error messages, and may be your best option for a fast solution to any non-critical issues. 


### Getting Help

- Search [existing issues](https://github.com/BanerjeeLab-repertoire/pycat-napari/issues)
- Open a [new issue](https://github.com/BanerjeeLab-repertoire/pycat-napari/issues/new)
- Contact us at [banerjeelab.org](banerjeelab.org)

## Project Status & Roadmap

Current Version: 1.0.0

### Recent Updates
See [CHANGELOG.md](CHANGELOG.md) for detailed version history.

### Roadmap
- Extended file format support (including migration to BioIO) and integration with native napari IO
- GPU acceleration/parallelization, and multi-threading, e.g. performance optimizations
- 3D, Z-stack, time series support
- Expanded analysis methods and more individual tools
- ML classifiers and segmentation models trained on annotated data output by PyCAT 
- See our full [Roadmap Page](https://pycat-napari.readthedocs.io/en/latest/development/roadmap.html) for more detailed information and wish list

## Acknowledgments

This project was developed by Christian Neureuter in the Condensate Biophysics Lab (Banerjee Lab) at SUNY Buffalo.

### Key Dependencies
- [napari](https://napari.org/) - Image visualization
- [scikit-image](https://scikit-image.org/) - Image processing
- [numpy](https://numpy.org/) - Numerical computing
- [pandas](https://pandas.pydata.org/) - Data analysis

### Special Thanks
- Banerjee Lab members for testing and feedback
- napari community for viewer framework
- Open source community for supporting libraries

For additional details, troubleshooting, and advanced features, see our [full documentation](https://pycat-napari.readthedocs.io/en/latest/).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pycat-napari",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "==3.9.*",
    "maintainer_email": null,
    "keywords": "bio-image, condensate, fluorescence, image analysis, microscopy, napari, pycat, scientific",
    "author": null,
    "author_email": "Christian Neureuter <cneureut@buffalo.edu>",
    "download_url": "https://files.pythonhosted.org/packages/7e/a4/e2de482815e0eaf9e330430d46580483054f0002f4630111d93e90aad2ee/pycat_napari-1.0.0.tar.gz",
    "platform": null,
    "description": "# PyCAT-Napari\n![License](https://img.shields.io/github/license/BanerjeeLab-repertoire/pycat-napari)\n![PyPI](https://img.shields.io/pypi/v/pycat-napari)\n![Python Version](https://img.shields.io/pypi/pyversions/pycat-napari)\n![Downloads](https://img.shields.io/pypi/dm/pycat-napari)\n![GitHub Stars](https://img.shields.io/github/stars/BanerjeeLab-repertoire/pycat-napari)\n![GitHub Forks](https://img.shields.io/github/forks/BanerjeeLab-repertoire/pycat-napari)\n\n![PyCAT Logo](src/pycat/icons/pycat_logo_512.png)\n\nPyCAT (Python Condensate Analysis Toolbox) is an open-source application built on [napari](https://napari.org/) for analyzing biomolecular condensates in biological images. It provides a comprehensive suite of tools for fluorescence image analysis, particularly focused on condensate detection, measurement, and characterization. PyCAT aims to provide a low/no-code solution, accessible to researchers with varying levels of programming experience.\n\n## Table of Contents\n\n- [Features](#features)\n- [System Requirements](#system-requirements)\n- [Getting Started](#getting-started)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Documentation](#documentation)\n- [Notebooks](#notebooks)\n- [Development](#development)\n- [Contributing](#contributing)\n- [License](#license)\n- [Citation](#citation)\n- [Support & Troubleshooting](#support--troubleshooting)\n- [Project Status & Roadmap](#project-status--roadmap)\n- [Acknowledgments](#acknowledgments)\n\n## Features\n\nPyCAT-Napari provides a comprehensive suite of tools for biological image analysis, with a focus on in-cellulo and per-cell analyses.\n\n| Category                     | Capabilities                                                                                              |\n|------------------------------|----------------------------------------------------------------------------------------------------------|\n| **Image Processing and Segmentation** | - Versatile toolbox with common image processing and analysis functions.<br>- Specialized condensate segmentation and object filtering algorithms.<br>- Optimized for in-cellulo analysis in challenging biological datasets. |\n| **Quantitative Region Analysis**      | - Simple and intuitive layer and ROI mask design.<br>- Extensive ROI feature analysis, including area, intensity, shape, texture, and more.<br>- Advanced colocalization analysis:<br>&nbsp;&nbsp;&nbsp;- Object-based metrics: Jaccard Index, Dice Coefficient, Mander\u2019s coefficients, and distance analysis.<br>&nbsp;&nbsp;&nbsp;- Pixel-wise metrics: Pearson\u2019s R, Spearman\u2019s R, Li\u2019s ICQ, and more.<br>&nbsp;&nbsp;&nbsp;- Modified Costes analysis: Automated thresholds and statistical significance testing.<br>- Correlation function analysis: Auto- and cross-correlation functions with Gaussian fitting. |\n| **Integrated Analysis Pipelines**     | - **Condensate Analysis Pipeline**: Tailored for in-cellulo biomolecular condensates.<br>- **Colocalization Analysis Pipeline**: Combines object-based and pixel-wise methods for robust colocalization studies.<br>- **General ROI Analysis Pipeline**: Flexible pipeline for exploratory measurements.<br>- **Fibril Analysis Pipeline**: Specialized for analyzing beta-amyloid fibers and fibril structures. |\n\n\n## System Requirements\n\n### Compatibility Matrix\n\n| Platform      | Python | Status    | Notes                    |\n|--------------|---------|-----------|--------------------------|\n| Windows 10/11 | 3.9     | Tested    | Logo display issue      |\n| Mac M1/ARM   | 3.9     | Tested    | Requires specific torch |\n| Mac Intel    | 3.9     | Untested* | Should work            |\n| Linux        | 3.9     | Untested* | Should work            |\n\n*While untested, these platforms should work with standard installation.\n\n### Minimum Requirements\n- **Python Version**: 3.9.x (Required)\n  > \u26a0\ufe0f **Important**: PyCAT-Napari is currently only compatible with Python 3.9. Other versions are not supported in this release. Future releases may aim to expand to more versions. \n- RAM: 8GB (16GB recommended)\n- Disk Space: ~100MB (including dependencies)\n- GPU: Not required (CPU-only processing)\n\n## Getting Started\n\nPyCAT requires Python 3.9 and a package/environment manager. We recommend using Mambaforge/Miniforge for package and environment management, but we include instructions for alternative methods.  Before installing PyCAT-Napari, follow this quick assessment to determine your setup needs:\n\n### Initial Setup Check\n\n#### 1. Do you have Python installed?\n\nCheck Python Installation\n\nRun this command in your terminal (mac)/command prompt (anaconda prompt)/powershell(windows):\n```bash\npython --version\n```\n\nIf you get a version number: \u2705 You have Python installed\n\nIf you get an error: \u274c See [Python and Package Manager Installation Guide](https://pycat-napari.readthedocs.io/en/latest/installation.html#python-and-package-manager-installation) \n\n#### 2. Do you have Conda or Mamba installed?\n\nCheck Your Environment Manager\n\n```bash\nconda --version\n# or\nmamba --version\n```\n\nIf you get a version number: \u2705 You have conda/mamba installed \n\nIf you get an error: \u274c See [Python and Package Manager Installation Guide](https://pycat-napari.readthedocs.io/en/latest/installation.html#python-and-package-manager-installation) \n\n#### 3. Are you familiar with Python environments?\n\nIf yes: \u2705 Proceed to [Installation](#installation)\n\nIf no: \u274c Read our quick environment guide below\n\n**Python Package and Environments Info**\n\nThink of environments like separate containers for different projects - they help avoid conflicts and keep things organized. Don't worry, they're simpler than they sound!\n\nPython environments help you:\n- Keep projects separate\n- Avoid version conflicts\n- Ensure reproducibility\n\nPackage Manager Choice\n> \ud83d\udca1 **Why Miniforge?**  \n> Miniforge is a lightweight distribution of Conda, offering faster package installation and fewer pre-installed packages Mambaforge is being deprecated in favor of Miniforge. \n> **Key Advantages:**  \n> - Quicker dependency resolution  \n> - Minimal initial install (no unnecessary extras)  \n> - Fully compatible with conda commands (just use `mamba` in place of `conda`)\n\nAlready have Anaconda? That's fine! You can skip the Miniforge installation and use your existing setup.\n\nBasic environment commands:\n```bash\n# Create new environment with Python 3.9\nmamba create -n pycat-env python=3.9\n\n# Activate the environment\nmamba activate pycat-env\n\n# Verify you're in the right environment\npython --version  # Should show Python 3.9.x\n```\n\n## Installation\n\n### Basic Installation\n\nCreate and activate a new environment:\n```bash\n# Create environment\nmamba create -n pycat-env python=3.9\n\n# Activate environment\nmamba activate pycat-env\n```\n\n#### Windows\n```bash\npip install pycat-napari\n```\nNote: On Windows, due to some platform-specific rendering quirks, the application logo may not display correctly. This is purely cosmetic and does not affect functionality.\n\n#### Mac M1/ARM\n```bash\npip install \"pycat-napari[arm-mac]\"\n```\n\n### Optional Features\n\nYou can install PyCAT with additional tools, features, and packages. For example, dev, test, and doc tools. The devbio-napari package adds numerous additional image analysis tools. Learn more at [devbio-napari documentation](https://github.com/haesleinhuepf/devbio-napari).\n\n```bash\n# Development tools\npip install \"pycat-napari[dev]\"\n\n# Additional bio-image analysis tools (recommended)\npip install \"pycat-napari[devbio-napari]\"\n```\n> \ud83d\udca1 **Tip**: You can designate multiple optional dependencies by separating them with a comma\n   ```bash\n   # Install dev tools on an ARM Mac\n   pip install \"pycat-napari[arm-mac, dev]\"\n   ```\n\n\n### Alternative Installation Methods\n\nIf you encounter issues with the standard installation, use our tested environment files located in the config/ folder. We provide complete environment files that match our development package setup (no dev tools installed though, please install those separately if youre trying to install a dev version for a fork or pull request) to provide you with the same environment we developed and ran in. To use these environment files, just download the yaml file from the config folder on the github repo, then cd to the location of the downloaded file in your terminal, then run:\n\n```bash\n# Windows\nmamba env create -f pycat-devbio-napari-env-x86-windows.yml\n\n# Mac M1/ARM\nmamba env create -f pycat-devbio-napari-env-arm-mac.yml\n```\n\n### Verifying Installation & Optional Testing \n\nAfter installation, verify PyCAT-Napari is working correctly:\n\n#### 1. Basic Checks\n```bash\n# Activate your environment\nmamba activate pycat-env\n\n# Verify Python version\npython --version  # Should show 3.9.x\n\n# Test basic import\npython -c \"import pycat; print('PyCAT import successful!')\"\n\n# Launch GUI (basic smoke test)\nrun-pycat  # Should open the GUI window\n```\n\nIf you encounter any failures, check:\n\n1. Python version (must be 3.9.x)\n2. Environment activation\n3. Complete installation of dependencies\n4. [Troubleshooting Tips](#support--troubleshooting)\n5. Check the issues \n\nStill having problems installing or running the program? Open a github issue. If you need urgent help, reach out to us and we will try to get back to you as soon as possible. \n\n## Usage\n\nPyCAT-Napari offers two ways to analyze your data: through a user-friendly GUI or programmatically via Python code. PyCAT was developed as a low/no-code solution to image analysis so usage of the GUI is recommedned. API usage has not been thoroughly tested however many core functions are modular and should work via API. \n\n### GUI Application\n\n![PyCAT main interface with key areas labeled](./assets/screenshots/Viewer_and_menu_highlights.png)\n\nLaunch PyCAT's graphical interface with:\n```bash\nrun-pycat\n```\n\nA blank Napari viewer with added menu items on the right will open up for you. In the image above the added menus have been expanded and color coded.\n- \ud83d\udfe6 **Analysis Methods** - provides pre-made pipelines offering tools and outputs depending on the given method that you choose.\n- \ud83d\udfe9 **Toolbox** - is a menu full of all of the individual functions and tools in PyCAT, for novel algorithm experimentation and analysis workflow customization.\n- \ud83d\udfe5 **Open/Save File(s)** - handles image and data input/output for PyCAT, using AICSImageIO to read various microscope and metadata formats, and storing the information in PyCAT\u2019s internal data structure.\n   - Note: you must use this and not the integrated Napari IO under the typical file open file save or the integrated drag and drop feature since they are not integrated with PyCATs internal data structure. \n\nPyCAT-Napari integrates seamlessly with the Napari interface, providing users with a powerful and intuitive environment for image analysis. Napari's interface is designed to be user-friendly, resembling popular pixel or raster photo editors like MSPaint or Photoshop. So, if you've ever used a photo editor, the tools should be simple enough to acclimate to. \n\n- \ud83d\udfe8 **Layer Tools** - where users can easily add or remove various layers such as images, shapes, and labels from the viewer. This feature allows for quick management of the visual elements, including the ability to hide or show layers using the eye icon.\n- \ud83d\udfea **Shape and Label Tools** - which include node tools for manipulating shape layers, as well as paint brush, eraser, and bucket tools for label layers. Users can also apply colormaps to images and change opacity to view overlapping images. \n\n\n\n\n\n\n#### Basic GUI Workflow \n\nOnce you have the application open, choose your analysis method from the menu. This populates the dock with a pre-made analysis pipeline, even if you're doing your own algorithmic exploration, it is recomended to use `General Analysis` for more robust integration with the internal PyCAT data strcutre. \n\nPyCAT excels at in-cellulo nuclear condensate analysis. An example pair of images are included in the folder assets/example analysis images/. The following is a basic example of a `Condensate Analysis` with this data. For a more comprehensive walkthrough of this example, please see our expanded [tutorial](https://pycat-napari.readthedocs.io/en/latest/usage/tutorials/nuclear_condensate_analysis_gui_tutorial.html) in our full [API Documentation](https://pycat-napari.readthedocs.io/en/latest/)\n\n**Load Data**\n\n   Open/Save File(s)\n   - Click `Open/Save File(s) > Open 2D Image(s)`\n      - Note: you must use this and not the integrated Napari IO under the typical file open file save or the integrated drag and drop feature since they are not integrated with PyCATs internal data structure. \n      - Supported formats: TIFF, CZI, PNG, JPG\n   - Multiple files can be loaded simultaneously, multi-channel images or multiple selected files will be added the the viewer as separate layers\n   - Assign names to each channel in a dialog box for easier layer tracking\n   - In addition to the images, 2 shapes layers will be added for measuring object sizes\n\n![PyCAT main interface with image loaded](./assets/screenshots/opened_image_in_viewer.png)\n\n**View, Process, and analyze images** \n\n1. **Draw Measurement Lines**\n   - Draw lines across characteristic objects on the shapes layers:\n     - **Cell Diameter**: For cell or nuclei diameters (or if in-vitro ~size of background features)\n     - **Object Diameter**: For condensate or subcellular object diameters\n   - Click \"Measure Lines\" to calculate diameters in both pixels and microns (if metadata is available).\n\n![PyCAT object measurement layers](./assets/screenshots/measuring_lines.png)\n\n   **Upscale Images (Optional)**\n   - If you are upscaling your images, you can multi-select the layers in the viewer and then click `Run Upscaling` button\n      - Upscaling can be useful for segmentation and pre-processing algorithms, however, it can also introduce noise artifcats, and should be considered appropriately and applied consistently. \n\n2. **Preprocess Images**\n- Preprocessing operates on the active image layer (blue highlighted layer in layers panel on the left side)\n   - In the example, we do this on the GFP image\n   - Preprocessing steps include:\n     - White top-hat filtering\n     - Laplacian of Gaussian enhancement\n     - Wavelet-based noise reduction\n     - Gaussian smoothing\n     - Contrast-limited adaptive histogram equalization (CLAHE)\n\n4. **Background Removal**\n- Background removal operates on the active image layer (blue highlighted layer in layers panel on the left side)\n- In the example, we do this on the GFP image\n   - Background removal consists of:\n     - Rolling ball background removal\n     - Gaussian background subtraction and division\n     - Gabor filtering\n\n![PyCAT preprocessed and bacground removed image](./assets/screenshots/preprocessed_images.png)\n\n5. **Primary Mask Generation**\n   - Use Cellpose or Random Forest for cell/nuclei segmentation:\n     - Select the primary object image (DAPI, Hoechst, etc.) for segmentation in the respective dropdown.\n     - Click `Run Cellpose`\n     - See full walkthrough for example of RF classifier\n\n6. **Cell/Nuclei Analysis**\n   - Measure various properties of the primary object mask\n      - In the example, we do this on the GFP image (we always measure off of the unaltered image or in the case of this example the unaltered, upscaled, image)\n   - **Optional Mask to exclude**\n      - Create a blank labels layer to mark structures to omit (e.g., nucleoli, cytoplasm, etc.).\n   - Select the primary mask, objects to omit (optionally), and the image to measure on.\n   - Click \"Run Cell Analyzer.\"\n\n![PyCAT cell segmentation and analysis](./assets/screenshots/cell_analyzer.png)\n\n7. **Condensate Segmentation**\n   - Choose the most processed image for segmentation and the unaltered image (in this examplke, the upscaled gfp image) to measure from, in the respective dropdowns\n   - Click `Run Condensate Segmentation`\n   - Two masks are generated:\n     - **Total Puncta Mask**: Over-segmented, unfiltered result.\n     - **Total Refined Puncta Mask**: Object-filtered for balanced accuracy.\n\n8. **Condensate Analysis**\n   - Choose a mask and make any final manual tweaks.\n   - Select the measurement image (in this examplke, the upscaled gfp image) and click `Run Condensate Analyzer`\n   - Outputs include:\n     - **Cell Data Frame**: Individual cell/nuclei/primary mask metrics\n     - **Puncta Data Frame**: Metrics for individual condensates or subcellular objects\n   - Visualization layers:\n     - Labeled puncta mask for each cell (where the objects share the same label as their parent cell)\n     - Side-by-side image with raw and segmentation overlay for domstrative purposes\n\n![PyCAT condensate segmentation](./assets/screenshots/condensate_segmentation.png)\n\n\n**Exporting Data**\n\n   Save Results and Clear the Viewer\n   - To export analyzed images, data, and masks, navigate to `Open/Save File(s) > Save and Clear`\n   - Select from all active layers, and internal dataframes to export:\n     - Images as .tiff\n     - Masks as .png\n     - Data Frames (cell and/or puncta) as .csv\n   - Choose between `Clear Only Saved` or `Clear All` to reset PyCAT for the next analysis.\n\n![PyCAT condensate segmentation](./assets/screenshots/save_and_clear_popup.png)\n\n\n\n### Programmatic API\n\nFor automated analysis or integration into existing workflows:\n\n```python\n# Launch the GUI programmatically\nfrom pycat import run_pycat_func\nrun_pycat_func()\n\n# or \n\n# Use processing tools programmatically\nimport numpy as np\nfrom pycat.toolbox.image_processing_tools import apply_rescale_intensity\n\n# Load your image (using your preferred method)\nimage = np.array([...])  # Your image data\n\n# Process the image\n# Rescale intensity to full range of image's data type\nprocessed_image = apply_rescale_intensity(image)\n\n# Or specify custom intensity range\nprocessed_image = apply_rescale_intensity(\n    image,\n    out_min=0,      # Minimum intensity value\n    out_max=65535   # Maximum intensity value (e.g., for 16-bit image)\n)\n```\n\n> \ud83d\udca1 **Tip**: PyCAT is designed primarily as a low/no-code solution for image analysis, making the GUI the recommended interface for most users. While the API offers modular access to core functions, it hasn't been extensively tested, so users should proceed with caution when integrating it into programmatic workflows. Running the PyCAT GUI should not be done in jupyter notebooks as there are PyQT and UI related issues that can cause downstream bugs. \n\n\n## Documentation\n\nFor more detailed and comprehehnsive documentation on everything from installation, to contributing, to our API documentation, see our full [Read the Docs Documentation](https://pycat-napari.readthedocs.io/en/latest/).\n\nCurrent documentation includes:\n- Installation Guide\n- Usage Guide \n   - Full tutorial for the included analysis walkthrough\n- Full feature descriptions \n- API reference \n- Development Guide\n   - Contributing Guide\n   - Support Information\n   - Roadmap/Future Improvement plans \n\n## Notebooks\n\nThe notebooks included are examples of how to read, combine, and compare data output by PyCAT. They are for coding and methodology examples and are not as structured, documented, or tested as the main PyCAT application, but we thought they would be more useful than not.\n\n### Analysis Examples\n- **pycat_plotting.ipynb**\n  - Loading and combining of output dataframes from multiple subfolders\n  - Generate scatter plots for multiple datasets\n  - Estimate saturation concentrations (C-sat) by boud, constrained, fitting of a generalized ReLU function parameterized by the x_0 intercept\n  - Add interactive data cursors identifying plot points to files and cells\n  - Create plots with customizable parameters\n\n### Data Processing\n- **int_truncated_dfs.ipynb**\n  - Filter datasets by intensity ranges\n  - Process cell and puncta dataframes\n  - Combine CSV files from multiple directories\n  - Generate truncated datasets based on custom parameters\n  - Export filtered results for further analysis\n\n### Synthetic Data Generation Notebook\n- **Synthetic Data Generation NB.ipynb**\n  - Load cell mask\n  - Generate a ground truth object mask \n  - Generate a Perlin noise, background flourescence image\n  - Apply the cell mask to the noise and object mask\n  - Combine the background and objects where object intensity is determined by object size and local background intensity\n\n## Development\n\n### Setting Up Development Environment\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/BanerjeeLab-repertoire/pycat-napari.git\ncd pycat-napari\n```\n\n2. Create development environment:\n```bash\n# Windows\nmamba env create -f pycat-devbio-napari-env-x86-windows.yml\n\n# Mac M1/ARM\nmamba env create -f pycat-devbio-napari-env-arm-mac.yml\n\nmamba activate pycat-napari-env\n```\n\n3. Install development dependencies:\n```bash\npip install -e \".[dev]\"\n```\n\n### Running Tests\n```bash\n# Install test dependencies\npip install -e \".[test]\"\n\n# Run tests with coverage\npytest --cov=pycat_napari tests/\n```\n\n## Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\nKey areas for contribution:\n- Bug fixes and feature improvements\n- Documentation and examples\n- Test coverage expansion\n- Platform compatibility testing\n\n## License\n\nPyCAT-Napari is licensed under the BSD 3-Clause License. See [LICENSE](LICENSE) for details.\n\n### Third-Party Libraries\nSee [THIRD_PARTY_LICENSES.txt](THIRD_PARTY_LICENSES.txt) for details about dependencies.\n\n## Citation\n\nIf you use PyCAT-Napari in your research, please cite:\n\n```bibtex\n@software{neureuter2024pycat,\n  author = {Neureuter, Christian},\n  title = {PyCAT-Napari: Python Condensate Analysis Toolbox},\n  year = {2024},\n  publisher = {GitHub},\n  url = {https://github.com/BanerjeeLab-repertoire/pycat-napari}\n}\n```\n\n## Support & Troubleshooting\n\n### Common Issues\n\n1. **Installation Problems**\n   - Verify Python 3.9 installation\n   - Check platform-specific requirements\n   - Use provided environment files\n\n2. **GUI Issues**\n   - Check PyQt5 installation\n   - Update graphics drivers\n   - Verify you're not running the program from jupyter notebook\n\n3. **Analysis Errors**\n   - Confirm input file format\n   - Check memory availability\n   - View traceback in napari or check your terminal for console errors\n\n4. **Performance Issues**\n   - Slow processing, or spinnning wheel in Windows/Mac is normal for condensate segmentation\n      - Unfortunately, PyCAT 1.0 was not able to have much performance optimization due to timeline constraints of the project\n   - Check the terminal for the progress printouts of the analysis\n\nIf the above suggestions did not help, you can use the info below to open an issue or contact the maintainers. Modern AIs (ChatGPT, Claude, etc) are very good at troubleshooting installtion issues and error messages, and may be your best option for a fast solution to any non-critical issues. \n\n\n### Getting Help\n\n- Search [existing issues](https://github.com/BanerjeeLab-repertoire/pycat-napari/issues)\n- Open a [new issue](https://github.com/BanerjeeLab-repertoire/pycat-napari/issues/new)\n- Contact us at [banerjeelab.org](banerjeelab.org)\n\n## Project Status & Roadmap\n\nCurrent Version: 1.0.0\n\n### Recent Updates\nSee [CHANGELOG.md](CHANGELOG.md) for detailed version history.\n\n### Roadmap\n- Extended file format support (including migration to BioIO) and integration with native napari IO\n- GPU acceleration/parallelization, and multi-threading, e.g. performance optimizations\n- 3D, Z-stack, time series support\n- Expanded analysis methods and more individual tools\n- ML classifiers and segmentation models trained on annotated data output by PyCAT \n- See our full [Roadmap Page](https://pycat-napari.readthedocs.io/en/latest/development/roadmap.html) for more detailed information and wish list\n\n## Acknowledgments\n\nThis project was developed by Christian Neureuter in the Condensate Biophysics Lab (Banerjee Lab) at SUNY Buffalo.\n\n### Key Dependencies\n- [napari](https://napari.org/) - Image visualization\n- [scikit-image](https://scikit-image.org/) - Image processing\n- [numpy](https://numpy.org/) - Numerical computing\n- [pandas](https://pandas.pydata.org/) - Data analysis\n\n### Special Thanks\n- Banerjee Lab members for testing and feedback\n- napari community for viewer framework\n- Open source community for supporting libraries\n\nFor additional details, troubleshooting, and advanced features, see our [full documentation](https://pycat-napari.readthedocs.io/en/latest/).\n",
    "bugtrack_url": null,
    "license": "License -------  BSD 3-Clause License  Copyright (c) 2024, Christian Neureuter, Banerjee Lab, State University of New York at Buffalo All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the University at Buffalo, the author, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   Third-Party Software Notice --------------------------- This project includes third-party software components licensed under various open-source licenses. For more information regarding these licenses, please refer to the THIRD_PARTY_LICENSES.txt file located in the root directory of this project.",
    "summary": "Python Condensate Analysis Toolbox - A napari-based tool for biomolecular condensate analysis",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/BanerjeeLab-repertoire/pycat-napari",
        "Issues": "https://github.com/BanerjeeLab-repertoire/pycat-napari/issues",
        "Repository": "https://github.com/BanerjeeLab-repertoire/pycat-napari"
    },
    "split_keywords": [
        "bio-image",
        " condensate",
        " fluorescence",
        " image analysis",
        " microscopy",
        " napari",
        " pycat",
        " scientific"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13cfe81f28fcd909359adf09138a223d8bafbdf29ee33d39dbdbfdc90c4964e4",
                "md5": "cad4e097ddcff911e72119a782d9e9e4",
                "sha256": "9977dc676e24abbf936d637949d9d81a1042c0df43d7a427f3673d5e0d67fed2"
            },
            "downloads": -1,
            "filename": "pycat_napari-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cad4e097ddcff911e72119a782d9e9e4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "==3.9.*",
            "size": 1244798,
            "upload_time": "2024-12-19T20:01:27",
            "upload_time_iso_8601": "2024-12-19T20:01:27.304739Z",
            "url": "https://files.pythonhosted.org/packages/13/cf/e81f28fcd909359adf09138a223d8bafbdf29ee33d39dbdbfdc90c4964e4/pycat_napari-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7ea4e2de482815e0eaf9e330430d46580483054f0002f4630111d93e90aad2ee",
                "md5": "6a082457abfad71f9eac998a5641b090",
                "sha256": "8075d1568d4475349e814056c6a4f87d7997a3e07d48de01109f8dcd5cfd2ebb"
            },
            "downloads": -1,
            "filename": "pycat_napari-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6a082457abfad71f9eac998a5641b090",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "==3.9.*",
            "size": 34404910,
            "upload_time": "2024-12-19T20:01:56",
            "upload_time_iso_8601": "2024-12-19T20:01:56.988989Z",
            "url": "https://files.pythonhosted.org/packages/7e/a4/e2de482815e0eaf9e330430d46580483054f0002f4630111d93e90aad2ee/pycat_napari-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-19 20:01:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "BanerjeeLab-repertoire",
    "github_project": "pycat-napari",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pycat-napari"
}
        
Elapsed time: 0.40099s