Computational protocol: Construction of an instant structured illumination microscope

Similar protocols

Protocol publication

[…] Some minor changes may be required to the downloadable scripts, before they control the system as designed, since some parts of the code are specific to the hardware being used. The scripts must also be on the search path used by Python. For the replica iSIM, changes to the following were made:•board_name, on line 13 in ni.py (changed to “DAQ-NI-67633”, to match the output card).•The maximum data rate allowed on line 40 in ni.py (changed to 740000, to match the output card). The user warning immediately following was also changed to match.•The port number used by serial.Serial on line 7 in sutter.py (changed to 2, to match the installation of the filter wheel on port COM3).•The port number used by serial.Serial on line 6 in xyz_stage.py (changed to 3, to match the installation of the sample stage on port COM4).•pco_edge_type on line 16 in pco.py (changed to 4.2, to match the camera model).•The data folder for image acquisition was changed on line 2101 in camera_display.py (from “D:////amsim_data” to “C:/iSIM_data”).•References to icons for cosmetic use in the user interface were commented out, i.e. lines 226–228 and 894 in camera_display.py (icons must be supplied to execute these lines).board_name, on line 13 in ni.py (changed to “DAQ-NI-67633”, to match the output card).The maximum data rate allowed on line 40 in ni.py (changed to 740000, to match the output card). The user warning immediately following was also changed to match.The port number used by serial.Serial on line 7 in sutter.py (changed to 2, to match the installation of the filter wheel on port COM3).The port number used by serial.Serial on line 6 in xyz_stage.py (changed to 3, to match the installation of the sample stage on port COM4).pco_edge_type on line 16 in pco.py (changed to 4.2, to match the camera model).The data folder for image acquisition was changed on line 2101 in camera_display.py (from “D:////amsim_data” to “C:/iSIM_data”).References to icons for cosmetic use in the user interface were commented out, i.e. lines 226–228 and 894 in camera_display.py (icons must be supplied to execute these lines).For use of the analogue output card, manufacturer-supplied DLLs are required to be either on the Python search path, or in the same directory as the hardware control scripts. For this hardware, these DLLs are nicaiu.dll for the analogue output card, and sc2_cl_me4.dll and SC2_Cam.dll for the sCMOS camera.Running camera_display.py begins control of the iSIM.A new installation of Python 2.7.8 64-bit, with additional packages setuptools 5.8, numpy 1.8.2, scipy 0.14.0, matplotlib 1.4.2, ipython 2.3.1, pyserial 2.7 and their dependencies, executed the code as expected. The additional packages were installed using installers freely available at http://www.lfd.uci.edu/~gohlke/pythonlibs/.A downloadable Python distribution and environment (Enthought, Canopy) was tested as a potential user-friendly Python installation, but it did not handle some packages as expected by the code. [...] Imaging is controlled by a simple graphical control interface, generated by camera_display.py (). Exposure of the specimen to light can be controlled by adjusting the transmission efficiency of each excitation beam into the system using the AOTF, and by varying the number of sweeps of the scanning mirror to be integrated into the exposure (A). As the system does not have eyepieces, regions of interest on the sample must be found using the live iSIM display, while moving the stage with the joystick and z-adjustment wheel, and acquiring “Snap” images (which are not saved to disk). By employing the command “Snap if stage moves”, snap images are captured automatically during this process, with images refreshed for each new stage position. This searching process should use reduced excitation power, and the most appropriate excitation wavelength to minimise photobleaching of the sample. The optimum start and end points for a z-stack can then be chosen using the “Acquire Z-stack” command (B), using large step sizes (0.5 μm or greater) to minimise bleaching. For the final image acquisition, step sizes in z should be 0.25 μm or smaller, to contain sufficient information for subsequent image deconvolution (see Section ). Setting the “Start” value for the z-stack (B) to 0 μm or greater, and the “End” value to greater than the “Start” value, avoids any reversal in the direction of travel for the sample stage during capture of the z-stack, which provides the best image stability.When images are acquired with “Acquire Z-stack” or “Acquire timelapse” (C), they are saved as 16-bit files in TIFF format. A z-stack is saved as a single file, containing the multiple slices, while for a time-lapse sequence, one file per time-point is saved, as required for image deconvolution (see Section ). Acquisition parameters are saved in accompanying text files with the same name. If different emission filters are used for the two colour channels, each time-point or stack in the output is separated into two files. Following acquisition, ImageJ opens the TIFF files automatically for all z-stacks. It will also do this for time-lapse sequences, but only if “Display” (C) is checked. At this point, time-lapse frames are combined into a single hyperstack so that the (pre-deconvolution) sequence can be viewed (this hyperstack is not automatically saved).The raw images acquired, and displayed in real time, by an iSIM have resolution improved by a factor of √2, compared with widefield microscopy using the same optics (see also Section ). Every frame appears after capture on the live iSIM display during a time-lapse sequence.The “Settings” menu allows the user to access the brightfield mode of the microscope (see Section ), choose filter wheel positions for the two colour channels, and adjust other display and acquisition settings. It may be necessary to tune “Galvo mirror DAQ points per sweep” in “Settings”, “Galvo mirror”, to avoid diagonal striations in the image. For the UoL iSIM, this parameter is set to between 180 and 220. [...] Since the support of the optical transfer function of the system is theoretically doubled by the iSIM contraction and scanning mechanism , (), a full twofold improvement in resolution (halving the width of the PSF compared with the widefield case) is possible with a suitable deconvolution algorithm. Deconvolution of raw iSIM images with the PSF found in raw iSIM images does result in this recovery of information (see also Section ). The raw PSF can be obtained from measurements of images fluorescent beads , or from those of small (<100 nm) fluorescent features in a sample.A deconvolution program, decon.py, is included in the downloadable iSIM software. This program can receive either a user-supplied three dimensional PSF (in TIFF or RAW formats) or numerical input of FWHM in the three dimensions (in pixels), assuming a Gaussian PSF.An alternative is the use of the ImageJ plugin DeconvolutionLab (Biomedical Imaging Group, EPFL, Switzerland), with PSFs generated, for instance, using the plugin Gaussian PSF 3D (OptiNav). The same algorithm as used in decon.py (Richardson-Lucy) is available, and images can be batch processed. (Each image must be a one-channel z-stack; the program interlaced images from the two channels when asked to deconvolve a two-colour z-stack.)For time-lapse sequences, both programs require one file input per frame, since they are designed for single images (2D or 3D). When provided with multiple time-points in one file, as can be viewed and saved in an ImageJ hyperstack, the software will appear to process the images, but successive frames will be concatenated in the z-direction, resulting in an incorrect image before processing.York et al. found that commercial software (Huygens, Scientific Volume Imaging) performed better than decon.py for 2D (single z-slice) iSIM images. […]

Pipeline specifications