Metadata-Version: 2.4
Name: napari-track-edit
Version: 1.0.0a2
Summary: Napari plugin for interactive tracks and segmentation annotation
Author-email: Caroline Malin-Mayor <malinmayorc@janelia.hhmi.org>
License: BSD 3-Clause License
Project-URL: Bug Tracker, https://github.com/live-image-tracking-tools/napari-track-edit/issues
Project-URL: Documentation, https://live-image-tracking-tools.github.io/napari-track-edit/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: napari
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: napari<0.10.0,>=0.7.1
Requires-Dist: funtracks<3,>=2.2.0
Requires-Dist: platformdirs<5,>=4
Requires-Dist: numpy<3,>=2
Requires-Dist: magicgui>=0.10.1
Requires-Dist: qtpy<3,>=2.4
Requires-Dist: scikit-image>=0.25
Requires-Dist: motile<2,>=1.0
Requires-Dist: pydantic<3,>=2
Requires-Dist: tifffile[all]>=2025.1.10
Requires-Dist: tqdm<5,>=4
Requires-Dist: dask[array]>=2021.10.0
Requires-Dist: fonticon-fontawesome6<7,>=6
Requires-Dist: pyqtgraph<1,>=0.13
Requires-Dist: fastplotlib<0.7,>=0.6.1
Requires-Dist: pygfx==0.15.3
Requires-Dist: wgpu<0.30,>=0.29
Requires-Dist: napari-orthogonal-views>=0.5.0
Requires-Dist: lxml_html_clean<1,>=0.4
Requires-Dist: zarr<4,>=2.18.7
Requires-Dist: blosc2<4.12,>=4.11
Requires-Dist: psygnal<0.16,>=0.15.1
Provides-Extra: numba
Requires-Dist: numba>=0.62.1; extra == "numba"
Provides-Extra: gurobi
Requires-Dist: gurobipy; extra == "gurobi"
Provides-Extra: gurobi12
Requires-Dist: gurobipy<13,>=12; extra == "gurobi12"
Provides-Extra: gurobi13
Requires-Dist: gurobipy<14,>=13; extra == "gurobi13"
Provides-Extra: all
Requires-Dist: pyqt6<7,>=6.7; extra == "all"
Dynamic: license-file

# Napari Track Edit

[![tests](https://github.com/live-image-tracking-tools/napari-track-edit/workflows/tests/badge.svg)](https://github.com/live-image-tracking-tools/napari-track-edit/actions)
[![codecov](https://codecov.io/gh/live-image-tracking-tools/napari-track-edit/branch/main/graph/badge.svg)](https://codecov.io/gh/live-image-tracking-tools/napari-track-edit)


An application for interactive tracking with [motile](https://github.com/funkelab/motile).
The full documentation of the plugin can be found [here](https://live-image-tracking-tools.github.io/napari-track-edit/).

Motile is a library that makes it easy to solve tracking problems using optimization
by framing the task as an Integer Linear Program (ILP).
See the motile [documentation](https://funkelab.github.io/motile)
for more details on the concepts and method.

----------------------------------

## Installation

Users can download and install an executable application from the github release, or
install from `pypi` in the environment of their choice (e.g. `venv`, `conda`) with the command
`pip install napari-track-edit`.
Currently, napari-track-edit requires python >=3.11.

### Recommended extras

For better performance, you can install optional extras:

- **numba**: Speeds up candidate graph construction significantly.
  ```bash
  pip install napari-track-edit[numba]
  ```

- **gurobi**: Uses the Gurobi solver instead of the default open-source solver. Gurobi is
  much faster but requires a license (free for academics).
  ```bash
  pip install napari-track-edit[gurobi]
  ```

You can install multiple extras at once: `pip install napari-track-edit[numba,gurobi]`

### Gurobi license version mismatch

If you have a Gurobi license and encounter an error about license version mismatch,
you may need to install a specific version of `gurobipy` that matches your license.
Use one of the version-specific extras:

```bash
pip install napari-track-edit[gurobi12]  # For Gurobi 12.x licenses
pip install napari-track-edit[gurobi13]  # For Gurobi 13.x licenses
```

Developers can clone the GitHub repository and then  use `uv` to install and run the code.
See the developer guide in `DEVELOPER.md` for more information.

## Usage

Start napari and call the main widget via Plugins > Napari Track Edit > Open all widgets.
2D+time and 3D+time sample data can be loaded via File > Open Sample > Napari Track Edit. You can
track objects in napari Labels or Points layers. For details, please read the
[documentation](https://live-image-tracking-tools.github.io/napari-track-edit/).

![napari_track_edit_quick_demo](https://github.com/user-attachments/assets/07a4a954-3d2d-4d67-8f75-aec11ee14697)

If you are new to using napari-track-edit, you can follow this [tutorial](./assets/napari-track-edit_tutorial.pdf) to learn the basics.

## Package the application into an executable and create the installer

Tagging any branch will automatically trigger the deploy.yml workflow,
which pushes the tagged version to PyPi and creates a github release; draft release if the tag contains "-dev", pre-release if the tag contains "-rc' or a full release otherwise. In case of a draft or pre release, when the user updates the release notes and promotes it to a published release, github will trigger `make_bundle_app.yml` workflow which will create the Linux, Mac and Windows installer and will upload them as release artifacts to github.

## Issues

If you encounter any problems, please
[file an issue](https://github.com/live-image-tracking-tools/napari-track-edit/issues)
along with a detailed description.
