

The primary goal of obtaining the images as Igor waves appears to work for most scan types that we use. The complexity of the *.lsm format means that only a small subset of possible file types can be tested. A list of the image wave names are stored in the text wave "root:LSMread:image_names". The calling program should move or store the image waves in "root:LSMimages" prior to reading in the next *.lsm file (which will replace the existing images with new ones).
#Lsm image browser for mac full#
An example of obtaining the full pathname is shown in the function "readLSM()". In this mode, the only routine accessible (i.e., not static) from the calling program is readLSMfile(fnameStr, fillWavenote) where "fnameStr" is a string containing the complete file pathname and "fillWavenote" is a variable (Boolean) specifying whether the wave note should be populated with meta data. The compiler directive "#undef useAsModule" should be changed to "#define useAsModule" to suppress unnecessary menu items. This is especially true for "root:LSMread" as global variables and waves, at this time, don't have proper initialization routines. It is important to copy the three data folders mentioned above to the new project (using the Data Browser item Browse Expt…). Briefly, the Procedure is saved to an Igor *.ipf file and attached to new project. Directions for doing so are included in the code.
#Lsm image browser for mac code#
In the second mode, the code can be used as module for another project. In this mode, the Data->Data Browser can be used to good advantage for examining the converted data. A set of formatted tables are available that show information useful for debugging or extending the code. Global variables are stored in the data folder "root:LSMread". Image waves (2D or 3D) and meta data (stirngs or text waves) are stored in the data folder "root:LSMimages" and "root:LSMmetaData", respectively. This mode is used for program development and testing. As a standalone program (what is downloaded), there is one command in the "Macros" menu that is used to open and read a single *.lsm file (possibly containing many images).

Only a subset of the data are extracted into the wave note although the entire meta data information obtained are available in the data folder "root:LSMmetadata" and the string variable "root:LSMread:scanInfo_store". Meta data are stored via a linked list meaning that the whole structure must be traversed (i.e., there are no fixed offsets) regardless of what information is sought. Scan types 0-4 are supported in the current version ( 0 = xy, 1 = xz, 2 = line scan, 3 = xy time series, 4 = xz time series). Images are stored according to scan type (0-10). The document is somewhat out of date but provides a good explanation of the general architecture of the format. The most useful document was obtained at. Sources of information are listed in the comment section of the code. The *.lsm format is fairly complex and it is difficult to obtain accurate documentation that specify the entire format. Note that bit order is different on Intel vs PPC computers but this is accounted for in the routine readLSMfile using the IgorInfo(4) function.
#Lsm image browser for mac mac#
The code has had limited testing on Mac PPC, Mac Intel, and Windows Intel. In this document, meta data refer to data associated with the image such as laser power, detector gain, etc., rather than spectral data acquired using the META detector in Zeiss LSM510 systems. Individual parameters in the wave note can be extracted using the Igor functions StringByKey and NumberByKey. A subset of the meta data can be optionally stored as a wave note with each image. Meta data are stored in strings or text waves. Images are stored as Igor 2D or 3D (stacks) waves. The LSMreader project is designed to open and read *.lsm files created by Zeiss LSM laser scanning confocal microscopes.
