Potential Super Resolution Algorithms for Fluorescence Microscopy: SIM and PSF

Currently in Ganapati’s lab, we are using Fourier Ptychographic Microscopy (FPM) to image biological samples. This type of microscopy  involves using an LED dome to illuminate the sample in many different illumination angles, allowing for increased image information of the sample with both dark field and bright field images. However, we have come across some challenges with FPM  when using thick or transparent biological samples.

A different type of microscopy that is better suited for thick biological samples is fluorescence microscopy. In florescence microscopy, a sample is stained with various fluorophore dyes, with each dye attaching to different organic or mineral components of the sample. The stained sample is then bathed in intense light, causing the specimen to fluoresce. Because the specimen is now labeled with dyes, it is much easier to visually distinguish different layers of the sample in the image.

There are multiple types of super resolution algorithms that can be used for fourescence microscopy, but two in particular that this lab is interested in are structured light microscopy (SIM) and the point spread function (PSF).

Structured Light Microscopy (SIM):

SIM uses the idea of Moiré‘s Law to aid in super resolution.  Moiré‘s Law can be seen on certain images or on television, producing a wavy pattern. This  Moiré pattern occurs when an object that is being photographed contains some sort of pattern, like stripes or dots, that exceed the resolution of the sensor. This is the same idea as “beats” in sound, and happens as a result of the interference of waves.
SIM technology takes advantage of the Moiré effect in order to extract higher resolution information from the image. In SIM, a striped or dotted illumination pattern is placed just before the sample. This pattern excites the sample, causing it to fluoresce. The interference of the fluorescence emission and excitation waves creates a Moiré pattern, which can be used and interpreted by a computer algorithm to find more spatial information about the image. This in turn allows for the enhancement of the resolution of the image .
A Github repository for a SIM super resolution algorithm can be found here:

 

Point Spread Function (PSF):

When you are viewing a microscopic fluorescent object under a microscope, the diffraction of light from the emitted fluorescence will cause the object to appear blurred. This blurring, which occurs in both the lateral and depth direction of the object, is known as the point spread function (PSF). PSF tend to have worse blurring in the depth direction, since microscopes tend to have worse resolution in that direction.

In order to minimize the effects of the PSF and reduce blurring, some modifications to the hardware of the microscope can be made, such as having a shorter wavelength of illumination light and  increasing the numerical aperture of the objective lens. On the software side, computer algorithms can “undo” the blurring  caused by the PSF by performing computational deconvolutions, which reverse the effects of the PSF and enhance the resolution of the image.

A Github repository for a PSF super resolution algorithm can be found here: https://github.com/FerreolS/tipi4icy

Resources:

A. Lal, C. Shan, and P. Xi . “Structured Ilumination Image Reconstruction Algorithm.” Department of  Biomedical Engineering,  Peking University. IEEE Journal. 4.(2016).

K. Sring and M. Davidson. “Introduction to Fluorescence Microscopy.” MicroscopyU.

“A Beginners Guide to the Point Spread Function”. Zeiss Microscopy.

A. Lavdas “Structured Illumination Microscopy–An Introduction.” Bitesizebio.com

N. Mansurov. “What is Moiré?” PhotographyLife.com (2012).

LED Dome Patterns Code

We have written a program for the dome that randomly illuminates a fixed number of LEDs at random brightness. Multiplexed illumination is useful in Fourier ptychography because it reduces data collection time without sacrificing information (X). Our code generates several patterns of LEDs and takes one photo for each pattern.

Within the program, we define the number of LEDs to be lit, the number of bright field LEDs, and the number of total LEDs. Currently, we are only illuminating bright field LEDs during imaging. We define the total number of LEDs in anticipation of future imaging that does include the dark field images.

First, we determine the number of patterns to generate by dividing the number of LEDs in use by the number to be lit in each pattern (n). We generate a list of all possible LED indices and shuffle to randomize selection. Then, we assign n indices to each pattern. We pop each index off of the shuffled list, so no index is reused. We use numpy’s randint function to generate a brightness between 0 and 255 for each index.

The inbuilt LED dome commands do not provide for individual LED brightness assignment. Instead, we must reassign the brightness of the entire array before illuminating the desired index. In order to achieve LED patterns that contain many brightnesses, we reset the dome brightness before each LED is illuminated.

We collect and save an image before wiping the current pattern to begin illuminating the next. The section of code used to save the image is not included in the interest of brevity.

for i in range(numPatterns):
   for j in range(len(patterns[i])):

        #Get index of current LED
        light = patterns[i][j]

        #Get brightness of current LED
        intensity = brightness[i][j]

        #Set brightness and illuminate LED
        led_array.command(intensity)
        led_array.command(light)
   
   #Once the full pattern is illuminated, capture a photo  
   time.sleep(0.1)
   mmc.snapImage()

   #Clear the array in anticipation of the next pattern
   led_array.command('x')

