Metadata-Version: 2.4
Name: fastddm
Version: 0.3.15
Summary: A Python/C++ library for the analysis of Differential Dynamic Microscopy experiments
Keywords: cuda,differential-dynamic-microscopy,digital-fourier-microscopy,gpu,image-analysis,microscopy,python
Author: Enrico Lattuada, Fabian Krautgasser, Maxime Lavaudd, Roberto Cerbino
Author-Email: Unknown <cerbino@gmail.com>
Maintainer-Email: Enrico Lattuada <lattuada.enrico@gmail.com>, Maxime Lavaud <lavaudmaxime.ml@gmail.com>
License-Expression: GPL-3.0-or-later
License-File: CONTRIBUTORS.md
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Scientific/Engineering :: Physics
Project-URL: Source, https://github.com/somexlab/fastddm
Project-URL: Documentation, https://fastddm.readthedocs.io
Project-URL: Issues, https://github.com/somexlab/fastddm/issues
Project-URL: Changelog, https://github.com/somexlab/fastddm/blob/main/CHANGELOG.rst
Requires-Python: >=3.9
Requires-Dist: psutil
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: scikit-image
Requires-Dist: tifffile
Requires-Dist: nd2reader
Requires-Dist: pandas
Requires-Dist: lmfit
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-regtest; extra == "test"
Provides-Extra: doc
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-tabs; extra == "doc"
Requires-Dist: nbsphinx; extra == "doc"
Requires-Dist: furo; extra == "doc"
Requires-Dist: ipython; extra == "doc"
Requires-Dist: myst-parser; extra == "doc"
Requires-Dist: matplotlib; extra == "doc"
Provides-Extra: dev
Requires-Dist: fastddm[doc,test]; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: debugpy; extra == "dev"
Description-Content-Type: text/markdown

![FastDDM](docs/source/fastddm-logo-horizontal.svg)

![Python](https://img.shields.io/badge/python-3.9%20%7C%203.14-blue)
[![GitHub Actions](https://github.com/somexlab/fastddm/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/somexlab/fastddm/actions/workflows/test.yml)
[![PyPI Version](https://badge.fury.io/py/fastddm.svg)](https://pypi.org/project/fastddm/)
[![Read the Docs](https://readthedocs.org/projects/fastddm/badge/?version=latest)](https://fastddm.readthedocs.io/en/latest/?badge=latest)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)

**FastDDM** is a Python package for the analysis of microscopy image sequences using Differential Dynamic Microscopy on CPU and GPU.
The features implemented are targeted at the experimental soft matter research community dealing with inert and active/biological samples.

## Resources

- [Documentation](https://fastddm.readthedocs.io/):
  Python API description, installation, examples, and usage information.
- [Example notebooks](https://github.com/somexlab/fastddm-tutorials):
  Jupyter notebooks with practical examples.

## Example scripts

These examples demonstrate some of the Python API.

Calculation of the image structure function and its azimuthal average:

```python
import fastddm as fddm

file_names = [...]  # define here your list of image file names
images = fddm.read_images(file_names)

pixel_size = 0.3  # um
frame_rate = 50  # frames per second

# compute image structure function and set experimental parameters
dqt = fddm.ddm(img_seq, range(1, len(img_seq)))
dqt.pixel_size = pixel_size
dqt.set_frame_rate(frame_rate)

# compute the azimuthal average
aa = fddm.azimuthal_average(dqt, bins=dqt.shape[-1] - 1, range=(0.0, dqt.ky[-1]))
```

## Contributing to FastDDM

Contributions are welcome via [pull requests](https://github.com/somexlab/fastddm/pulls) after
agreeing to the [Contributors' Agreement](https://github.com/somexlab/fastddm/CONTRIBUTING.rst).
Please, refer to the [Developers'](https://fastddm.readthedocs.io/en/latest/contributing.html) section in the documentation.

Please, report bugs and suggest features via the [issue tracker](https://github.com/somexlab/fastddm/issues).

## Citing FastDDM

Please, cite this publication in every work that uses FastDDM:

    Enrico Lattuada, Fabian Krautgasser, Maxime Lavaud, Fabio Giavazzi, Roberto Cerbino
    The Hitchhiker’s guide to differential dynamic microscopy
    J. Chem. Phys. 28 October 2025; 163 (16): 161501
    https://doi.org/10.1063/5.0289471

## License

FastDDM is available under the [GNU GPL-3.0 license](LICENSE).

## Acknowledgements

- The [fftw-3.3.10](https://www.fftw.org/) library is included in the source tree.
- This project was funded by the Austrian Science Fund (FWF), Grant Number M 3250-N.
