Skip to content

Commit

Permalink
Update README.md (#155)
Browse files Browse the repository at this point in the history
* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Talon Chandler <[email protected]>

* update manuscript link

---------

Co-authored-by: Talon Chandler <[email protected]>
  • Loading branch information
ieivanov and talonchandler authored Aug 13, 2024
1 parent 00c9924 commit 8f2469b
Showing 1 changed file with 69 additions and 8 deletions.
77 changes: 69 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
# shrimPy: Smart High-throughput Robust Imaging & Measurement in Python
![acquisition and reconstruction schematic](docs/figure_3a.png)

shrimPy (pronounced: ʃrɪm-pai) is a pythonic framework for high-throughput smart microscopy and high-performance analysis. The current alpha version of the framework is specific to the mantis microscope, described in our [preprint](https://www.biorxiv.org/content/10.1101/2023.12.19.572435v1), but extensible to a high throughput microscope that is controlled with [Micro-Manager](https://micro-manager.org/).
shrimPy (pronounced: ʃrɪm-pai) is a pythonic framework for high-throughput smart microscopy and high-performance analysis. The current alpha version of the framework is specific to the mantis microscope, described in our [manuscript](https://doi.org/10.1093/pnasnexus/pgae323), but extensible to a high throughput microscope that is controlled with [Micro-Manager](https://micro-manager.org/).

The acquisition engine synchronizes data collection using hardware triggering and carries out smart microscopy tasks such as autofocus and autoexposure.

The acquired multidimensional raw datasets are processed by the reconstruction engine to generate registered multimodal data that can be used for analysis. Raw data are first converted to the [OME-Zarr](https://ngff.openmicroscopy.org/) format using [iohub](https://github.com/czbiohub-sf/iohub) to facilitate parallel processing and metadata management. Discrete data volumes then undergo deskewing of fluorescence channels, reconstruction of phase and orientation (using [recOrder](https://github.com/mehta-lab/recOrder)), registration and virtual staining (using [VisCy](https://github.com/mehta-lab/viscy)).

This version of the code still uses the legacy name `mantis`, which overlaps with the name of the microscope which is used to acquire data. In a future release we will transition the codebase to the name `shrimPy`.

## Installation

`shrimpy` can be installed as follows:
`mantis` can be installed as follows:

1. Create a new Python 3.10 virtual environment using conda:

```sh
conda create -y --name shrimpy python=3.10
conda activate shrimpy
conda create -y --name mantis python=3.10
conda activate mantis
```

2. Clone the repo and install this package:
Expand All @@ -34,15 +36,15 @@ The [Setup Guide](docs/setup_guide.md) outlines how the mantis microscope is con

Mantis acquisitions and analyses use a command-line interface.

A list of `shrimpy` commands can be displayed with:
A list of `mantis` commands can be displayed with:
```sh
shrimpy --help
mantis --help
```

Data are acquired using `shrimpy run-acquisition`, and a list of arguments can be displayed with:
Data are acquired using `mantis run-acquisition`, and a list of arguments can be displayed with:

```sh
shrimpy run-acquisition --help
mantis run-acquisition --help
```

The mantis acquisition is configured using a YAML file. An example of a configuration file can be found [here](mantis/acquisition/settings/example_acquisition_settings.yaml).
Expand Down Expand Up @@ -79,6 +81,19 @@ iohub convert \
-i ./acq_name/acq_name_lightsheet_1 \
-o ./acq_name_lightsheet.zarr

# DECONVOLVE FLUORESCENCE
# estimate PSF parameters
mantis estimate-psf \
-i ./beads.zarr \
-c ./psf_params.yml \
-o ./psf.zarr
# deconvolve data
mantis deconvolve \
-i ./acq_name_lightsheet.zarr \
-c ./deconvolve_params.yml \
--psf-dirpath ./psf.zarr
-o ./acq_name_lightsheet_deconvolved.zarr

# DESKEW FLUORESCENCE
# estimate deskew parameters
mantis estimate-deskew \
Expand All @@ -96,6 +111,19 @@ recorder reconstruct \
-c ./recon.yml \
-o ./acq_name_labelfree_reconstructed.zarr

# STABILIZE
# estimate stabilization parameters
mantis estimate-stabilization \
-i ./acq_name_labelfree.zarr/*/*/* \
-o ./stabilization.yml \
--stabilize-xy \
--stabilize-z
# stabilize data
mantis stabilize \
-i ./acq_name_labelfree.zarr/*/*/* \
-c ./stabilization.yml \
-o ./acq_name_labelfree_stabilized.zarr/*/*/*

# REGISTER
# estimate registration parameters
mantis estimate-registration \
Expand All @@ -114,6 +142,39 @@ mantis register \
-t ./acq_name_lightsheet_deskewed.zarr/*/*/* \
-c ./register_optimized.yml \
-o ./acq_name_registered.zarr

# CONCATENATE CHANNELS
mantis concatenate \
-c ./concatenate.yml \
-o ./acq_name_concatenated.zarr

# STITCH
# estimate stitching parameters
mantis estimate-stitching \
-i ./acq_name.zarr/*/*/* \
-o ./stitching.yml \
--channel DAPI
--percent-overlap 0.05
# stitch fields of view
mantis stitch \
-i ./acq_name.zarr/*/*/* \
-c ./stitching.yml \
-o ./acq_name_stitched.zarr/*/*/*
```

## Additional utilities

We have also developed the following CLI utilities to help with data acquisition and reconstruction

```sh
# Estimate fluorescence bleaching
mantis estimate-bleaching --help

# Update zarr scale metadata
mantis update-scale-metadata --help

# Generate an HTML report with PSF measurements
mantis characterize-psf --help
```

## Data and metadata format
Expand Down

0 comments on commit 8f2469b

Please sign in to comment.