Skip to main content

PtyLab.py: Unified Ptychography Toolbox

Python 3.10+ PyPI Tests

Getting Started | Installation | Development | Documentation

PtyLab is an inverse modeling toolbox for Conventional (CP) and Fourier (FP) ptychography in a unified framework. For more information please check the paper.

Key Features

  • Classic engines: ePIE, mPIE, mqNewton, qNewton
  • Advanced corrections: position correction (pcPIE), defocus correction (zPIE), angle correction (aPIE), orthogonal probe relaxation (OPR)
  • Multi-modal: multi-slice, multi-wavelength, mixed-state object and probe
  • Multiple propagators: Fraunhofer, Fresnel, Angular Spectrum (ASP), scaled ASP, polychromatic variants
  • GPU acceleration: same code runs on CPU and GPU

The reconstructed output is a 6D array of shape (nlambda, nosm, npsm, nslice, No, No):

Dim Meaning
nlambda wavelengths
nosm object state mixture
npsm probe state mixture
nslice depth slices
No output frame size

Getting started

Try the demo in Google Colab:

Open In Colab demo

For more use cases, start with the tutorials in our documentation, then see the example_scripts directory.

Installation

Install from PyPI within your virtual environment:

pip install ptylab

For much faster installs, we recommend uv: uv pip install ptylab

This package uses cupy to utilize GPU for faster reconstruction. To enable GPU support:

pip install "ptylab[gpu]"

You can check if GPU is detected with ptylab check gpu.

For the latest unreleased changes on main:

pip install git+https://github.com/PtyLab/PtyLab.py.git

Development

Clone the repo and install dev and gpu dependencies with uv:

git clone git@github.com:PtyLab/PtyLab.py.git
cd PtyLab.py
uv sync --extra dev,gpu # remove the GPU flag if you are on CPU

This creates a .venv virtual environment in the project root. Select this environment from your IDE.

Add tests for new implementations and run the suite:

uv run pytest tests

Citation

If you use this package, please cite:

@article{Loetgering:23,
        author = {Lars Loetgering and Mengqi Du and Dirk Boonzajer Flaes and Tomas Aidukas and Felix Wechsler and Daniel S. Penagos Molina and Max Rose and Antonios Pelekanidis and Wilhelm Eschen and J\"{u}rgen Hess and Thomas Wilhein and Rainer Heintzmann and Jan Rothhardt and Stefan Witte},
        journal = {Opt. Express},
        number = {9},
        pages = {13763--13797},
        publisher = {Optica Publishing Group},
        title = {PtyLab.m/py/jl: a cross-platform, open-source inverse modeling toolbox for conventional and Fourier ptychography},
        volume = {31},
        month = {Apr},
        year = {2023},
        doi = {10.1364/OE.485370},
}

Download files

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

Source Distribution

ptylab-0.2.6.tar.gz (92.7 kB view details)

Uploaded Source

Built Distribution

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

ptylab-0.2.6-py3-none-any.whl (122.3 kB view details)

Uploaded Python 3

File details

Details for the file ptylab-0.2.6.tar.gz.

File metadata

  • Download URL: ptylab-0.2.6.tar.gz
  • Upload date:
  • Size: 92.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ptylab-0.2.6.tar.gz
Algorithm Hash digest
SHA256 9ec37a9db9b347de61b2c767c230f39c04e1524080224ebae9514cc220474261
MD5 a8dc89a7cbe3571ce0881ed88a509ba3
BLAKE2b-256 db324f72454373f1f6c49dbf3977e919cf73c283647ffab96fc65c3391ed7d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ptylab-0.2.6.tar.gz:

Publisher: publish.yml on PtyLab/PtyLab.py

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

File details

Details for the file ptylab-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: ptylab-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 122.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ptylab-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4ac9c10638fc94ea43d6be62f4851f8296f584431717d3bc579ae3b85821949c
MD5 ff4aea3b0a8b56790370517e4bb972d0
BLAKE2b-256 ce8c566295a7b436360232b9d0ee0ca49ccd019c6695c68452f54d59cf499301

See more details on using hashes here.

Provenance

The following attestation bundles were made for ptylab-0.2.6-py3-none-any.whl:

Publisher: publish.yml on PtyLab/PtyLab.py

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

Release history Release notifications | RSS feed

0.3.1

2 files

0.3.0

2 files

0.2.8

2 files

0.2.7

2 files

This release

0.2.6 This release

2 files

0.2.5

2 files

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