Skip to main content

Microscope automation for dynamic sample tracking.

Project description

DySTrack - Dynamic Sample Tracker

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).

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]"
pytest

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 preprint:

Wu, Zimeng, ..., and Hartmann, Jonas; [citation forthcoming]

# TODO: Add link and complete BibTeX reference once preprint has been posted

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dystrack-1.0.0.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dystrack-1.0.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file dystrack-1.0.0.tar.gz.

File metadata

  • Download URL: dystrack-1.0.0.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dystrack-1.0.0.tar.gz
Algorithm Hash digest
SHA256 468e9dab7c129394be923d8d1c20247d2fdf1be833f6d0000a3a3099d6642305
MD5 199abbcae3e9f0e38cb5266edc8553bc
BLAKE2b-256 183fee697510239bbda0f50a82bb7f23903de747f90fbafc7a99c74fd5c980a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for dystrack-1.0.0.tar.gz:

Publisher: dystrack-pypi.yml on WhoIsJack/DySTrack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dystrack-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dystrack-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dystrack-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41b122d89bdc7dff0b4092374dc15011c58cd91895366cd948166dd3b4e2ccc5
MD5 98bfa4159ab0790460e6c2e0be48a009
BLAKE2b-256 cb4703057efd7e54113a43f647a144820952fcbc6c5fd4dccb2c34526b7373ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for dystrack-1.0.0-py3-none-any.whl:

Publisher: dystrack-pypi.yml on WhoIsJack/DySTrack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page