Post on 17-Dec-2015
Interoperability of Imaging Data File Formats:The MPScope Case
Quoc-Thang NGUYEN
Physics Department, UCSD
Multiphoton laser fluorescence scanning microscopy.
• Multiphoton Laser Fluorescence Scanning Microscope (MPLFSM):
Focus high energy, femtosecond laser pulse to excite fluorescent dye:
2 photons @ 800 nm ~ 1 photon @ 400 nm
• MPLFSM versus other Fluorescence Microscopes:
No out of focus z-sectioning, sharp contrast excitation
Longer Better penetration in scattering tissue
Smaller excitation Less dye bleaching volume Better resolution
More photons collected
Brightfield vs. Multiphoton
Trigeminal Ganglion Neurons loaded with Calcium Green
Zeiss Axioplan 2Microscope
Cooled CCD CameraFuzzy images, severe bleaching
Multiphoton LaserScanning Fluorescence
Microscopez-sectioning
500
m40 xWater
ImmersionObjective
Custom-built multiphoton microscopes
Used in Neuroscience, Immunology, Developmental Biology...
Commercial two-photon scopes: $750K
Custom-made 2P scope: <$250K
Better optics, detectors and layout for in vivo/in vitro experiments. Extensive customization (bringing other laser lines etc...)
The MPScope Software Suite
Software choice for custom multiphoton microscope was limited:
- ScanImage (K. Svoboda's lab - Matlab)- LabView based software
MPScope:- Comprehensive suite of programs to control custom multiphotonmicroscopes and analyze results- Downloaded by ~ 50 laboratories worldwide (executable or source code)- Extensive community, now on NITRC- Commercial scopes using MPScope
Nguyen et al. (2006) MPScope: a versatile software suite for multiphoton microscopy. J. Neurosci. MethodsNguyen, Q.-T. and Kleinfeld, D. (2008) Book chapter in "In vivo optical imaging of brain function"
MPScope: Description
MPScope =
MPScan
+
MPView
+
MPFileMicrosoft Windows Platform
Important features of MPScope
High performance suite of software:
- Very fast, compact (native compiled code)- Symmetrical line scans for fast frame rate- Easy deployment: no need for run-time libraries- Professional looking GUI- Supports wide variety of microscope hardware- Multithreaded- Intel Integrated Performance Primitive Library
COM (Component Object Model) -based technologies:
- ActiveX Automation client and server- ActiveX Scripting- Structured Storage
File Format Considerations
Goal of File Format :
Uncompromizing performance and seamless integration withWindows to allow different types of data (imaging, electrophys)to be stored
Native (i.e., binary with Intel byte ordering)- Fast- Opaque header
Text/XML-based data file:- Bulky (storing binary data is convoluted)- Slower
The MPScope File Format (I)
Structured Storage: "A File System Inside a File"
- COM: Component Object Model (Windows)- Compound Files: Implementation of Structured Storage
Structured Storage
- Hierarchical organizations of folders and data streams insidea data file- Previously used as the Microsoft Office file format mechanism,CAD programs, etc...
The MPScope File Format (II)"A File System Inside a File"
- Extensible file structure (displacement deltas)
- Allow e-phys, imaging + other info to be stored independently
- Queriable, extensible, programmableProperty Information Stream
Solves the opaque, non-extensible header problem!Data mining
Interoperability with other applications (I)
Data Interchange Via Disk File
MPScan (acquisition):- Save as BMP file
MPView:- Save as: TIFF
AVIBMP
Convenient, but ackward and slow!
Interoperability with other applications (II)
Data Interchange from adressing space to adressing space
- Faster, more accurate memory to memory transfer- ActiveX Automation + ActiveX Scripting
Possibilities:
- MPView -> Matlab (images to matrices automatically)One mouse click
- MPFile.OCX -> Matlab, Visual Basic, C++ clientsA few lines of code (high-level component)
- MPScan -> Header additions in near real-time
- MPScan -> MySQL database for logging files
- MPScan -> whole frames to clients in near real-time
Interoperability with other applications (III)
The MPFILE.OCX component
- ActiveX Automation standard component
- Opens MPScope files from any ActiveX Automation- enabledapplication (Matlab, C/C++, Visual Basic, Delphi)
- High-level interface, no need to think about headers, file offsets
- Backward and forward compatible
-Easy to use (Matlab example):f = figure( [300, 300, 500, 500])mpfile = actxcontrol('MPFile.Data', [0, 0, 500, 500], f)openResult = invoke(mpfile, 'OpenMPFile', 'c:\MCC\050105_006.MPD')openResult =
0frameCount = invoke(mpfile, 'ReadParameter', 'Frame Count')frameCount =
150
ConclusionWhat we learned:
It's OK to have a proprietary file format as long as there aresoftware translators for major image formats and softwarebridges to other applications.
Future Directions:
- Enhanced Windows Integration.
Thumbnail images in Explorer, Windows 64-bit - Cross-Platform Tools for Mac OSX and Linux.
Java libraries for reading Compound Files (Apache POIFS).
Compound File specs opened by Microsoft as part ofthe Microsoft Open Specification Promise (2007)