SOFTWARE REVIEW

 

IGOR Pro 3.14

Reviewed by Mark Rand

logo

Posted September 17, 1999 · Issue 62


Overall scores
Installation Excellent
Learning curve
(beginner who can Web surf and word process)
Steep
Technical support Excellent
Features Excellent
Customizability Excellent
Utility to biologists Very good
Value for money Excellent

Overview

IGOR Pro from WaveMetrics, Inc., is an integrated program for visualizing, analyzing, transforming, and presenting scientific data. Originally developed for the Macintosh, Igor has recently been released for Windows 95 and NT with a virtually identical user interface and feature set. Igor can import data from a wide variety of sources; additionally, users can create custom data-loading routines. Among Igor's many analysis features are tools for curve-fitting and -smoothing, Fourier transform, waveform arithmetic, and image-analysis operations. Igor also offers a powerful, interactive C-like programming environment for rapid development of macro procedures.

The program's organization, documentation capabilities, and data management have been carefully designed to aid users in analyzing and annotating complex experiments. Data, graphs, tables, notebooks, and page layouts for one experiment are automatically stored in a single file, and experiment-specific window-creation commands are executed upon reopening an experiment file. Igor's interface is highly customizable via user-created dialog boxes and control panels. Scientific graphs are easily created in publication-ready format without the need for touch-up in a drawing program. Although some users might find Igor's power and complexity somewhat daunting, this is offset by a well-written manual and online help system, as well as by WaveMetrics' excellent customer support.

Available platforms

Windows 95 or higher, Windows NT 4.0 or higher, or Macintosh System 7.0 or higher

System requirements

Macintosh
CD-ROM for installation. 68020 processor running System 7 or higher, with minimum 8 Mb program memory allocation. A math coprocessor or PowerPC processor is required for the Graphical Slicer and Surface Plotter XOPs.

Windows
CD-ROM for installation. PC capable of running Windows 95 or NT 4.0 or higher, with at least 32 Mb of system memory. Monitor of at least 640 x 480 pixels displaying at least 256 colors.

Test platformsPower Macintosh with 603e/200-MHz CPU, System 8.1, and 16 Mb dedicated program memory. Also tested on a Dell PC with a Pentium 166-MHz CPU, Windows 95, and 96 Mb of system memory.

Price

$450 commercial, $340 academic, $85 student

How Long Did It Take to Learn to Use It Productively?

A minimum of several weeks of dedicated use.

Product Quality

Ease of installation Excellent
User friendliness Good
Interface Graphical user interface (GUI) and command line
Intuitiveness of design Good

Customizability

Excellent.

Ability to Program in Scripts, Add Extension Modules, etc.

Programming using Igor Pro's built-in C-like language adds detailed control of objects and scripted/recorded actions, and includes data storage elements (variables, strings, and waves), assignment statements, flow control (conditionals and looping), built-in and external operations and functions, and the ability to define and call subroutines. User-written functions are compiled and, therefore, execute very quickly. Writing, compiling, and testing of functions is smoothly interactive. Overall, Igor's programming functions are sophisticated, robust, and extremely capable; there's very little that can't be customized and controlled via its programming language.

Ability to Import and Export in Different File Formats

Data are typically acquired from some type of scientific instrument and imported from a file. Supported file formats include binary, text, AIFF, Excel, FITS, HDF, JCAMP, MatLab, Nicolet, PICT, TIFF, and Sun Raster, and custom data-importing routines can be written for almost any other file type. WaveMetrics also offers an optional NIDAQ Tools module that can be used to acquire waves directly from National Instruments boards. Igor can even create a scrolling virtual chart recorder for data acquisition and display, although this is a relatively complex exercise requiring substantial programming effort. Graphs may be exported in normal, expanded, and high-resolution PICT formats (Macintosh), EMF, WMF, and BMP formats (Windows), or PNG and EPS formats (both platforms). The manual discusses why most graphics file formats do not exchange universally and transparently with optimal resolution between programs on each platform (not to mention between the two platforms), and gives helpful suggestions for troubleshooting this larger-than-Igor problem.

Useful or Unusual Features

Figure 1
True to its scientific roots, Igor's user interface is relatively spartan (figure 1). There are no toolbars, Macintosh three-dimensional window elements are absent or minimal, and the use of color is strictly functional. Program control is via a unique combination of graphical and command-line interfaces; in most cases, either input method may be used to execute a particular function. As menu commands and window buttons are used in the graphical interface, command-line equivalents are generated and displayed in the command window, which also records the history of the work session. Simple macro procedures can be built using commands copied from the work-session history, similar to shell scripting in Unix.

