Metadata-Version: 2.4
Name: pylorenzmie
Version: 1.1.0
Summary: Python tools for Lorenz-Mie holographic microscopy
Author-email: "David G. Grier" <david.grier@nyu.edu>
License: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/davidgrier/pylorenzmie
Project-URL: Repository, https://github.com/davidgrier/pylorenzmie
Project-URL: Documentation, https://pylorenzmie.readthedocs.io
Project-URL: Bug Tracker, https://github.com/davidgrier/pylorenzmie/issues
Keywords: holography,microscopy,Lorenz-Mie,light scattering,colloids,particle tracking,scientific
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas
Requires-Dist: opencv-python
Requires-Dist: pyqtgraph
Requires-Dist: trackpy
Provides-Extra: gpu
Requires-Dist: cupy-cuda12x; extra == "gpu"
Provides-Extra: numba
Requires-Dist: numba; extra == "numba"
Provides-Extra: torch
Requires-Dist: torch; extra == "torch"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: opencv-python; extra == "dev"
Provides-Extra: docs
Requires-Dist: pydata-sphinx-theme; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"

# pylorenzmie

[![PyPI version](https://img.shields.io/pypi/v/pylorenzmie)](https://pypi.org/project/pylorenzmie/)
[![Python versions](https://img.shields.io/pypi/pyversions/pylorenzmie)](https://pypi.org/project/pylorenzmie/)
[![License](https://img.shields.io/pypi/l/pylorenzmie)](https://www.gnu.org/licenses/gpl-3.0.html)
[![Documentation](https://readthedocs.org/projects/pylorenzmie/badge/?version=latest)](https://pylorenzmie.readthedocs.io)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.20784723.svg)](https://doi.org/10.5281/zenodo.20784723)
[![Tests](https://github.com/davidgrier/pylorenzmie/actions/workflows/test.yml/badge.svg)](https://github.com/davidgrier/pylorenzmie/actions/workflows/test.yml)

Python routines for tracking and characterizing colloidal particles
with in-line holographic video microscopy (HVM)

## Explanation of the module
`pylorenzmie` provides a set of python classes for interacting with and
analyzing holographic microscopy data. The hologram of a colloidal
particle encodes comprehensive information about the particle's size,
composition, and location in three dimensions. This package extracts
that information by fitting a recorded hologram to a generative model
based on the Lorenz-Mie theory of light scattering.

<img src="docs/tutorials/crop.png" alt="Typical Hologram"
width="200"/>

## Interactive particle tracking and characterization
`pylorenzmie` includes a GUI application called `LMTool.py`
for interacting with experimentally recorded holograms.

<img src="docs/lmtool/LMTool_ImageWidget.png" alt="LMTool image
screen" width="30%"/>
<img src="docs/lmtool/LMTool_ProfileWidget.png" alt="LMTool profile
screen" width="30%"/>
<img src="docs/lmtool/LMTool_FitWidget.png" alt="LMTool fit
screen" width="30%"/>

## Authors
David G. Grier (New York University), Lauren Altman, Fook Chiong Cheong,
Mark D. Hannel, Sanghyuk Lee, Michael O'Brien, Sarah Odeh, Kaitlynn Snyder,
Jackie Sustiel

## Licensing.
[GPLv3](https://www.gnu.org/licenses/gpl-3.0.html)

## References:
### Lorenz-Mie analysis of colloidal particles
1. S.-H. Lee, Y. Roichman, G.-R. Yi, S.-H. Kim, S.-M. Yang,
   A. van Blaaderen, P. van Oostrum and D. G. Grier,
   "Characterizing and tracking single colloidal particles with video
   holographic microscopy,"
   _Optics Express_ **15**, 18275-18282 (2007).
1. C. Martin, L. E. Altman, S. Rawat, A. Wang, D. G. Grier and V. N. Manoharan,
   "In-line holographic microscopy with model-based analysis,"
   _Nature Reviews Methods Primers_ **2**, 83 (2022).

### Lorenz-Mie theory of light scattering
1. C. F. Bohren and D. R. Huffman, Absorption and Scattering of Light
   by Small Particles (Wiley 1983).
1. M. I. Mishchenko, L. D. Travis and A. A. Lacis, Scattering
   Absorption and Emission of Light by Small Particles (Cambridge
   University Press, 2002).
1. G. Gouesbet and G. Gréhan, Generalized Lorenz-Mie Theories
   (Springer, 2011).

### Computational methods
1. W. Yang, "Improved recursive algorithm for light scattering
   by a multilayered sphere," _Applied Optics_ **42**, 1710--1720 (2003).
1. O. Pena and U. Pal, "Scattering of electromagnetic radiation
   by a multilayered sphere," _Computer Physics Communications_
   **180**, 2348-2354 (2009).
1. W. J. Wiscombe, "Improved Mie scattering algorithms,"
   _Applied Optics_ **19**, 1505-1509 (1980).
1. A. A. R. Neves and D. Pisignano, "Effect of finite terms on the
   truncation error of Mie series," _Optics Letters_ **37**,
   2481-2420 (2012).

## Acknowledgements
Work on this project at New York University is supported by the
National Science Foundation of the United States
under award number DMR-2428983.