Interfacing with the dome occurs extremely quickly. It is reasonable to reset the dome brightness and individually illuminate each LED because, even using this more tedious method, the entire pattern takes only a fraction of a second to display.

The LEDs in our dome are extremely bright, so we are able to significantly reduce the camera exposure time. Previously, we used an exposure of around 2 seconds for illumination by a single LED. For five LEDs of mixed brightness in our new array , an exposure of 0.15 seconds is perfectly sufficient. We have not yet determined the ideal exposure time for an image captured with only one fully bright LED illuminated.

Mounting the LED Dome to the Microscope

Today, we mounted the new LED Dome to our microscope.

Our old array was mounted directly to the microscope stage, which made centering the sample over our objective lens inconvenient. We had to move samples into place by hand because using the stage controls to move samples also caused the LEDs to move and become uncentered.

In mounting our new array, we were careful to uncouple the LED array and the stage. We did this by reattaching the microscope’s condenser arm. This is the vertical piece that supported the microscope’s original illuminator lamp. First, we removed all of the old illuminating elements from the condenser to isolate the vertical condenser arm. Then we used a custom-made L-bracket to mount the optical breadboard plate parallel to the objective lens.

Our plate assembly is pictured below, with a zoomed in view of the L-bracket on the left and a view of the entire microscope, with the plate fixed to the condenser arm, on the right.

We made our L-bracket piece in the machine shop with help from J. Johnson, the machine shop supervisor. He helped us measure the space between screws and determine what diameter of screw was appropriate for each hole. He showed us how to drill holes of appropriate distance and size.

We used metal rods about 1 inch long to suspend the LED dome beneath the plate.

We adjusted the tightness of the screws until the assembly was level. Then we rewired the LED dome and tested some software written yesterday, which divides the brightfield LEDs into a fixed number of random patterns and displays them in turns. This test was successful.

 

 

Advantages and Familiarization with the new LED Dome

The Fourier Ptychographic Microscopy (FPM) so far in Ganapati’s lab has been performed with a flat 32×32 LED array.  With a flat array, you can light up one LED at a time to acquire different illumination angles for imaging. However, there are many disadvantages to the current flat LED array set-up. For example, one major issue  regarding the flat LED array is that it is programmed by Arduino, which does not contain memory. When we tried to reprogram the array to light up random multiplexed patterns of LEDs rather than one LED at a time (a change that could greatly reduce data acquisition time), we were unable to do so because the Arduino could not store information on the location of the LED coordinates. In addition, the flat LED is not very bright and contains smaller illumination angles, producing low resolution images that contain less intensity information and therefore decreases the space-bandwidth product (SBP) of the FPM reconstructed images.

By replacing the flat LED array with an LED dome purchased from Spectral Coded Illumination (Sci), many improvements could be made to our current FPM procedure.  We can easily program the dome to produce random multiplexed patterns of LEDs because the LED can be programmed directly through Python, a much more robust and easy-to-use software than Arduino that can easily store information. In addition, each LED is assigned a specific number rather than a x-y coordinate position, making it easier to write programs that access certain LEDs.

Because of the sloped sides of the array, which produces a dome shape, the LED dome can produce much higher angles for dark field illumination, allowing for increased intensity information of images and thus increasing the SBP of the reconstructed high resolution image. In addition, the LED dome is much brighter than the flat LED array, also contributing to higher quality images and better data for reconstruction. Finally, the dome is programmed to sweep through and illuminate LEDs  at a much faster rate than the flat array, significantly reducing data acquisition time.

Once we received the LED dome, we proceeded to download the necessary programs and become familiarized with the various commands for the dome. For instance, the command ‘bf’ illuminates only the brightfield LEDs, which are the LEDs located at low illumination angles and located directly above in sample in the flat roof of the dome. Other examples of commands are shown but not limited to the list below:

‘df’    illuminates only the dark field LEDs.

‘ff’     illuminates all LEDs in the array

‘sb.[r].[g].[b]’   sets the brightness of the array

‘scf’       lights up each LED in the array individually. Takes less than 1 minute to fully scan.

‘x’ clears the array

In the next few days we plan to learn more about setting up the hardware trigger modes for direct communication between the PCO camera and dome. We also plan to design and create a way to mount the LED dome onto the microscope so that we can allow for an automated stage. Currently with our flat LED array, we have the array attached to the stage, confining the lab group to manually moving the slides with our hands rather than having a more precise automated stage system.