- Capture single frame video images.
- Import ScanImage .tif files.
- Create a Canvas that visually places each video image and ScanImage .tif file into a unified ‘motor space’.
- Previous canvases can be loaded and displayed using the Stack Browser.
- Define different objectives.
- Quickly and easily acquire the same fields-of-view both within and between time-points spanning minutes, hours, days and months.
- Windows 7 or Windows XP
- Igor Pro (web page)
- Sutter Instruments mp285 motor controller (web page)
- ScanImage 3.6 – 3.8 (web page)
- A video to usb dongle that Igor can talk to.
- Third-party software to create virtual serial ports to share the mp285 motor controller.
Video to usb. This can be very cheap, we use EasyCap DC60 found here ($10-$20). Converters like this take an analog video signal, convert it to USB and then single frames or video is captured within Igor Pro using their free driver.
Virtual Serial Ports. Both ScanImage and Igor need to read the position and move the motorized objective (usually a Sutter mp285). This is done by communicating with one physical serial-port , a COM port. Microsoft Windows only allows one program to communicate with each physical serial-port but we need both Matlab and Igor to communicate with the same COM port. Third-party software must be used to split the physical COM port into two virtual ports, one for Matlab and one for Igor. There are a few different programs to create multiple COM ports from one physical COM port.
- Windows 7: Serial Splitter 5.0 (Eltima Software), $100. As of Aug 2014 this is what we are using and it is working well.
- Windows 7: Serial Port Splitter from www.fabulatech.com, PAY
- Windows XP : Etima Software has a 32bit version, FREE
- com0com, an open source project. If anyone gets this working, please let us know. FREE
Double click mp285_2p.ipf, select menu ‘mp285->Init’.
The default behavior of mp285 Canvas can be set by loading a user file. User files are plain text files and can be edited by hand. Here is an example user file:
#mp285 configuration file #Robert Cudmore #create Dec 31, 2013 #save path root:mp285:gSavePath="c:Users:cudmore:data:" #session db path root:bStack:gRootHDD="F:Users:cudmore:data:" #canvas #allow video selections root:Canvas:gAllowVideoSel = 0 #in canvas each stack square gets a number (if == 0 then # is object index in the canvas) root:Canvas:gScanImageIndexForName = 1 #display motor control bar by default root:Canvas:gShowMotorByDefault = 1 #right click a canvas and select 'set window width' root:Canvas:gWindowWidth = 474.75 #right click a stack and select 'set window size' root:Scale:width = 767.5 # #you DO NOT set these here, they are set when an Objective is loaded # see /mp285/Objectives/ObjectiveList.txt # #video size (um) #root:mp285:imageWidth = 428.4 #root:mp285:imageHeight = 344.8 #step size (um) for motor commands #root:mp285:stepX = 200 #root:mp285:stepy = 150 #root:mp285:stepz = 10
Read Position. Read the current motor position.
Arrow Buttons. Move the mp285 motor the specified distance. All units are in um. The four arrows in the left pane move within the image plane (left, right, front, back). The two arrows in the right plane move in depth/z (up and down).
Preview. Open the video preview window
Capture Image. Capture a single frame from the video preview window. The image will be placed in the mp285 canvas using the current motor position.
Display Canvas. Display the current mp285 canvas. The current canvas is created when a session is initialized with ‘Initialize Session’.
User Save Group
Load. Load a user file. User files are .txt files that define the default behavior of mp285 canvas.
Initialize Session. Initialize a new session with name specified in ‘Session ID’. Each new session will have its own canvas and hard-drive folder.
HDD. Show the hard-disk-drive folder for the current session.
Options. Open mp285 Options panel.
Stack Browser. Open the Stack Browser panel
Process. Open the Process panel.
mp285 canvas with motor commands
[woops, need to upload new image with motor toolbar]
Serial Port (mp285) group.
Controls the serial port. If the wrong port is specified, it can be changed by entering the correct COM port in the ‘Serial Port’ text field.
Specifies the size of a video image in both pixels and um.
Refresh 2P Squares Group.
Display This Channel. The default channel (1 or 2) that will be displayed in the mp285 canvas.
Auto Save Canvas and Notebook. The canvas and notebook will be saved each time ‘Import ScanImage’ button is pressed.
Stack Window Size. Specifies the default size of stack windows. It is useful to match this size to the default size of each channel window in ScanImage.
Each row is a different objective with:
Name. Name of the objective. Usually 20x, 40x, 5x, etc.
Width. Width of field of view of objective (um)
Height. Height of field of view of objective (um)
Stepx and Stepy. Distance the mp285 motor will move when a movement arrow button is pressed. These values also appear in the mp285 canvas motor bar.
voxelsize. For importing ScanImage .tif files. This is the x/y voxel size (um) of a ScanImage stack taken at 1x magnification and 1024 ‘pixels per line’, 1024 ‘lines per frame’. This value is used to linearly scale all other ScanImage imports to arbitrary magnification and ‘lines per frame’/’pixels per line’.
-If you enter a space in your scanimage file name, your mp285 canvas will not work properly. If you realize this after you have already created a canvas with ‘Import Scanimage’, manually change the space in each scan image .tif file (on the hard-drive) to an underscore (_). Do NOT simply delete the space, you must change it to an underscore.