Igor's central concept is that of the wave, a one-dimensional array of numbers sampled at equal intervals. Although Igor also provides many functions for two-dimensional data arrays with irregular intervals, it is particularly powerful when working with one-dimensional waves. By storing y data values and computing the x scaling interval, Igor provides high-speed manipulation and display of very large data sets. The program's capabilities are quite impressive in this regard, encompassing binary data files with sizes upwards of 100 Mb.

Once data has been imported or entered into Igor, it can be graphed and customized easily using the program's graphical interface. Igor's graph creation and modification dialog boxes contain commands and "tweaks" designed to address common needs; they're easy to figure out and make quick work of most settings and adjustments. The graph controls have many nice touches, and almost any characteristic or element of a graph may be precisely controlled. The only nonintuitive aspect of graph creation is working with text. Instead of providing a standard graphics text tool, Igor uses a dialog box with embedded escape-sequence commands to format text. Although this command-line implementation works fine, it is somewhat arcane for the majority of users accustomed to WYSIWYG text editing in either a Windows or Macintosh environment.

Figure 2
A very useful feature of Igor is that it can dynamically explore graphed data while maintaining a well-formatted layout. For example, users can specify an approximate number of ticks for each axis and the program will keep close to these specifications over a wide range of rescaled or zoomed window sizes. Re-dimensioning a graph results in other intelligent changes: font sizes of axis labels are optimized for the altered graph size, and tick marks and labels are reduced in density so as not to overcrowd themselves if the graph is made smaller. Click-dragging in part of the graph creates a selection area that can be zoomed in or out using several different scaling options (figure 2). Data within zoomed-in areas can be panned by holding an option key down while dragging with the mouse; the x- and y-axis values are updated accordingly. Igor's drawing tools allow user-created objects or text to be anchored and scaled proportionately with the graph as it is resized, although zooming the graph may require some manual adjustments of the anchored objects afterward. Igor even automatically updates axis labels when appropriate - for example, changing "milliseconds" to "microseconds" after zooming in. If you spend a lot of time fine-tuning graphs, you'll greatly appreciate WaveMetrics' attention to these details.

Apart from statistics, Igor provides a full complement of data-analysis tools. The program has an extensive array of built-in curve-fitting functions, as well as many user-defined options for creating custom curve fits. Users can specify various holding coefficients, weighting values, and constraints for fitting data, and can plot residuals, confidence bands, estimates of error, covariance matrixes, correlation matrixes, or multivariate fits. Igor's analysis functions include differentiation and integration of waves, wave arithmetic, calculation of areas and means, Fourier transforms, generation of power spectra, convolution, magnitude and phase calculations, wave descriptive statistics, peak measurements, sorting, function plots, and smoothing algorithms. Special graph cursors can be placed on plotted data and moved through it in order to read x-y values or to define a wave segment for measurements. Igor also has a few functions for performing statistical tests (notably Student's t, chi-squared, and Pearson's), although in most cases you'll probably want to export your data to other programs for statistical analysis.

All aspects of the program can be controlled via Igor's command-line interface, which shadows the operation of its graphical interface. For example, editing a custom-made control panel with the program's graphics tools and saving the changes results in a stream of information written to a procedure text file: the control panel's size, position, color, drawn elements, buttons, associated macros, etc. The panel layout can then be fine-tuned using Igor's text editor, similar to editing HTML code by hand after generating it in a graphical HTML program. Likewise, a graph window and its contents can be saved in a re-creation macro in order to regenerate the window later, or to substitute different data using the same graph layout.

Examining an Igor-generated procedure text file is especially useful for learning how to write procedures in Igor's programming language. Using a syntax similar to C, this language adds detailed control of objects and scripted/recorded actions, and includes data storage elements (variables, strings, and waves), assignment statements, flow control functions (conditionals and looping), built-in and external operations and functions, and the ability to define and call subroutines. User-written functions are compiled and therefore execute very quickly. Writing, compiling, and testing functions is smoothly interactive. Igor's editor could benefit from a few minor improvements: colored text highlighting and searches across multiple procedure files immediately come to mind. Overall, Igor's programming functions are sophisticated, robust, and extremely capable.

