Code Monkey home page Code Monkey logo

opm's Introduction

image

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.

Important changes (02/22)

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.

Napari-GUI control with real-time deskewing

  • /napari-control/opm_timelapse_control.py
    • Run and display a multicolor galvo mirror using the qi2lab OPM on the OPM computer itself.
    • Usage: Run and display OPM time-lapse experiments in real-time.
    • Depends on: Napari, pymmcore-plus, PyDAQmx, Numba, dexp, and various standard Python libraries.
  • /napari-control/opm_iterative_control.py
    • Run and display an iterative labeling stage scan experiment (e.g. MERFISH) using the qi2lab OPM on the OPM computer itself.
    • Usage: Setup and execute iterative labeing experiments using qi2lab OPM .
    • Depends on: Napari, pymmcore-plus, PyDAQmx, Numba, dexp, and various standard Python libraries.
  • /napari-control/opm_timelapse_reconstruction.py
    • Example of chaining together qi2lab and other OA tools to deskew, rotate, deconvolution, flat-field, and analyze skewed data.
    • Depends on: Napari, PyDAQmx, Numba, dexp, and various standard Python libraries.

Micromanager-GUI stage scan controland reconstruction

  • pycromanager-control/run_opm_stagescan.py
    • 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.
  • reconstruction/recon_opm_stagescan.py
    • 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)>

Contributions / Acknowledgements

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).

Contact

For questions, contact Doug Shepherd (douglas.shepherd (at) asu.edu).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.