Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
30dbabf
Update README (#442)
mirjagranfors Nov 5, 2025
113b1a2
Auto-update README-pypi.md
invalid-email-address Nov 5, 2025
453a099
Rename DTEx206_cell_counting.ipynb to DTEx215_cell_counting.ipynb
Pwhsky Feb 5, 2026
bcb80af
Revert "Rename DTEx206_cell_counting.ipynb to DTEx215_cell_counting.i…
Pwhsky Feb 5, 2026
76808e4
updated: DTEx215_cell_counting (#451)
Pwhsky Feb 6, 2026
6fd0470
Auto-update README-pypi.md
invalid-email-address Feb 6, 2026
3d15fc8
created optical, changed imports
cmanzo May 2, 2026
56e7a98
init
cmanzo May 2, 2026
cb7c73b
u
cmanzo May 2, 2026
b8fe599
u
cmanzo May 2, 2026
6c7370d
bind optical submodules
cmanzo May 2, 2026
6715711
u
cmanzo May 2, 2026
ff87cfb
dt_math
cmanzo May 2, 2026
f99d357
issue with python > 3.12
cmanzo Apr 30, 2026
efb90ad
index order for compatibility with python 3.9
cmanzo Apr 30, 2026
2a64c51
imageio cleanup
cmanzo Apr 30, 2026
10f93ec
indexing
cmanzo Apr 30, 2026
7d44721
verbose install
cmanzo Apr 30, 2026
71955d3
force
cmanzo Apr 30, 2026
2ecc070
lightning check
cmanzo Apr 30, 2026
d1b2fe5
more checks
cmanzo Apr 30, 2026
3b1cf14
roll back
cmanzo May 1, 2026
b135961
Rename DTEx206_cell_counting.ipynb to DTEx215_cell_counting.ipynb
Pwhsky Feb 5, 2026
4154ff5
Revert "Rename DTEx206_cell_counting.ipynb to DTEx215_cell_counting.i…
Pwhsky Feb 5, 2026
83b1643
updated: DTEx215_cell_counting (#451)
Pwhsky Feb 6, 2026
be2dbe9
moved tests, added cv2
cmanzo May 1, 2026
38e3037
Merge branch 'develop' into create-optical
cmanzo May 2, 2026
982a319
meshgrid indexing for torch
cmanzo May 3, 2026
2e8eb10
solve issue with multiple volumes
cmanzo May 15, 2026
b1a819b
Merge branch 'elastic_transform' into develop
cmanzo May 15, 2026
792cb70
test_dlcc corrected
cmanzo May 15, 2026
c7d239c
Merge branch 'gv/final/features2' into develop
cmanzo Jun 14, 2026
7aba25c
fix issue with Python 3.9
cmanzo Jun 14, 2026
6d0ddb4
u
cmanzo Jun 14, 2026
094bf41
u
cmanzo Jun 14, 2026
7f8d7d1
u
cmanzo Jun 14, 2026
5cf29fb
nu
cmanzo Jun 14, 2026
c6fb235
back
cmanzo Jun 14, 2026
22bb775
nu
cmanzo Jun 14, 2026
22f6fe6
back
cmanzo Jun 15, 2026
c279a70
_pad_volume
cmanzo Jun 15, 2026
6c3fbfa
optics
cmanzo Jun 15, 2026
5b5a582
preserve autograd
cmanzo Jun 15, 2026
2d93245
remove +=
cmanzo Jun 15, 2026
5d83978
in-place index
cmanzo Jun 15, 2026
bb6932c
test
cmanzo Jun 15, 2026
19a65b1
tests
cmanzo Jun 15, 2026
4f3bf3f
u
cmanzo Jun 15, 2026
ec82fe1
mie
cmanzo Jun 15, 2026
f9714e4
tests
cmanzo Jun 15, 2026
43825ea
common_setup
cmanzo Jun 15, 2026
8e50ca2
_asarray_vector
cmanzo Jun 15, 2026
3005bbf
_process_properties
cmanzo Jun 15, 2026
d70ca2e
convert
cmanzo Jun 15, 2026
41cdad2
properties
cmanzo Jun 15, 2026
ecf607c
properties
cmanzo Jun 15, 2026
16c90e2
properties
cmanzo Jun 15, 2026
da98ef1
Merge branch 'DeepTrackAI:develop' into develop
cmanzo Jun 15, 2026
cc8d4d3
Revert "u"
cmanzo Jun 15, 2026
a6ef008
Merge pull request #4 from cmanzo/good_one
cmanzo Jun 15, 2026
21267c0
skip tests
cmanzo Jun 15, 2026
c9e4fe3
ok
cmanzo Jun 15, 2026
462a745
revert changes to properties
cmanzo Jun 16, 2026
73abf2f
u
cmanzo Jun 16, 2026
3f90cec
revert changes to mie
cmanzo Jun 16, 2026
de32bf0
changes for ISCAT backcompatibility
cmanzo Jun 19, 2026
400ad58
Merge branch 'gv/final/features2' of https://github.com/DeepTrackAI/D…
cmanzo Jun 19, 2026
a229ff7
Merge pull request #5 from cmanzo/ISCATcomp
cmanzo Jun 19, 2026
c2ae04f
Auto-update README-pypi.md
invalid-email-address Jun 19, 2026
abfc68c
Update readme
cmanzo Jun 19, 2026
b7887b5
Auto-update README-pypi.md
invalid-email-address Jun 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 26 additions & 22 deletions README-pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<img src="https://img.shields.io/badge/docs-available-blue?logo=readthedocs">
</a>
<a href="https://badge.fury.io/py/deeptrack">
<img src="https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue" alt="Python version">
<img src="https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue" alt="Python version">
</a>
<a href="https://doi.org/10.1063/5.0034891">
<img src="https://img.shields.io/badge/cite us-10.1063%2F5.0034891-blue">
Expand All @@ -28,16 +28,16 @@
<a href="/LICENSE">License</a>
</p>

DeepTrack2 is a modular Python library for generating, manipulating, and analyzing image data pipelines for machine learning and experimental imaging.
DeepTrack2 is a modular Python library for generating, manipulating, and analyzing image data pipelines for machine learning and digital microscopy.

<b>TensorFlow Compatibility Notice:</b>
DeepTrack2 version 2.0 and subsequent do not support TensorFlow. If you need TensorFlow support, please install the legacy version 1.7.
> <b>TensorFlow Compatibility Notice:</b>
> DeepTrack2 version 2.0 and subsequent do not support TensorFlow. If you need TensorFlow support, please install the legacy version 1.7.

The following quick start guide is intended for complete beginners to understand how to use DeepTrack2, from installation to training your first model. Let's get started!
The following quick-start guide is intended for complete beginners to understand how to use DeepTrack2, from installation to training your first model. Let's get started!

# Installation

DeepTrack2 requires at least python 3.9.
DeepTrack2 requires at least python 3.10.

To install DeepTrack2, open a terminal or command prompt and run:
```bash
Expand All @@ -51,7 +51,7 @@ This will automatically install the required dependencies.

# Getting Started

Here you find a series of notebooks that give you an overview of the core features of DeepTrack2 and how to use them:
Here you find a series of notebooks providing an overview of the core features of DeepTrack2 and how to use them:

- DTGS101 **[Introduction to DeepTrack2](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS101_intro.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS101_intro.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

Expand Down Expand Up @@ -97,7 +97,7 @@ Here you find a series of notebooks that give you an overview of the core featur

Creating custom scatterers of arbitrary shapes.

- DTGS172 **[Creating Custom Scatterers: Bacteria](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS172_custom_scatterers_bacteria.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS172_custom_scatterers_bacteria.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>
- DTGS172 **[Simulating Bacteria](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS172_custom_scatterers_bacteria.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/1-getting-started/DTGS172_custom_scatterers_bacteria.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

Creating custom scatterers in the shape of bacteria.

Expand Down Expand Up @@ -171,28 +171,16 @@ Specific examples for graph-neural-network-based particle linking and trace char

# Advanced Tutorials

This section provides a list of advanced topic tutorials. The primary focus of these tutorials is to demonstrate the functionalities of individual modules and how they work in relative isolation, helping to provide a better understanding of them and their roles in DeepTrack2.
This section provides a list of advanced tutorials. The primary focus of these tutorials is to demonstrate the functionalities of individual modules and how they work in relative isolation, helping to provide a better understanding of them and their roles in DeepTrack2.

- DTAT301 **[deeptrack.features](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT301_features.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT301_features.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTAT311 **[deeptrack.properties](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT311_properties.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT311_properties.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo10 **[deeptrack.scatterers](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo10_scatterers.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo10_scatterers.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo20 **[deeptrack.optics](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo20_optics.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo20_optics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo30 **[deeptrack.holography](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo30_holography.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo30_holography.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

- DTATo40 **[deeptrack.aberrations](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo40_aberrations.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo40_aberrations.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo50 **[deeptrack.noises](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo50_noises.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo50_noises.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo60 **[deeptrack.augmentations](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo60_augmentations.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo60_augmentations.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>
- DTAT321 **[deeptrack.properties](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT321_wrappers.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT321_wrappers.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTAT331 **[deeptrack.sequences](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT331_sequences.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT331_sequences.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo90 **[deeptrack.math](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo90_math.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo90_math.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTAT351 **[deeptrack.utils](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT351_utils.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT351_utils.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTAT353 **[deeptrack.statistics](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT353_statistics.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT353_statistics.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
Expand Down Expand Up @@ -223,6 +211,22 @@ This section provides a list of advanced topic tutorials. The primary focus of t

- DTAT396 **[deeptrack.backend._config](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT396_backend._config.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTAT396_backend._config.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

## Advanced Tutorials for Optical Microscopy

- DTATo10 **[deeptrack.optical.scatterers](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo10_scatterers.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo10_scatterers.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo20 **[deeptrack.optical.optics](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo20_optics.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo20_optics.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo30 **[deeptrack.optical.holography](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo30_holography.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo30_holography.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

- DTATo40 **[deeptrack.optical.aberrations](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo40_aberrations.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo40_aberrations.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo50 **[deeptrack.optical.noises](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo50_noises.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo50_noises.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo60 **[deeptrack.optical.augmentations](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo60_augmentations.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo60_augmentations.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

- DTATo90 **[deeptrack.optical.math](https://github.com/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo90_math.ipynb)** <a href="https://colab.research.google.com/github/DeepTrackAI/DeepTrack2/blob/develop/tutorials/3-advanced-topics/DTATo90_math.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg"></a>

# Developer Tutorials

Here you will find a series of notebooks tailored for DeepTrack2's developers:
Expand Down
27 changes: 25 additions & 2 deletions deeptrack/optical/optics.py
Original file line number Diff line number Diff line change
Expand Up @@ -2212,6 +2212,8 @@ def __init__(
self: ISCAT,
illumination_angle: float = np.pi,
amp_factor: float = 1,
input_polarization: float | str | None = "circular",
output_polarization: float | None = None,
**kwargs: Any,
) -> None:
"""Initializes the ISCAT class.
Expand All @@ -2223,16 +2225,37 @@ def __init__(
amp_factor: float
Amplitude factor of the illuminating field relative to the
reference field.
input_polarization: float | str | None
Forwarded to the scatterer (e.g. `MieSphere`), which is where the
polarization projection is actually computed. Default `None`
(isotropic illumination, no preferred axis), the standard ISCAT
configuration. Override here to use a fixed linear polarization
instead.
output_polarization: float | None
Forwarded to the scatterer. Default `None` (no analyzer), the
standard ISCAT configuration. Override here for a fixed linear
analyzer angle instead.
**kwargs: Any
Additional parameters for the Brightfield class.

Notes
-----
`input_polarization`/`output_polarization` parametrize the
scattered-field calculation, which happens on the scatterer (e.g.
`MieSphere`), not here. Setting them on `ISCAT` only supplies the
value that gets forwarded to the scatterer, it does not
relocate the computation. `MieScatterer`'s own standalone default
remains `0`/`0` (linear). `ISCAT`'s default of `"circular"`/`None` is
what applies whenever a scatterer is imaged through `ISCAT`.


"""

super().__init__(
illumination_angle=illumination_angle,
amp_factor=amp_factor,
input_polarization="circular",
output_polarization="circular",
input_polarization=input_polarization,
output_polarization=output_polarization,
phase_shift_correction=True,
**kwargs,
)
Expand Down
Loading