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
:
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.
-
Reconstruction of 2D/3D phase, projected retardance, and in-plane orientation from a brightfield, polarization-diverse, and depth-diverse acquisition (QLIPP)
-
Reconstruction of 2D/3D phase from a brightfield, depth-diverse acquisition (2D/3D (PODT) phase)
-
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).
- Creating a conda environment dedicated to
waveorder
will avoid version conflicts among packages required bywaveorder
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>)
- Then, install jupyter notebook with
conda install jupyter
Install waveorder
and required packages
Install the git version control system git : link
- Use git to clone this repository to your current directory:
git clone https://github.com/mehta-lab/waveorder.git
- 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
- 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.
- In the terminal, switch to the environment with waveorder installed
conda activate <your-environment-name>
- Navigate to the repository folder:
cd waveorder/example
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14c6275e9f16d306adf08d49bfc51b9fd65c8a8177bca2af3c7c45bde146d6a6 |
|
MD5 | 22a593ca597cfef8c8f3c806309c6a91 |
|
BLAKE2b-256 | 68f080cc993d40ca53a5569bfcabe04568662444ffce7fafaf610b49e07e3258 |
File details
Details for the file waveorder-1.0.0rc0-py3-none-any.whl
.
File metadata
- Download URL: waveorder-1.0.0rc0-py3-none-any.whl
- Upload date:
- Size: 84.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816a13a482c4cd685fac32d87110d8d78186d9ab57473e15d97075d2199e114a |
|
MD5 | 54768e43af54535584a89d2ab782cb38 |
|
BLAKE2b-256 | 0ee5de00e9ffa43fb3b9de49c58acd46a88faf8b87ff7e50888cc05a4a1d2312 |