We have developed an algorithm and sofware package, peak quantification with statistical comparative analysis (P-SCAN), for quantification and analysis of a wide variety of commercially available and special-purpose cDNA microarrays. The program is oriented toward experiments using radiolabelled probes (P32 or P33), nylon filter-based arrays and image data acquired from phosphorimager devices, but has also been adapted to experiments using fluorescent probes, glass-based arrays and laser scanners. The program correctly reads the Molecular Dynamics, Fuji and TIFF data storage formats. The peak quantification strategy employs a hybrid of automated and interactive methods for determination of the placement of each spot in the array, and permits several choices of algorithms for quantifying individual spots. The strategy is designed to minimize operator time and effort in processing each array while maintaining data quality. Statistical comparison of results of two hybridizations is shown in a scatterplot of normalized log-intensities together with lists of genes yielding extreme ratios, after accounting for spots falling below the background level. Output files are generated for use in subsequent analysis by such statistical packages as JMP™. These files merge information from several sources, including spot address, spot location, clone identifier, gene name if available, spot intensity, normalized intensity, intensity ratios and log-ratios. Simultaneous visualization of the original filter layout, the log-intensity scatterplot and the table of spot intensities is thereby facilitated. One may choose genes by name and highlight the corresponding spots in the scatterplot and filter layout, or choose spots by relative intensity or by array position and highlight them in the other two representations. This approach has proven invaluable in recognizing experimental and image artefacts while still uncovering real expression changes. We have applied this approach to more than 400 sets of experimental data drawn from almost 24 laboratories at the NIH, using Genome Systems, Clontech and Research Genetics commercial arrays on nylon membranes, as well as special-purpose arrays on glass. Our experience has demonstrated the value of performing independent replicate hybridization experiments to distinguish reproducible expression level changes from experimental variability and artefact. The P-SCAN program runs on many computer platforms (Macintosh™, Windows™ or Unix machines) and source code is freely available on the web (http://abs.cit.nih.gov). P-SCAN is written using the commercial package MATLAB™ available from The Math Works. A self-contained Java version of P-SCAN is under development.