The stack browser manages collections of stacks. A stack corresponds to a single .tif file on your hard-drive. A collection of stacks can be created from:
- All the stacks in a hard-drive folder.
- A canvas acquired with mp285.
- A single stack that you drag and drop onto the Igor Pro desktop icon.
The simplest way to get started with the stack browser is to drag and drop a stack .tif file onto the Igor Pro application icon. Your stack will load, display, and get appended to the stack browser in the collection named ‘DragAndDrop’.
The list on the left shows each collection of stacks. Selecting a collection will show each individual stack in the collection in the list on the right.
Display Stack. Displays the selected stack.
Unload. Unloads the selected stack from memory. Shift+Click will unload all stacks from the selected folder.
Stacks that are loaded into memory are indicated with an ‘X’ in the D column (D is for data).
(i) Stacks are not removed from memory when you close their stack window. To unload a stack you must explicitly use the ‘Unload’ button.
(ii) Stacks that are currently displayed in their own stack window cannot be unloaded from memory. You must first close the stack window and then use the ‘Unload’ button.
(iii) Once a stack belongs to a collection you can unload it to conserve memory. The next time you ‘Display Stack’ the stack it will automatically be loaded into memory.
i. Displays a ‘Stack Info’ window with scan parameters. Shift+Click will display scan parameters as a text table.
Display Canvas. Displays a canvas of all stacks contained in a collection. If the Z checkbox is checked, shows a Y/Z side view of the canvas. See mp285 on how to construct a canvas during image acquisition and Canvas.
Load Scan Image Directory. Loads a directory (hard-drive folder) of ScanImage .tif stacks into a single collection. Once a directory of ScanImage stacks is loaded you can create a canvas from these stacks using ‘Make Canvas’.
Notes on Canvas. The purpose of a canvas is to put a collection of stacks into their position within a motor space. For now the only way to make a canvas (with each stacks motor position) is to use a collection of stacks originally acquired with ScanImage and a motorized objective like the mp285 motor controller that is standard with microscopes purchased from Sutter Instruments. When making a canvas from a directory of .tif files, be sure to set ‘2p um/pixel 1024@1x’ to the x/y voxel size of a 1024 pixel by 1024 pixel stack at zoom of 1.0.
Make Canvas. Makes a canvas from a collection of stacks. This only works if your original stacks are acquired with ScanImage using an mp285 motor controller.
Load Canvas. Loads a canvas from a canvas file. A canvas file is created when using mp285. This is very powerful in that when you use mp285 while acquiring your stacks you can then load and browse all the stacks within an imaging session with one click.
- Refresh. Refreshes the list of stacks. [depreciated]
- HDD. Opens the hard-drive folder containing your stacks. Opens in the Finder on OS X and in Explorer on Microsoft Windows.
- Report. Creates a text table of some (not all) scan parameters for all stacks in the list, one line per stack. You can copy/paste this database into your favorite text editor or spreadsheet.
The Panels section gives you access to additional interface panels/windows:
- Process. Opens the process image window allowing you to set default visual behavior of your stacks.
- Scale. Opens the Scale Window, a general purpose interface that allows you to fine tune how your plots are displayed. Setting/Getting: x-axis, y-axis, window size, font size, background color, etc.
- Options. Opens the main stack browser options.
- Series. Opens a panel that allows you to browse sessions on your hard-drive. [advanced]
Memory. As more and more stacks are loaded, Igor will eventually run out of memory. By default, closing a stack window does not unload the stack from memory. To conserve memory, select a stack in the stack list and press the ‘Unload‘ button. To unload all stacks in a canvas use shift+Unload. Stacks that are currently displayed in a stack window will never be unloaded from memory, close the stack window and press shift+Unload.
Again, by default stacks are not unloaded from memory when their stack window is closed (this is designed to save time the next time the stack window is opened). To make stacks unload from memory when their stack windows are closed, see the Stack Browser Options -> ‘Stack Browser’ -> check box ‘Kill Stack (from memory) on close’.
By default ScanImage acquires 11-bit images and these images in turn are opened into Igor as 16-bit images (same story in Fiji/ImageJ). To really conserve memory and allow many more stacks to be opened, all the stacks in a hard-drive folder can be copied to 8-bit versions. [Use bBatchCovertTo8Bitv3.py to do this]. Once this is done, the 8-bit versions will be loaded by default. The loading of the original versus its 8-bit version can be controlled in Stack Browser Options -> Stack Browser -> ‘Try Loading 8 bit’.
On the Mac, memory is limited in Igor and there is nothing you can do about it. On Windows 7 memory is limited in the 32-bit version of Igor. To greatly expand the amount of memory and thus the number of stacks that can be opened, use the 64-bit version of Igor Pro. This is the 64-bit version of the program itself, it is not sufficient to be running Windows 7 64-bit, the Igor 64-bit program needs to be installed.
X/Y Stack Scale. When loading a directory of ScanImage stacks with ‘Load ScanImage Directory’ and then making a canvas using ‘Make Canvas’, the x/y scale of the stacks needs to be specified with ‘2p um/pixel 1024@1x‘. This value is the x/y voxel size when a image/stack is scanned at 1024 by 1024 pixels at a zoom of 1.0. The actual x/y voxel size of each stack is then calculated by linearly scaling this value by its zoom.
All coordinates within a canvas are in um. The x/y position of each stack in this ‘motor space’ is given by the x/y motor coordinates saved in each .tif file. We also need to know the x/y voxel size (um) of each stack in order to scale its image/square within the canvas properly. Thus, when building a canvas from a directory of scan image .tif files, the x/y voxel scaling needs to be specified.
When building a canvas from a directory of scanimage stacks, all stacks within the canvas (within a single imaging session) are assumed be taken with the same objective.