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.3.0.tar.gz (95.5 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.3.0-py3-none-any.whl (125.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ptylab-0.3.0.tar.gz
Algorithm Hash digest
SHA256 604059b2886582b85b1d2851dd6b4433497347dfddb0825bbfe080e714dbde29
MD5 4d4f6245b4dab80e235ca1a25f966aac
BLAKE2b-256 a48c1824ff6ef4acfbd0f320879c1c9be972916fcf1afb62d3927521ddce083d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ptylab-0.3.0.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: ptylab-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 125.1 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b057a6d15f1fbdf0f56d5501b7099f5ac5f8f3a1f81bd7fe5ff58f29d178343
MD5 9ed312575a493953f598546516a1c2cb
BLAKE2b-256 e00812dde101216a541ab5cf7b11b4332feb37dc6f26edbfd8ff85502a438a7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ptylab-0.3.0-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

This release

0.3.0 This release

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

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