Skip to content

Commit 766bc60

Browse files
committed
updated readme
1 parent 6524473 commit 766bc60

File tree

1 file changed

+18
-21
lines changed

1 file changed

+18
-21
lines changed

README.md

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ pattern given certain DMD patterns, determining system point-spread functions an
1111
determining the affine transformation between the DMD coordinates and the imaging space coordinates. The various
1212
files are described in more detail below.
1313

14-
This repository is associated with the Biomedical Optics Express paper
14+
# Published work using this code
15+
* This DMD simulation tools and SIM reconstruction code were originally created for our Biomedical Optics Express paper
1516
[Multicolor structured illumination microscopy and quantitative control of polychromatic light with a digital micromirror device](https://doi.org/10.1364/BOE.422703)
16-
and the [BioRxiv preprint](https://doi.org/10.1101/2020.07.27.223941).
17-
The repository state at the time of publication is archived [here](https://doi.org/10.5281/zenodo.4773865), or available as
17+
([preprint](https://doi.org/10.1101/2020.07.27.223941)). The repository state at the time of publication is archived [here](https://doi.org/10.5281/zenodo.4773865), or available as
1818
a [release](https://github.com/QI2lab/mcSIM/releases/tag/v1.0.0) on GitHub.
19+
* The SIM reconstruction code was also used in [Resolution doubling in light-sheet microscopy via oblique plane structured illumination ](https://doi.org/10.1038/s41592-022-01635-8)
20+
([preprint](https://doi.org/10.1101/2022.05.19.492671)). This version is archived [here](https://doi.org/10.5281/zenodo.6419901) or available as a [release](https://github.com/QI2lab/mcSIM/releases/tag/v0.2.0)
21+
* For a tutorial on SIM reconstruction, see our [I2K 2022 talks](https://github.com/QI2lab/I2K2022-SIM).
1922

20-
For a tutorial on SIM reconstruction, see our [I2K 2022 talks](https://github.com/QI2lab/I2K2022-SIM).
21-
23+
# Installation
2224
The best way to use this python package is to install it with pip
2325
```
2426
git clone https://github.com/QI2lab/mcSIM.git
@@ -32,7 +34,7 @@ cd mcSIM
3234
pip install -e .
3335
```
3436
The dependencies for the experimental control code are not installed by default because
35-
the DMD control code relies on the windows specific [pywinusb](https://pypi.org/project/pywinusb/). To install these dependencies run
37+
the DMD control code relies on the Windows specific [pywinusb](https://pypi.org/project/pywinusb/). To install these dependencies run
3638
```
3739
git clone https://github.com/QI2lab/mcSIM.git
3840
cd mcSIM
@@ -41,15 +43,14 @@ pip install .[expt_ctrl]
4143
Some functions can be optionally run on a GPU. If this is desired, ensure your python environment
4244
has the appropriate version of [CuPy](https://cupy.dev/) installed
4345

44-
# Analysis and simulation code
45-
46+
# SIM reconstruction code
4647
### [sim_reconstruction.py](mcsim/analysis/sim_reconstruction.py)
47-
Code for reconstructing SIM images from raw data using a Gustafsson/Wiener filter style reconstruction. Several different
48+
Code for reconstructing SIM images from raw data using a Gustafsson/Wiener filter style reconstruction. Several
4849
reconstruction options are available, largely following either the approach of
4950
[openSIM](https://doi.org/10.1109/JSTQE.2016.2521542) or [fairSIM](https://doi.org/10.1038/ncomms10980).
5051
To get started with reconstructing SIM data, see the example script [reconstruct_sim.py](examples/reconstruct_sim.py).
5152

52-
53+
# DMD simulation code
5354
### [simulate_dmd.py](mcsim/analysis/simulate_dmd.py)
5455
Code for simulating the diffraction patterns produced by the DMD. Various
5556
scripts illustrating the usage of this code can be found in the [examples](examples)
@@ -63,6 +64,7 @@ patterns for the DMD. It also contains many tools for working with the basis vec
6364
representation of DMD patterns. This allows a complete enumeration of DMD diffraction orders
6465
in a compact and computationally efficient form.
6566

67+
# Utility code
6668
### [fit_dmd_affine.py](mcsim/analysis/fit_dmd_affine.py)
6769
Code to fit the affine transformation between the DMD coordinates and camera coordinates
6870
using imaging data from a DMD pattern consisting of many small points. These code relies
@@ -80,21 +82,21 @@ This code is taken from https://github.com/jacobkimmel/ps_decomp (with permissio
8082
Miscellaneous image processing tools, primarily for working with Fourier transforms
8183

8284
### [mm_io.py](mcsim/analysis/mm_io.py)
83-
Tools for IO of MicroManager style tif files and metadata.
85+
Tools for IO of MicroManager style tif files and metadata.
8486

8587
### [localize-psf](https://github.com/QI2lab/localize-psf/blob/master/localize_psf)
8688
Useful tools for automatically localizing sparse fluorescent beads and performing both 2D and 3D
8789
PSF fitting using various PSF models. Also provides useful statistics and figures summarizing the results.
8890
This code has now been split out into a [separate repository](https://github.com/QI2lab/localize-psf).
8991
For more information about these tools, see the [readme](analysis/localize-psf/README.md)
90-
pip installing the mcsim repository as described above will also pull in these dependncies.
92+
pip installing the mcsim repository as described above will also pull in these dependencies.
9193

9294
# Examples
9395
Scripts illustrated examples of different DMD simulations and analysis are stored in [examples](examples). Associated
9496
data is located in [examples/data](examples/data)
9597

9698
# Hardware control code
97-
Hardware control is based around [MicroManager2.0](https://micro-manager.org/). Currently we control the instrument
99+
Hardware control is based around [MicroManager2.0](https://micro-manager.org/). Currently, we control the instrument
98100
using a fork of the [napari-micromanager](https://github.com/QI2lab/napari-micromanager) project which controls
99101
the MicroManager core using [pymmcore-plus](https://github.com/tlambert03/pymmcore-plus). Our fork of this project
100102
relies on MicroManager device drives to control cameras and stages, and on python code to control the DMD and DAQ.
@@ -104,19 +106,15 @@ The "device adapters" for the DMD and DAQ are found below
104106
Code for controlling the DLP6500 DMD over USB on Windows. This code was initially based on the approaches
105107
of [Lightcrafter6500DMDControl](https://github.com/mazurenko/Lightcrafter6500DMDControl) and
106108
[Pycrafter6500](https://github.com/csi-dcsc/Pycrafter6500). Extension to other operating systems has not been
107-
implented but should be straightforward.
109+
implemented but should be straightforward.
108110

109111
This file also includes functions used to define pattern sequences on the DMD using patterns have either been
110112
previously loaded onto the firmware using the [Texas Instruments DLP6500 and DLP9000
111113
GUI](https://www.ti.com/tool/DLPC900REF-SW) or which are loaded "on-the-fly". There is a low-level interface
112114
for running these patterns based directly on their index in the firmware. There is also a higher-level interface
113115
which supports defining "channels" and "modes" which can be saved in a json configuration file.
114116

115-
When run as a script, this file provides a command line interface to programming DMD pattern sequences.
116-
117-
### [expt_ctrl/dmd_config.json](mcsim/expt_ctrl/dmd_config.json)
118-
Configuration file describing firmware patterns as well as "modes" and "channels" for the DMD. This file is used by
119-
dmd instances created with [dlp6500.py](mcsim/expt_ctrl/dlp6500.py)
117+
When run as a script, this file provides a command line interface to programming DMD pattern sequences.
120118

121119
### [expt_ctrl/daq.py](mcsim/expt_ctrl/daq.py)
122120
Code for controlling a national instruments DAQ through [PyDAQmx](https://pypi.org/project/PyDAQmx/)
@@ -139,5 +137,4 @@ Example scripts which are useful for controlling various instruments during test
139137
[set_dmd_odt_pattern.py](mcsim/expt_ctrl/set_dmd_odt_pattern.py)
140138

141139
# Instrument design
142-
Mechanical drawings of some parts used in the setup are included in the [parts](parts) directory. For a more complete description of the setup and
143-
a parts list, see the published paper linked above. See in particular the [parts list](parts/parts_list.md)
140+
A [parts list](parts/parts_list.md) and mechanical drawings of some parts used in the setup are included in the [parts](parts) directory. For a more complete description of the optical path, see our BOE paper linked above.

0 commit comments

Comments
 (0)