Skip to main content

DySTrack - Dynamic Sample Tracking

DySTrack ("diss track") is a simple, modular, python-based, open-source automated feedback microscopy tool for live tracking of moving samples like migratory cells or tissues during acquisition. It works with common commercial microscope control software through a minimal interface.

Please see the Documentation for more information!

Warning: Modern microscopes are expensive machines, and automating them comes with an inherent risk of damage. Appropriate care must be taken when installing, testing, and using DySTrack. The code and documentation are provided "as is", without warranty or liability of any kind (see LICENSE).

[Gif: DySTrack lateral line primordium animation]

Quick start

It is strongly advised that first-time users consult the Documentation before installing and using DySTrack. These Quick Start instructions are intended solely for experienced users.

Install from cloned GitHub repo (recommended):

git clone https://github.com/WhoIsJack/DySTrack.git
cd DySTrack
conda create -n dystrack python=3.13
conda activate dystrack
pip install -e ".[full]"
pytest

Install from PyPI:

conda create -n dystrack python=3.13
conda activate dystrack
pip install "dystrack[full]"

Start a DySTrack manager session:

conda activate dystrack
python <path-to-config-file.py> <path-to-target-dir> [optional arguments]

Overview of repo structure

  • run\: Config files
    • Specify the image analysis pipeline (and optionally other parameters) for a DySTrack run
    • Run a DySTrack session: python path\to\config_file.py path\to\target_dir [optional args]
  • src\dystrack\manager\: Core module
    • Implements "DySTrack manager" sessions and a command line app to launch them
    • A manager session scans for new (prescan) images produced by the microscope
    • Upon detection of a new target image, an image analysis pipeline is triggered
    • The pipeline returns new coordinates, which are then forwarded to the microscope
  • src\dystrack\pipelines\: Image analysis pipelines
    • Called by the DyStrack manager when a new target image is detected
    • A pipeline reads a target image and returns new coordinates for acquisition
    • Adapting DySTrack to new use cases is mainly a matter of developing new pipelines
  • macros\: Interfacing with the microscope
    • Macros are run within commercial microscope software
    • They control all of the microscope's actual operations
    • They interface with DySTrack only by saving image files and reading new coordinates
  • tests\: Automated testing with pytest
    • Run pytest to execute the complete test suite
  • docs\: DySTrack documentation
    • Run make html to build a local version of the docs
  • notebooks\: Some potentially useful Jupyter notebooks

Asking for help or contributing to DySTrack

We welcome Issues and Pull Requests that:

  • Report or fix a bug or other problem
  • Ask a question not answered in the Documentation
  • Fix or improve something in the documentation
  • (Aim to) add a new image analysis pipeline
  • (Aim to) add support for an unsupported microscope
  • Suggest or make (backwards-compatible) improvements to features or performance

When raising an Issue or PR, please give it a clear title and description, and include as much relevant information as possible.

For PRs, please follow the conventions in the existing code base as closely as possible, use black and isort for code formatting and numpy-style doc strings, and include/update unit tests and the documentation as necessary.

That said, if you are unsure how to do these things, please raise an Issue or PR anyway and just ask for support! If we find the time, we are happy to help; after all, most of us are scientists (not professional software developers), and we are all always still learning!

Disclaimer: We currently cannot guarantee any level of support whatsoever and retain full discretion to close Issues or reject Pull Requests for any reason. Nevertheless, we do aspire to be helpful and responsive to the extent our limited resources permit.

All interactions must abide by the Contributor Covenenat Code of Conduct.

Acknowledgements

The earliest prototype of DySTrack was created by Jonas Hartmann in the group of Darren Gilmour at EMBL Heidelberg, with support by the Advanced Light Microscopy Facility (ALMF) and especially Christian Tischer, Antonio Politi, and Aliaksandr Halavatyi, and with Elisa Gallo and Mie Wong providing user feedback.

The prototype was then modernized and further developed by Zimeng Wu and Jonas Hartmann at UCL, in the groups of Mie Wong and Roberto Mayor, respectively, with support by the Centre for Cell & Molecular Dynamics (CCMD), especially Virginia Silio, Mike Redd, and Alan Greig. Nicolas Sergent (Zeiss) supported development for ZEN Blue and Robert Tetley (Nikon) for NIS Elements. The chick node tracking experiments were developed with Octavian Voiculescu in the lab of Alessandro Mongera.

Citing DySTrack

If you are using DySTrack in your research, please cite the JCS paper:

@article{wu2026dystrack,
  author = {Wu, Zimeng and Voiculescu, Octavian and Mongera, Alessandro and Mayor, Roberto and Wong, Mie and Hartmann, Jonas},
  title = {DySTrack – a modular smart microscopy tool for live tracking of dynamic samples on modern commercial microscopes},
  journal = {Journal of Cell Science},
  volume = {139},
  number = {21},
  pages = {jcs264728},
  year = {2026},
  month = {05},
  publisher={The Company of Biologists},
  doi = {10.1242/jcs.264728},
  url = {https://doi.org/10.1242/jcs.264728},
}

Metadata

Release files for dystrack 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dystrack 1.0.3
File Size Uploaded Provenance Actions
dystrack-1.0.3.tar.gz 27.7 kB With provenance Details for dystrack-1.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dystrack 1.0.3
File Interpreter ABI Platform Actions
dystrack-1.0.3-py3-none-any.whl Python 3 none any Details for dystrack-1.0.3-py3-none-any.whl

Total release size: 61.7 kB

Release files / dystrack-1.0.3.tar.gz

Download URL dystrack-1.0.3.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f830efe5fa7bd5b2e9de205ae7f946e8d3f6abbb1c2f4e7bbf734e1b450feadc
BLAKE2b-256 checksum
How to use checksums
e14feb407a29ba123a01dc4400e5ec118fc9ebffcebc7b4c6db35eab91e5bf64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 28, 2026.

Transparency log

Release files / dystrack-1.0.3-py3-none-any.whl

Download URL dystrack-1.0.3-py3-none-any.whl
Size 34.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
721e433cad26996e87e59652ef496cc269d8b08094dbdabb1a384722a9b9f87f
BLAKE2b-256 checksum
How to use checksums
76c2a5e58d84fdd82c9777aae2842fc24256d58e71b8ebb3fb3327577d7b97c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 28, 2026.

Transparency log

Security for dystrack 1.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dystrack-1.0.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page