Provides a robust particle tracking algorithm using the Linear Assignment Problem, with various cost functions for linking.
See the publication and associated repository for the algorithm and parameter optimization by Ray-Tune.
Python >= 3.10 is supported. The software is tested against Python 3.10-3.13 in Ubuntu, and 3.13 in MacOS and Windows environments, but the other combinations should also be fine. Please file an issue if you encounter any problem.
You can install LapTrack via pip from PyPI:
$ pip install laptrack
In Google Colaboratory, try
$ pip install --upgrade laptrack spacy flask matplotlib
to update the pre-installed packages.
Please see the Usage for details. The example notebooks are provided in docs/examples.
notebook name | short description | Google Colaboratory |
---|---|---|
api_example.ipynb | Introducing the package API by a simple example. | |
bright_spots.ipynb | Application example: detecting bright spots by scikit-image blob_log and tracking them. | |
cell_segmentation.ipynb | Application example: tracking centroids of the segmented C2C12 cells undergoing divisions. | |
napari_interactive_fix.ipynb | Illustrates the usage of the ground-truth-preserved tracking with napari. | |
overlap_tracking.ipynb | Illustrates the usage of the custom metric to use segmentation overlaps for tracking. |
The API reference covers the main classes and functions provided by LapTrack.
Contributions are very welcome. To learn more, see the Contributor Guide.
Distributed under the terms of the The 3-Clause BSD License, LapTrack is free and open source software.
If you encounter any problems, please file an issue along with a detailed description.
- This program implements a modified version of the algorithm in the K. Jaqaman et al. (2008).
- Inspired by TrackMate a lot. See documentation for its detailed algorithm, the 2016 paper, and the 2021 paper.
- The data in docs/examples/napari_interactive_fix_data are generated by cropping images in 10.5281/zenodo.6087728, which is distributed with Creative Commons Attribution 4.0 International.
- The data in docs/examples/cell_segmentation_data are generated by cropping and resizing images in https://osf.io/ysaq2/, which is distributed with Creative Commons Attribution 4.0 International. See 10.1038/sdata.2018.237 for details.
- The data in docs/examples/overlap_tracking_data is generated by cropping segmentation.npy in https://github.com/NoneqPhysLivingMatterLab/cell_interaction_gnn, which is distributed with Apache License 2.0. See the original paper for details.
- The data in docs/examples/3D_tracking_data is generated by resizing iamges in https://bbbc.broadinstitute.org/BBBC050 , which is distributed with Creative Commons Attribution 3.0 Unported License. See 10.1038/s41540-020-00152-8 for details.
- This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.
If you use this program for your research, please cite it and help us build more.
@article{fukai_2022, title = {{{LapTrack}}: Linear Assignment Particle Tracking with Tunable Metrics}, shorttitle = {{{LapTrack}}}, author = {Fukai, Yohsuke T and Kawaguchi, Kyogo}, year = {2022}, month = dec, journal = {Bioinformatics}, pages = {btac799}, issn = {1367-4803}, doi = {10.1093/bioinformatics/btac799}, } @misc{laptrack, author = {Yohsuke T. Fukai}, title = {laptrack}, year = {2021}, url = {https://doi.org/10.5281/zenodo.5519537}, }