You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+69-8Lines changed: 69 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,23 @@
1
1
# shrimPy: Smart High-throughput Robust Imaging & Measurement in Python
2
2

3
3
4
-
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/).
4
+
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/).
5
5
6
6
The acquisition engine synchronizes data collection using hardware triggering and carries out smart microscopy tasks such as autofocus and autoexposure.
7
7
8
8
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)).
9
9
10
+
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`.
11
+
10
12
## Installation
11
13
12
-
`shrimpy` can be installed as follows:
14
+
`mantis` can be installed as follows:
13
15
14
16
1. Create a new Python 3.10 virtual environment using conda:
15
17
16
18
```sh
17
-
conda create -y --name shrimpy python=3.10
18
-
conda activate shrimpy
19
+
conda create -y --name mantis python=3.10
20
+
conda activate mantis
19
21
```
20
22
21
23
2. Clone the repo and install this package:
@@ -34,15 +36,15 @@ The [Setup Guide](docs/setup_guide.md) outlines how the mantis microscope is con
34
36
35
37
Mantis acquisitions and analyses use a command-line interface.
36
38
37
-
A list of `shrimpy` commands can be displayed with:
39
+
A list of `mantis` commands can be displayed with:
38
40
```sh
39
-
shrimpy --help
41
+
mantis --help
40
42
```
41
43
42
-
Data are acquired using `shrimpy run-acquisition`, and a list of arguments can be displayed with:
44
+
Data are acquired using `mantis run-acquisition`, and a list of arguments can be displayed with:
43
45
44
46
```sh
45
-
shrimpy run-acquisition --help
47
+
mantis run-acquisition --help
46
48
```
47
49
48
50
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).
@@ -79,6 +81,19 @@ iohub convert \
79
81
-i ./acq_name/acq_name_lightsheet_1 \
80
82
-o ./acq_name_lightsheet.zarr
81
83
84
+
# DECONVOLVE FLUORESCENCE
85
+
# estimate PSF parameters
86
+
mantis estimate-psf \
87
+
-i ./beads.zarr \
88
+
-c ./psf_params.yml \
89
+
-o ./psf.zarr
90
+
# deconvolve data
91
+
mantis deconvolve \
92
+
-i ./acq_name_lightsheet.zarr \
93
+
-c ./deconvolve_params.yml \
94
+
--psf-dirpath ./psf.zarr
95
+
-o ./acq_name_lightsheet_deconvolved.zarr
96
+
82
97
# DESKEW FLUORESCENCE
83
98
# estimate deskew parameters
84
99
mantis estimate-deskew \
@@ -96,6 +111,19 @@ recorder reconstruct \
96
111
-c ./recon.yml \
97
112
-o ./acq_name_labelfree_reconstructed.zarr
98
113
114
+
# STABILIZE
115
+
# estimate stabilization parameters
116
+
mantis estimate-stabilization \
117
+
-i ./acq_name_labelfree.zarr/*/*/* \
118
+
-o ./stabilization.yml \
119
+
--stabilize-xy \
120
+
--stabilize-z
121
+
# stabilize data
122
+
mantis stabilize \
123
+
-i ./acq_name_labelfree.zarr/*/*/* \
124
+
-c ./stabilization.yml \
125
+
-o ./acq_name_labelfree_stabilized.zarr/*/*/*
126
+
99
127
# REGISTER
100
128
# estimate registration parameters
101
129
mantis estimate-registration \
@@ -114,6 +142,39 @@ mantis register \
114
142
-t ./acq_name_lightsheet_deskewed.zarr/*/*/* \
115
143
-c ./register_optimized.yml \
116
144
-o ./acq_name_registered.zarr
145
+
146
+
# CONCATENATE CHANNELS
147
+
mantis concatenate \
148
+
-c ./concatenate.yml \
149
+
-o ./acq_name_concatenated.zarr
150
+
151
+
# STITCH
152
+
# estimate stitching parameters
153
+
mantis estimate-stitching \
154
+
-i ./acq_name.zarr/*/*/* \
155
+
-o ./stitching.yml \
156
+
--channel DAPI
157
+
--percent-overlap 0.05
158
+
# stitch fields of view
159
+
mantis stitch \
160
+
-i ./acq_name.zarr/*/*/* \
161
+
-c ./stitching.yml \
162
+
-o ./acq_name_stitched.zarr/*/*/*
163
+
```
164
+
165
+
## Additional utilities
166
+
167
+
We have also developed the following CLI utilities to help with data acquisition and reconstruction
0 commit comments