Skip to main content

Wave optical simulations and deconvolution of optical properties

Project description

waveorder

This package enables wave optical simulations and deconvolution of optical properties that report microscopic architectural order.

This vectorial wave simulator/reconstructor enabled development of a new label-free imaging method, uniaxial permittivity tensor imaging (uPTI), that reconstructs density (phase) and 3D anisotropy (principal retardance, 3D orientation of the optic axis, and optic sign) of specimens from polarization-resolved images acquired with multiple oblique illuminations.

The acquisition, calibration, background correction, reconstruction, and applications of uPTI are described in the following preprint:

L.-H. Yeh, I. E. Ivanov, B. B. Chhun, S.-M. Guo, E. Hashemi, J. R. Byrum, J. A. Pérez-Bermejo, H. Wang, Y. Yu, P. G. Kazansky, B. R. Conklin, M. H. Han, and S. B. Mehta, "uPTI: uniaxial permittivity tensor imaging of intrinsic density and anisotropy," bioRxiv 2020.12.15.422951 (2020).

Please cite above paper if you use or adapt this code.

uPTI provides reconstruction of phase, principal retardance, 3D orientation, and optic sign from a polarization-diverse and illumination-diverse acquisition. Following figure summarizes how the acquisition and reconstructions work with simulated images and reconstructed uPTI data using waveorder:

Data_flow

When the acquisition is polarization-diverse, illumination-diverse, and depth-diverse, waveorder can reconstruct the above measurements across volume.

In addition to uPTI, waveorder also enables simulations and reconstructions of subsets of label-free measurements with subsets of acquired dimensions.

  1. Reconstruction of 2D/3D phase, projected retardance, and in-plane orientation from a brightfield, polarization-diverse, and depth-diverse acquisition (QLIPP)

  2. Reconstruction of 2D/3D phase from a brightfield, depth-diverse acquisition (2D/3D (PODT) phase)

  3. Reconstruction 2D/3D phase from an illumination-diverse and depth-diverse acquisition (2D/3D differential phase contrast)

Currently, the example notebooks contain simulations for 2D QLIPP, 3D PODT, and 2D/3D uPTI. There is also a notebook demonstrating the reconstruction of the experimental data of 3D uPTI (data will be uploaded soon).

Installation

Create a new conda environment

Install conda package management system by installing anaconda or miniconda (link).

  1. Creating a conda environment dedicated to waveorder will avoid version conflicts among packages required by waveorder and packages required by other python software.
conda create -n <your-environment-name> python=3.7
conda activate <your-environment-name> (or source activate <your-environment-name>)
  1. Then, install jupyter notebook with
conda install jupyter

Install waveorder and required packages

Install the git version control system git : link

  1. Use git to clone this repository to your current directory:
git clone https://github.com/mehta-lab/waveorder.git
  1. Then, you can install dependencies via pip (python index package)

If you are running waveorder on your own machine,

a) navigate to the cloned repository:

cd waveorder

b) install python library dependencies:
pip install -r requirements.txt

  1. Create a symbolic library link with setup.py:
python setup.py develop

The installation time is less than 10 minutes on a normal desktop computer.

waveorder supports NVIDIA GPU computation through cupy package, please follow here for installation (check cupy is properly installed by import cupy). To enable gpu processing, set use_gpu=True when initializing the simulator/reconstructor class.

Usage and example

In the following, we demonstrate how to run waveorder for simulation and reconstruction.

  1. In the terminal, switch to the environment with waveorder installed
conda activate <your-environment-name>
  1. Navigate to the repository folder:
cd waveorder/example
  1. Open jupyter notebook or lab to run the simulation/reconstruction notebook in the folder:
jupyter notebook

We recommend installing cupy before running uPTI simulation because uPTI computation takes up more resources. 3D uPTI simulation with array size of (200, 200, 100) takes 20 minutes and the reconstruction of the same-size array takes 10 minutes on a NVIDIA Titan Xp GPU.

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

waveorder-1.0.0rc0.tar.gz (73.0 MB view details)

Uploaded Source

Built Distribution

waveorder-1.0.0rc0-py3-none-any.whl (84.7 kB view details)

Uploaded Python 3

File details

Details for the file waveorder-1.0.0rc0.tar.gz.

File metadata

  • Download URL: waveorder-1.0.0rc0.tar.gz
  • Upload date:
  • Size: 73.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for waveorder-1.0.0rc0.tar.gz
Algorithm Hash digest
SHA256 14c6275e9f16d306adf08d49bfc51b9fd65c8a8177bca2af3c7c45bde146d6a6
MD5 22a593ca597cfef8c8f3c806309c6a91
BLAKE2b-256 68f080cc993d40ca53a5569bfcabe04568662444ffce7fafaf610b49e07e3258

See more details on using hashes here.

File details

Details for the file waveorder-1.0.0rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for waveorder-1.0.0rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 816a13a482c4cd685fac32d87110d8d78186d9ab57473e15d97075d2199e114a
MD5 54768e43af54535584a89d2ab782cb38
BLAKE2b-256 0ee5de00e9ffa43fb3b9de49c58acd46a88faf8b87ff7e50888cc05a4a1d2312

See more details on using hashes here.

Supported by

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