qi2lab-OPM | Control, reconstruction, analysis code for multiplexed imaging using oblique plane microscopy (OPM)
Control and analysis code for the qi2lab @ ASU OPM using a solid immersion tertiary objective (aka Mr. Snouty). Original instrument details, performance, and verification found in joint eLife publication with York and Fiolka labs. Codebase and wavefront data from the as-publsihed "stage scanning" high NA OPM are in the "elife-publication-frozen" branch of this repo.
The tools developed here can be used with any stage scanning or galvo scanning skewed light sheet designs, from diSPIM to lattice light sheet to OPM.
There have been large-scale, breaking changes and bug fixes since publication to the instrument design, control code, and reconstruction code. The codebase is moving towards Napari GUI control of the instrument and reconstruction. The pycro-manager based acquistion approach remains for now.
- Run a multiposition, multicolor stage scan using the qi2lab OPM. Optional capability to push data to a network drive during acquisition using 10G fiber connection for post-processing.
- Depends on: Micro-manager 2.0 gamma, Pycro-manager, PyDAQmx, and various standard Python libraries.
- Setup: Setup ROI cropping on camera in Micromanager 2.0. Setup stage positions, exposure time, laser lines, and laser powers in the initial block of the main() function. Once setup, call python script and it will execute scan.
- Reconstruct an OPM acquisition created using 'run_opm_stagescan.py' and create a BDV H5 file for BigStitcher. Can be pointed to directory for an in-progress acquisition or completed acquisition.
- Depends on: Pycro-manager, Numba, npy2bdv, scikit-image, and various standard Python libraries.
- Optional dependencies for raw data GPU deconvolution: clij2-fft.
- Optional dependencies for raw data GPU flatfield: Cupy and Scipy.
- Usage: python recon_opm_stagescan.py -i < inputdirectory > -d <0: no deconvolution (DEFAULT), 1: deconvolution> -f <0: no flatfield (DEFAULT), 1: PyImageJ-FIJI based flatfield (will be removed soon), 2: Python GPU based flatfield>, -s <0: save as TIFF, 1: save as BDV H5 (DEFAULT), 2: save as Zarr> -z <integer level of coverslip z axis downsampling. 1 = no downsampling (DEFAULT)>
Peter Brown (ASU), Franky Djutanta (ASU), Doug Shepherd (ASU), Nikita Vladimirov (BIMSB_MDC), Henry Pinkard (UCB), Adam Glaser (UW), Jon Daniels (ASI), Reto Fiolka (UTSW), Kevin Dean (UTSW), Alfred Millett-Sikking (Calico), and Andrew York (Calico).
For questions, contact Doug Shepherd (douglas.shepherd (at) asu.edu).