140 likes | 262 Views
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
E N D
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 l 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 40 x Water Immersion Objective 500 mm Zeiss Axioplan 2 Microscope Cooled CCD Camera Fuzzy images, severe bleaching Multiphoton Laser Scanning Fluorescence Microscope z-sectioning
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 multiphoton • microscopes 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. Methods • Nguyen, Q.-T. and Kleinfeld, D. (2008) Book chapter in "In vivo optical imaging of brain function"
MPScope: Description MPScope = MPScan + MPView + MPFile Microsoft 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 with • Windows 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 inside • a 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, programmable • Property 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 AVI BMP 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++ clients • A 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- enabled • application (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 = • 0 • frameCount = invoke(mpfile, 'ReadParameter', 'Frame Count') • frameCount = • 150
Conclusion • What we learned: • It's OK to have a proprietary file format as long as there are • software translators for major image formats and software • bridges 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 of • the Microsoft Open Specification Promise (2007)