top bar

Difference between revisions of "Mosaic3"

(Installation)
 
(38 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{| style="text-align: left"
+
{| style="text-align:left"
!Summary:
+
!valign="top"|Summary:
|Interfaces with [http://www.andor.com/microscopy-systems/active-illumination/mosaic Andor Mosaic 3] Digital Mirror Device (DMD)
+
|Interfaces with [http://www.andor.com/microscopy-systems/active-illumination/mosaic Andor Mosaic 3] Digital Mirror Device (DMD).  The Andor Mosaic3 device allows phototargeting of microscope specimens.
 
|- valign="top"
 
|- valign="top"
 
!Author:
 
!Author:
Line 7: Line 7:
 
|- valign="top"
 
|- valign="top"
 
!Documentation:
 
!Documentation:
| Arthur Edelstein
+
| Arthur Edelstein<br/>Pariksheet Nanda
 
|- valign="top"
 
|- valign="top"
 
!License:
 
!License:
Line 16: Line 16:
 
|- valign="top"
 
|- valign="top"
 
!Devices:
 
!Devices:
|MM-820*-SUB<br/>MM-820*-SUB-COMP<br/>(Mosaic I and II devices are not supported)
+
|MM-820*-SUB<br/>MM-820*-SUB-COMP<br/>(MM-720* products, i.e. Mosaic I and II devices, are not supported)
 
|}
 
|}
 
----
 
----
Line 22: Line 22:
 
==Installation==
 
==Installation==
  
Andor’s Mosaic 3 device allows phototargeting of microscope specimens. To get started using it with Micro-Manager, you should have the Mosaic’s PCI-E card installed, the Mosaic connected to the card via an SFP+ cable, and the driver for the card activated. You'll also need to add the following DLLs to the main Micro-Manager directory:
+
=== Driver ===
* atcore.dll
+
* atdevmosiac3.dll
+
* Mosaic3ApiSharedMfc.dll
+
* Mosaic3SDKWrapper.dll
+
These DLLs are available from the Andor SDK as well as the Andor iQ software.
+
  
==Device Configuration==
+
* Download the Andor Mosaic Driver 3 Pack from [http://www.andor.com/downloads?src=micro here].
 +
:Install the Driver Pack and when prompted for the destination location enter the path where Micro-Manager is installed as shown in the example below.
 +
[[File:Installation_Destination.png|frame|center|link=]]
  
To configure Micro-Manager to use the Mosaic, open Micro-Manager’s <code>Hardware Configuration Wizard</code>, under the <code>Tools</code> menu. On the first page, click on “Mosaic3”. There are no configuration options.
+
* Check that the driver for the PCIe card is recognized in the Device Manager as <code> PLDA > PLDA Windows Driver</code>.
  
Once the configuration has been saved, open the <code>Device/Property browser</code> (also under the <code>Tools</code> menu) to examine the Mosaic’s available properties. (Note: currently all Mosaic3 properties are exposed, but after Sequencing has been implemented in the DeviceAdapter, some of these properties will be hidden).
+
=== Hardware Configuration Wizard ===
  
There are two modes for using the Mosaic on a microscope system: (1) via the Projector Plugin and (2) through scripting.
+
==== Mosaic ====
  
==Scripting==
+
To allow Micro-Manager to control the Mosaic, add the Mosaic3 device using Micro-Manager's [[Micro-Manager_Configuration_Guide#Hardware_Configuration_Wizard|Hardware Configuration Wizard]]. When you add the device, there are no configuration options.
  
Under the ImageJ menu, select <code>File > New > Image...</code> and create a black, 8-bit 800x600 image. Double click the dropper tool on the ImageJ toolbar and make sure the current drawing color is white. Then double click the paintbrush tool and set the thickness to 20 pixels. Finally, sketch an image with the paint brush.
+
==== Shutter control of the Projected Light Source ====
  
Open the “Script Panel” (under Micro-Manager’s Tools menu). Enter the following code:
+
The Mosaic allows a low level of light through even when the digital mirrors are off, and therefore the Mosaic can be optionally purchased with the a physical shutter accessory.  This shutter accessory is connected to a Vincent VCM-D1 controller, so to control it in Micro-Manager add the [[Vincent|Vincent device]].
  
  import ij.IJ; // Allows access to basic ImageJ utilities.
+
Shutter control is primarily intended for light sources which cannot be directly modulated, like a Mercury lamp; for light sources that can be modulated, best practice is instead to simply connect the "DMD Active" TTL 5 volt output to your light source "global shutter" (or similar) TTL input so that it is only on when the Mosaic is active. You may not have the shutter accessory installed on if your system was ordered with the intention of using it with this type of TTL light source.
  proc = IJ.getImage().getProcessor().duplicate(); // Read the current image.
+
  pixels = proc.getPixels(); // Extract pixels from ImageJ ImageProcessor object.
+
  mosaic = mmc.getSLMDevice(); // Get the installed name of the Mosaic device.
+
  mmc.setSLMImage(mosaic, pixels); // Upload the image to the Mosaic.
+
  mmc.displaySLMImage(mosaic); // Display the Mosaic.
+
  
Running this script will result in projecting the image you have just drawn onto the Mosaic.
+
If you have the [http://www.powertechnology.com/products/laser-diode-modules/lasers-w-modulation/iq1a.html Power Technology diode laser], you may wish to still add the Vincent device because this laser always leaks ~4mW from the laser head even in the off position (0 volt Analog input).  This laser leak is difficult to observe normally since the laser safety interlocks would shut off the laser.
  
==Projector Plugin==
+
=== Calibration ===
  
Please read the [[Projector Plugin]] page for a general, detailed description of its usage.  The following describes, specifically, how the plugin runs the Mosaic.
+
Controlling the Mosaic, like other SLM and Galvo devices, is done by the Projector plugin ('''Plugins | Device Control | Projector''').
  
====Setup====
+
{{Note|Many functions of the generically designed Projector plugin are not useful for the Mosaic.  For normal use, one would just open the Projector plugin to go to the ROIs tab and open the Sequencing window.}}
  
First, make sure a camera has been installed using the hardware configuration wizard. Place a test slide (such as a solid fluorescent slide) on the microscope stage. Next, under Micro-Manager’s Plugins menu, select “Projector”. This plugin makes it easy to phototarget specimens, either ''ad hoc'' or as part of a multi-dimensional acquisition protocol.
+
Before you begin the calibration:
 +
* Make sure a camera has been installed using the Hardware Configuration Wizard.
 +
* In the [[Projector_Plugin#Setup_tab|Setup tab]] of the Projector plugin:
 +
** If your microscope system requires changing a property for the Mosaic projected light to reach your specimen (often if your imaging reflector cube is different from the mosaic reflector cube), create a Group and a Presets each for your Mosaic reflector and your epi imaging reflector.  Assign the Core-ChannelGroup to that Group, and finally in the <code>Phototargeting channel</code> choose the Mosaic reflector preset.
 +
** If you added the Vincent shutter device in the Hardware Configuration Wizard, assign it to the <code>Phototargeting shutter</code>.
  
Click on the Setup tab and click "All Pixels." A solid rectangle should be visible on the specimen, corresponding to all pixels set to the "On state." Turn on Micro-Manager’s Live mode to see this rectangle on the camera.
+
You may wish to refer to the [[Projector Plugin]] description page if you have not used it before. However, note that for the Mosaic:
 +
* [[Projector_Plugin#Point_and_Shoot_tab|Point and Shoot tab]]: only projects a fixed-sized round ROI on the live image window and offers no flexibility of shape type and size.
 +
* [[Projector_Plugin#ROIs_tab|ROIs tab]]: is mainly used to open the Sequencing window. The Sequencing window has a super-set of the functionality of the other controls in the ROIs tab.
  
Click on “Show center spot” to see a small spot in the middle of the Mosaic’s array. It may be useful to adjust the alignment of the camera or the Mosaic to get the spot near the center of the camera’s field of view (exact positioning is not necessary).
+
Focus on a test slide on the microscope stage. The mirror test slide is ideal since it provides a crisp reflection, but if you can't get a good image from it due to optical filters you can consider a uniform fluorescent slide.  Click the {{Key|Calibrate}} button. The Projector Plugin will move through a rectangular lattice of spots across the Mosaic array, illuminating them one by one. The corresponding position on the camera image will be automatically measured. During the calibration procedure, a small cross will be visible overlaid on each spot as it is located. When calibration is finished, the plugin will have acquired and stored a coordinate mapping from camera pixels to Mosaic pixels.
  
Next, press the "Calibrate" button. The Projector Plugin will move through a rectangular lattice of spots across the Mosaic array, illuminating them one by one. The corresponding position on the camera image will be automatically measured. During the calibration procedure, a small cross will be visible overlaid on each spot as it is located. When calibration is finished, the plugin will have acquired and stored a coordinate mapping from camera pixels to Mosaic pixels.
+
== Sequencing window ==
  
====Point and shoot====
+
The Andor Mosaic offers advanced sequencing capabilities. To open the Sequencing Window, in the ROIs tab of the Projector Plugin, click the {{Key|Sequencing...}} button. The button also opens the ImageJ ROI Manager.
  
Following this calibration, you can use the mouse to draw targets on a live picture of the specimen, and precisely illuminate those targets. First, click on the “Point and Shoot” tab and turn “Point and shoot mode” to “On”. Set the Exposure Time to 1000 ms. Holding down the Control Key, click at arbitrary points on the live camera image. You should see a spot appear at each click point, and then disappear after approximately 1 second.
+
[[File:Sequencing.png|frame|center|Figure: Sequencing window showing (1) ROI list (2) Create ROI Grid panel (3) Sequence table editor (4) Create Sequence panel (5) Control buttons on bottom]]
  
====ROIs====
+
=== ROI list ===
  
Next, select the Polygon ROI tool on ImageJ’s toolbar, and draw a polygon on the live image. , Click on the “ROIs” tab and click “Set ROI(s)” to upload this ROI to the Mosaic. The plugin should report, “1 ROI submitted.” Choose an Exposure/dwell time of 250 ms. Click “Run ROIs now!” to illuminate the ROI -- you should see it light up for the duration requested.
+
Use the ROI Manager window to add, remove and update ROIs.  If you are not as familiar with ImageJ ROIs or have been using the Mosaic in other software packages, read the Projector plugin's discussion about [[Projector_Plugin#Drawing_Multiple_ImageJ_ROIs|drawing multiple ImageJ ROIs]].
  
Finally, check the “Run ROIs in Multi-Dimensional Acquisition” checkbox. Choose a “Start Frame” of 10, and Repeat Every 20 frames. Set Micro-Manager’s camera exposure time to 50 ms. Open Micro-Manager’s Multi-Dimensional Acquisition window, and acquisition with 300 time points, and interval zero. Run the acquisition, and observe that a targeting event occurs at frames 10, 30, 50, etc.
+
The intention of the ROI list is to add more properties to each ROI. The list synchronizes itself to contain the same set of ROIs as the ROI Manager.
 +
{| class="wikitable"
 +
!style="width: 20%;"| Column
 +
! Description
 +
|- valign="top"
 +
| Roi # || Reference index number automatically generated. This gets referenced later on in the [[#Sequence table]].
 +
|- valign="top"
 +
| Name || Copy of ROI name used in ROI Manager.
 +
|- valign="top"
 +
| Mode || The default '''FRAP''' ROIs appears for short periods of time, whereas '''Image''' ROIs are intended to be illuminated throughout the whole sequence.
 +
|- valign="top"
 +
| Intensity || Sets the projected light intensity level if you have <code>PixelMode</code> set to one of the gray scale settings.
 +
|}
  
====ROI Sequencing====
+
=== Create ROI Grid ===
  
The Andor Mosaic also offers advanced sequencing capabilities. On the ROIs tab of the Projector Plugin, click the "Sequencing..." button. Two windows will appear: (1) the ROI Sequencing control window, and (2) the ImageJ ROI Manager. To add an ROI to the ROI Manager list, choose an ROI tool in the ImageJ toolbar, draw an ROI on the live window, and then click "Add" on the ROI Manager window. Repeat for as many ROIs as you need.
+
To aid a specific use case, this feature duplicates a ROI generating a rectangular grid (lattice) of ROIs. Draw the ROI you wish to duplicate in the upper-left corner of your intended grid, enter the number of ROIs across and down and spacing between lattice points.
  
Next, on the ROI Sequencing window, notice that ROI list now contains the same set of ROIs specified in ImageJ's ROI Manager. You can assign each ROI to one of two types: FRAP and Image. The FRAP rois are designed to appear for short periods of time, while the Image rois will typically be illuminated throughout the whole sequence.
+
=== Sequence table ===
  
Alternatively, you can automatically generate a rectangular grid (lattice) of ROIs. First, draw an ROI in the upper-left corner of your intended grid. Then, in the "Create ROI Grid" box, enter the number of ROIs across and down (as in a crossword puzzle). Enter the spacing between lattice points in the ROI grid. Press the Generate ROI Grid button, and your ROI will be duplicated in the grid pattern, ready for sequencing.
+
{{Note|It's often better to use [[#Create Sequence]] to populate the sequence table instead of hand-filling an empty Sequence table. The Sequence table is being described first to introduce the nomenclature (particularly the "Time Slot") of the Create Sequence generator.}}
  
ROI sequences consist of a number of steps (time slots). Within each step, 1 or more ROIs is shown. The Create Sequence box offers a quick shortcut for generating such sequences. In the Create Sequence box, choose a Sequence type (Sequential, Cumulative, or Simultaneous). Sequential mode in one step per FRAP-type ROI, where each FRAP-type ROI is illuminated in turn. Cumulative mode will gradually illuminate an additional FRAP-mode ROI per step, until all ROIs are illuminated. Simultaneous mode simply shows all ROIs simultaneously in a single step. Choose the typical time you want each step in the sequence to illuminate (On Duration) and the Off time between steps. Finally, the Loop Count determines how many times the ROIs should be repeatedly illuminated in each step. Press the "Generate Sequence" button to populate the Sequence table, below. Notice that all Image-type ROIs are included in every step.
+
{| class="wikitable"
 +
!style="width: 20%;"| Column
 +
! Description
 +
|- valign="top"
 +
| Time Slot || Reference index number generated by clicking the {{Key|Generate Sequence}} button in the Create Sequence panel, or by the {{Key|Add}} button under under the Sequence table.
 +
|- valign="top"
 +
| ROIs || "Roi #" value in [[#ROI list]].  This can also take a range of Roi #s, e.g. 1-3,5,7,9-11.
 +
|- valign="top"
 +
| On Duration (ms) || Illumination time.
 +
|- valign="top"
 +
| Off Duration (ms) || Off time after <code>Time Slot</code>
 +
|- valign="top"
 +
| Loops || Number of times the ROIs should be repeatedly illuminated within the <code>Time Slot</code>. To repeat the entire Sequence table, set the "Sequence Repeats" number below the Sequence table.
 +
|}
  
The Sequence table can now be edited to alter which ROIs appear in a step, the On and Off times, and the Loop Count. You can add, duplicate, delete, and re-order the steps.
+
=== Create Sequence ===
 +
 
 +
ROI sequences consist of a time slots or steps. Within each time slot 1 or more ROIs can be illuminated.
 +
 
 +
{| class="wikitable"
 +
!style="width: 20%;"| Item
 +
! Description
 +
|- valign="top"
 +
| Sequence type || '''Sequential''' illiminates each <code>FRAP</code> mode ROI in turn.<br/><br/>'''Cumulative''' illuminates the <code>FRAP</code> mode ROI as it progresses through the <code>Time Slots</code>, until all ROIs are illuminated.<br/><br/>'''Simultaneous''' mode simply shows all ROIs in a single step.
 +
|-
 +
|colspan="2"| The remaining items are described in the Sequence table above (On Duration, Off Duration, Loops).
 +
|}
 +
 
 +
Click the {{Key|Generate Sequence}} button to populate the Sequence table, below. All Image-type ROIs are included in every step.  You can edit the image table to manipulate which ROIs appear in a <code>Time Slot</code>, the On and Off times, and the Loop Count. There are also buttons to {{Key|Add}}, {{Key|Clone}}, {{Key|Delete}}, and re-order the <code>Time Slot</code>s.
 +
 
 +
=== Control buttons ===
 +
 
 +
Below the Sequence table, you can specify:
 +
 
 +
{| class="wikitable"
 +
!style="width: 20%;"| Item
 +
! Description
 +
|- valign="top"
 +
| Sequence Repeats || Number of many times the Sequence table should be repeated.
 +
|- valign="top"
 +
| Sequence Trigger || How the sequence should be triggered.
 +
|- valign="top"
 +
| Upload Sequence || Send the sequence and ROIs to the Mosaic device.  Get in the habit of clicking this button to apply changes from the Sequence list or from updating ROIs in the ROI Manager.
 +
|- valign="top"
 +
| Run/Stop || Execute the sequence.  Useful for previewing through the microscope eyepieces or "Live" image on the camera. This button should also be pressed to arm the device for an externally triggered sequence. After clicking this button the device should be prepared to receive an external trigger.
 +
|- valign="top"
 +
| Attach to Acquisition/Detach || Executes sequence when running Multi-dimensional acquisition.
 +
|- valign="top"
 +
| Load/Save || Exports and reload all settings (includes the ROIs).
 +
|}
 +
 
 +
== Device Properties ==
 +
 
 +
{| class="wikitable"
 +
!style="width: 20%;"| Property
 +
! Description
 +
|- valign="top"
 +
| Exposure || Pulse duration of mask in seconds.  You would not often change this setting directly since the Sequencing window requires you to set the exposure time in the Sequence list, and the exposure value(s) there takes precedence.  Changing this is useful for interactive use e.g. in the <code>Projector > Setup</code> tab.
 +
|- valign="top"
 +
| OverlapMode || Pulses mask when set to '''Off'''. Can allow static exposure when set to '''On'''.<br/><br/>The '''Off''' setting has the benefit of hardware timing accuracy, but it limits the maximum exposure to 200 seconds.<br/><br/>'''On''', by definition, ignores the value of "Off Duration (ms)" in the Sequence window.  When combined with setting the <code>Exposure</code> to 0, it exposes the mask constantly; if you have use of this ability one can create, say, an "Exposure Mode" group with a preset named something like "Static".
 +
|- valign="top"
 +
| OperationMode || Choose whether to use hardware or software memory.  The default, '''Live''', uses the software memory.<br/><br/>'''FrameSequence''' is used with the Sequence window (opening the sequence window automatically changes to this value for you). If you need the <code>SequenceLoopCount</code> to be infinite use '''ContinuousFrameSequence'''.<br/><br/>If using <code>FrameIndexSource</code> as '''Hardware''', set to '''FrameMemory'''.
 +
|- valign="top"
 +
| FrameIndexSource || Setting this to '''Hardware''' allows switching between uploaded Frames using the TTL 26-pin D-sub breakout cable, by setting the "Frame Address [7:0]" BNC inputs.  Requires <code>OperationMode</code> being set to '''FrameMemory'''.
 +
|- valign="top"
 +
| PixelMode || Switch between '''BlackAndWhite''' and several gray scale settings.
 +
|- valign="top"
 +
| GrayScaleExposureTime || Pulse duration of mask in seconds when setting <code>PixelMode</code> to a value other than '''BlackAndWhite'''.
 +
|- valign="top"
 +
| InvertMode || Inverts all uploaded masks before projecting.  Invert means setting those DMD pixels outside of the 2D ROI On, and those within the 2D ROI Off.
 +
|- valign="top"
 +
| SequenceLoopCount || Number of times to repeat the entire uploaded Frame sequence.  You don't need to adjust this since the Sequence window has a textbox for "Sequence Repeats" which takes precedence.
 +
|- valign="top"
 +
| SequenceLoopSettings || Shows result of clicking "Upload Sequence" from Sequence window; useful for debugging.  Each "Time Slot" entry from the Sequence window list should appear as<br/><code>[Time Slot] [On Duration] [Off Duration] [Number of Loops];</code>
 +
|- valign="top"
 +
| TriggerMode || Switch between various internal and external TTL trigger settings which are detailed in the Mosaic manual.
 +
|}
 +
 
 +
== Scripting ==
 +
 
 +
Neither the Projector plugin, nor the Sequencing window, exposes any API.  Since they are written in Java, one could edit the [https://valelab.ucsf.edu/svn/micromanager2/trunk/plugins/Projector/src/org/micromanager/projector/ Java code] itself to add desired functionality. See [[writing plugins for Micro-Manager]]
 +
 
 +
The only scripting possible is that which is already built into MMCore, and thus the "upload bitmap mask" example script detailed below would work on any SLM device.  The example script makes use of <code>setSLMImage()</code> and <code>displaySLMImage()</code>, but there are several more SLM functions which one can find by reading through the [https://valelab.ucsf.edu/~MM/doc/mmcorej/mmcorej/CMMCore.html core documentation] and searching for the word "SLM" in the javadoc page.
 +
 
 +
=== Upload bitmap mask ===
 +
 
 +
Create a binary mask from the ImageJ menu by creating a new image (<code>File > New > Image...</code>) and selecting 8-bit Black 800x600. Double-click the dropper tool on the ImageJ toolbar and make sure the current drawing color is white.  To draw a freehand shape, double-click the paintbrush tool, set the thickness to, say, 20 pixels and sketch on the image with the paint brush.
 +
 
 +
Open the [[Script Panel GUI]] and paste the following code:
 +
<div class="source">
 +
 
 +
  import ij.IJ; // Allows access to basic ImageJ utilities.
 +
  proc = IJ.getImage().getProcessor().duplicate(); // Read the current image.
 +
  pixels = proc.getPixels(); // Extract pixels from ImageJ ImageProcessor object.
 +
  mosaic = mmc.getSLMDevice(); // Get the installed name of the Mosaic device.
 +
  mmc.setSLMImage(mosaic, pixels); // Upload the image to the Mosaic.
 +
  mmc.displaySLMImage(mosaic); // Display the Mosaic.
 +
 
 +
</div>
 +
Running this script will result in projecting the image you have just drawn onto the Mosaic.
  
Finally, below the Sequence table, you can specify how many times the sequence should be repeated, and how the sequence should be triggered. Press the "Upload Sequence" button to send the sequence and ROIs to the Mosaic device. Then press Run to start the sequence. You can also attach your sequence to Micro-Manager's multi-dimensional acquisition, and you can save the sequence for re-loading later.
+
If you are re-using a saved TIFF image, you need to open it using ImageJ's <code>File</code> menu (not Micro-Manager's) and again in the ImageJ menu change <code>Image > Type</code> to <code>8-bit</code> instead of the default <code>32-bit</code> (opening as 32-bit is possibly a bug in ImageJ?).
  
 
{{Listserv_Search|Mosaic}}
 
{{Listserv_Search|Mosaic}}
  
 
{{Devices_Sidebar}}
 
{{Devices_Sidebar}}

Latest revision as of 03:05, 16 October 2017

Summary: Interfaces with Andor Mosaic 3 Digital Mirror Device (DMD). The Andor Mosaic3 device allows phototargeting of microscope specimens.
Author: Arthur Edelstein
Documentation: Arthur Edelstein
Pariksheet Nanda
License: Properietary, closed source, Copyright Andor Technology 2014
Platforms: Windows
Devices: MM-820*-SUB
MM-820*-SUB-COMP
(MM-720* products, i.e. Mosaic I and II devices, are not supported)

Installation

Driver

  • Download the Andor Mosaic Driver 3 Pack from here.
Install the Driver Pack and when prompted for the destination location enter the path where Micro-Manager is installed as shown in the example below.
Installation Destination.png
  • Check that the driver for the PCIe card is recognized in the Device Manager as PLDA > PLDA Windows Driver.

Hardware Configuration Wizard

Mosaic

To allow Micro-Manager to control the Mosaic, add the Mosaic3 device using Micro-Manager's Hardware Configuration Wizard. When you add the device, there are no configuration options.

Shutter control of the Projected Light Source

The Mosaic allows a low level of light through even when the digital mirrors are off, and therefore the Mosaic can be optionally purchased with the a physical shutter accessory. This shutter accessory is connected to a Vincent VCM-D1 controller, so to control it in Micro-Manager add the Vincent device.

Shutter control is primarily intended for light sources which cannot be directly modulated, like a Mercury lamp; for light sources that can be modulated, best practice is instead to simply connect the "DMD Active" TTL 5 volt output to your light source "global shutter" (or similar) TTL input so that it is only on when the Mosaic is active. You may not have the shutter accessory installed on if your system was ordered with the intention of using it with this type of TTL light source.

If you have the Power Technology diode laser, you may wish to still add the Vincent device because this laser always leaks ~4mW from the laser head even in the off position (0 volt Analog input). This laser leak is difficult to observe normally since the laser safety interlocks would shut off the laser.

Calibration

Controlling the Mosaic, like other SLM and Galvo devices, is done by the Projector plugin (Plugins | Device Control | Projector).

Note
Many functions of the generically designed Projector plugin are not useful for the Mosaic. For normal use, one would just open the Projector plugin to go to the ROIs tab and open the Sequencing window.

Before you begin the calibration:

  • Make sure a camera has been installed using the Hardware Configuration Wizard.
  • In the Setup tab of the Projector plugin:
    • If your microscope system requires changing a property for the Mosaic projected light to reach your specimen (often if your imaging reflector cube is different from the mosaic reflector cube), create a Group and a Presets each for your Mosaic reflector and your epi imaging reflector. Assign the Core-ChannelGroup to that Group, and finally in the Phototargeting channel choose the Mosaic reflector preset.
    • If you added the Vincent shutter device in the Hardware Configuration Wizard, assign it to the Phototargeting shutter.

You may wish to refer to the Projector Plugin description page if you have not used it before. However, note that for the Mosaic:

  • Point and Shoot tab: only projects a fixed-sized round ROI on the live image window and offers no flexibility of shape type and size.
  • ROIs tab: is mainly used to open the Sequencing window. The Sequencing window has a super-set of the functionality of the other controls in the ROIs tab.

Focus on a test slide on the microscope stage. The mirror test slide is ideal since it provides a crisp reflection, but if you can't get a good image from it due to optical filters you can consider a uniform fluorescent slide. Click the Calibrate button. The Projector Plugin will move through a rectangular lattice of spots across the Mosaic array, illuminating them one by one. The corresponding position on the camera image will be automatically measured. During the calibration procedure, a small cross will be visible overlaid on each spot as it is located. When calibration is finished, the plugin will have acquired and stored a coordinate mapping from camera pixels to Mosaic pixels.

Sequencing window

The Andor Mosaic offers advanced sequencing capabilities. To open the Sequencing Window, in the ROIs tab of the Projector Plugin, click the Sequencing... button. The button also opens the ImageJ ROI Manager.

Figure: Sequencing window showing (1) ROI list (2) Create ROI Grid panel (3) Sequence table editor (4) Create Sequence panel (5) Control buttons on bottom

ROI list

Use the ROI Manager window to add, remove and update ROIs. If you are not as familiar with ImageJ ROIs or have been using the Mosaic in other software packages, read the Projector plugin's discussion about drawing multiple ImageJ ROIs.

The intention of the ROI list is to add more properties to each ROI. The list synchronizes itself to contain the same set of ROIs as the ROI Manager.

Column Description
Roi # Reference index number automatically generated. This gets referenced later on in the #Sequence table.
Name Copy of ROI name used in ROI Manager.
Mode The default FRAP ROIs appears for short periods of time, whereas Image ROIs are intended to be illuminated throughout the whole sequence.
Intensity Sets the projected light intensity level if you have PixelMode set to one of the gray scale settings.

Create ROI Grid

To aid a specific use case, this feature duplicates a ROI generating a rectangular grid (lattice) of ROIs. Draw the ROI you wish to duplicate in the upper-left corner of your intended grid, enter the number of ROIs across and down and spacing between lattice points.

Sequence table

Note
It's often better to use #Create Sequence to populate the sequence table instead of hand-filling an empty Sequence table. The Sequence table is being described first to introduce the nomenclature (particularly the "Time Slot") of the Create Sequence generator.
Column Description
Time Slot Reference index number generated by clicking the Generate Sequence button in the Create Sequence panel, or by the Add button under under the Sequence table.
ROIs "Roi #" value in #ROI list. This can also take a range of Roi #s, e.g. 1-3,5,7,9-11.
On Duration (ms) Illumination time.
Off Duration (ms) Off time after Time Slot
Loops Number of times the ROIs should be repeatedly illuminated within the Time Slot. To repeat the entire Sequence table, set the "Sequence Repeats" number below the Sequence table.

Create Sequence

ROI sequences consist of a time slots or steps. Within each time slot 1 or more ROIs can be illuminated.

Item Description
Sequence type Sequential illiminates each FRAP mode ROI in turn.

Cumulative illuminates the FRAP mode ROI as it progresses through the Time Slots, until all ROIs are illuminated.

Simultaneous mode simply shows all ROIs in a single step.
The remaining items are described in the Sequence table above (On Duration, Off Duration, Loops).

Click the Generate Sequence button to populate the Sequence table, below. All Image-type ROIs are included in every step. You can edit the image table to manipulate which ROIs appear in a Time Slot, the On and Off times, and the Loop Count. There are also buttons to Add, Clone, Delete, and re-order the Time Slots.

Control buttons

Below the Sequence table, you can specify:

Item Description
Sequence Repeats Number of many times the Sequence table should be repeated.
Sequence Trigger How the sequence should be triggered.
Upload Sequence Send the sequence and ROIs to the Mosaic device. Get in the habit of clicking this button to apply changes from the Sequence list or from updating ROIs in the ROI Manager.
Run/Stop Execute the sequence. Useful for previewing through the microscope eyepieces or "Live" image on the camera. This button should also be pressed to arm the device for an externally triggered sequence. After clicking this button the device should be prepared to receive an external trigger.
Attach to Acquisition/Detach Executes sequence when running Multi-dimensional acquisition.
Load/Save Exports and reload all settings (includes the ROIs).

Device Properties

Property Description
Exposure Pulse duration of mask in seconds. You would not often change this setting directly since the Sequencing window requires you to set the exposure time in the Sequence list, and the exposure value(s) there takes precedence. Changing this is useful for interactive use e.g. in the Projector > Setup tab.
OverlapMode Pulses mask when set to Off. Can allow static exposure when set to On.

The Off setting has the benefit of hardware timing accuracy, but it limits the maximum exposure to 200 seconds.

On, by definition, ignores the value of "Off Duration (ms)" in the Sequence window. When combined with setting the Exposure to 0, it exposes the mask constantly; if you have use of this ability one can create, say, an "Exposure Mode" group with a preset named something like "Static".
OperationMode Choose whether to use hardware or software memory. The default, Live, uses the software memory.

FrameSequence is used with the Sequence window (opening the sequence window automatically changes to this value for you). If you need the SequenceLoopCount to be infinite use ContinuousFrameSequence.

If using FrameIndexSource as Hardware, set to FrameMemory.
FrameIndexSource Setting this to Hardware allows switching between uploaded Frames using the TTL 26-pin D-sub breakout cable, by setting the "Frame Address [7:0]" BNC inputs. Requires OperationMode being set to FrameMemory.
PixelMode Switch between BlackAndWhite and several gray scale settings.
GrayScaleExposureTime Pulse duration of mask in seconds when setting PixelMode to a value other than BlackAndWhite.
InvertMode Inverts all uploaded masks before projecting. Invert means setting those DMD pixels outside of the 2D ROI On, and those within the 2D ROI Off.
SequenceLoopCount Number of times to repeat the entire uploaded Frame sequence. You don't need to adjust this since the Sequence window has a textbox for "Sequence Repeats" which takes precedence.
SequenceLoopSettings Shows result of clicking "Upload Sequence" from Sequence window; useful for debugging. Each "Time Slot" entry from the Sequence window list should appear as
[Time Slot] [On Duration] [Off Duration] [Number of Loops];
TriggerMode Switch between various internal and external TTL trigger settings which are detailed in the Mosaic manual.

Scripting

Neither the Projector plugin, nor the Sequencing window, exposes any API. Since they are written in Java, one could edit the Java code itself to add desired functionality. See writing plugins for Micro-Manager

The only scripting possible is that which is already built into MMCore, and thus the "upload bitmap mask" example script detailed below would work on any SLM device. The example script makes use of setSLMImage() and displaySLMImage(), but there are several more SLM functions which one can find by reading through the core documentation and searching for the word "SLM" in the javadoc page.

Upload bitmap mask

Create a binary mask from the ImageJ menu by creating a new image (File > New > Image...) and selecting 8-bit Black 800x600. Double-click the dropper tool on the ImageJ toolbar and make sure the current drawing color is white. To draw a freehand shape, double-click the paintbrush tool, set the thickness to, say, 20 pixels and sketch on the image with the paint brush.

Open the Script Panel GUI and paste the following code:

  import ij.IJ; // Allows access to basic ImageJ utilities.
  proc = IJ.getImage().getProcessor().duplicate(); // Read the current image.
  pixels = proc.getPixels(); // Extract pixels from ImageJ ImageProcessor object.
  mosaic = mmc.getSLMDevice(); // Get the installed name of the Mosaic device.
  mmc.setSLMImage(mosaic, pixels); // Upload the image to the Mosaic.
  mmc.displaySLMImage(mosaic); // Display the Mosaic.

Running this script will result in projecting the image you have just drawn onto the Mosaic.

If you are re-using a saved TIFF image, you need to open it using ImageJ's File menu (not Micro-Manager's) and again in the ImageJ menu change Image > Type to 8-bit instead of the default 32-bit (opening as 32-bit is possibly a bug in ImageJ?).

Click here to search for Mosaic on the Micro-Manager mailing list archive.

© Micro-Manager : Vale Lab, UCSF 2006-2011 | All Rights Reserved | Contact