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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ptylab-0.2.7.tar.gz
  • Upload date:
  • Size: 92.8 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.7.tar.gz
Algorithm Hash digest
SHA256 d011ec6d46fe5591484cd49f5e0937b6843bad3ff1a3be616f0d696a9c69d4bf
MD5 11c19152b37a6ed31d81cd64af9f755e
BLAKE2b-256 012b3f94869ab81c4a338f4a43fb57ec06f6ceb6c418d2009fae92d121ad72eb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ptylab-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 122.5 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 197a45ddc26436f581f1e654dcfa3e95339c21de0f24139eda0b666d903e407a
MD5 1ec3dcbbfe3163f951d9400db8fde1cd
BLAKE2b-256 4770b599c020aa256918c40bee47064a0d93adad9b5f52a7281bc9e121825ed0

See more details on using hashes here.

Provenance

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

This release

0.2.7 This release

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