Figure 3
User-created procedures can be added to Igor's menus or linked to buttons on custom control panels so that they can be invoked via the program's graphical interface (figure 3). This means that the person performing the analysis needn't be concerned with the hairy command-line details, and can analyze data without having to learn Igor commands. Bearing this in mind, it might prove cost-effective to hire someone with moderately good programming skills to create an easy-to-use graphical front end for your Igor analysis procedures.

The Windows and Macintosh versions of Igor Pro 3.13 and higher use the same experiment-file format, so files are interchangeable between platforms. A notable exception is that exported or embedded graphics files do not translate well between platforms unless they have been saved in PNG format. In operation the Macintosh and Windows versions of Igor have identical features and a nearly identical user interface. Procedure files are also highly compatible between the two versions, allowing users to share custom procedures across platforms.

Limitations

Igor has very few specific limitations, and those encountered were very minor. Its biggest drawback is that you have to write programming procedures to do detailed data analysis, although graphing can be done easily without any programming. Note that it may not actually be necessary to write analysis procedures from scratch; the Igor user contributions site has dozens of user-created Igor procedures available for downloading and is worth checking to see if you can find something suited to your needs.

Comparisons with Similar Software

Not applicable.

Technical Support and Documentation

Figure 4

Support and documentation for the program are excellent. WaveMetrics is highly attentive to users' comments and suggestions; bugs are quickly addressed and fixed, sometimes within hours of an initial report. In addition to Igor's on-line help system (figure 4), the Macintosh version has balloon help and the Windows version features tool tips, status line help, and context-sensitive help. The manual is comprehensive and well written. It provides useful examples, detailed references, and answers to common questions, and is notably candid in discussing the program's known limitations. Since these aids are supplemented by WaveMetrics' e-mail technical support and Igor's Internet mailing list, an impressive array of documentation, assistance, and expertise is available. WaveMetrics also has a toll number for technical support during business hours, Pacific Standard Time. In my experience WaveMetrics' support was polite, helpful, and readily matched the level of effort expended to learn the program.

Target Users

Igor's lean workstation look is no accident. Engineers and physicists are Igor's principal audience, and the program addresses their needs exceptionally well. Igor also has a fairly large proportion of biologist end users; in an informal poll of the Igor mailing list, one-third of respondents said they used it for biology-related research, with electrophysiology being the most common application. Other cited biological uses included HPLC analysis, atomic force microscopy control and analysis, neuroanatomy measurements, and intracellular measurements of ion-sensitive dyes. Igor has even been used for dynamical display of three-dimensional kinematic graphs of running lizards. In general, Igor does a superior job of graphing and analyzing large blocks of data acquired over regular intervals of time or space, and may therefore be usefully applied to many areas of biological research.

Comments

IGOR Pro 3.14 excels at graphing and analyzing large scientific data sets. The program's detailed functions and programming language offer impressive capabilities for data analysis, and its graphing tools provide exceptional control of data layout for generating publication-ready figures. Igor's industrial-strength analysis procedures are best tapped by those with programming experience. Those who are less programming-savvy should be able to define and implement their needs with help from the program's numerous support resources listed above; however, this may require substantial effort. Fortunately, Igor rewards committed use. Once you're over the hurdle of writing data analysis procedures, Igor's day-to-day use is transparently simple and powerful.


Publisher information

WaveMetrics, Inc.
P.O. Box 2088
Lake Oswego, OR 97035
Tel: (503) 620-3001
Fax: (503) 620-6754

Web site: www.wavemetrics.com


Mark Rand is applications manager for biotechnology products at Applied Precision Inc., Issaquah, Washington. His research interests include the study of ion homeostasis in the central nervous system using confocal microscopy and ratiometric imaging techniques.


Want to see a review of particular software? Send a suggestion.

Previous Beagle Software Reviews

Omiga 1.1.3 for Windows
Reviewed by Gestur Vidarsson (Posted September 3, 1999 · Issue 61)
Oligo 6.4
Reviewed by Paul Muhlrad (Posted August 6, 1999 · Issue 60)
EndNote 3.1 for Macintosh
Reviewed by Ellen M. Quardokus (Posted July 23, 1999 · Issue 59)
Spotfire Pro 4.0
Reviewed by Aydemir Akin (Posted July 9, 1999 · Issue 58)
Bioinformatics: Guide for Evaluating Bioinformatic Software
Reviewed by Steve Bottomley (Posted June 11, 1999 · Issue 56)
ColorIt! 4.01 for Macintosh
Reviewed by Ellen M. Quardokus (Posted May 28, 1999 · Issue 55)

more