s Dapple: Image Analysis Software for DNA Microarrays

Dapple: Image Analysis Software for DNA Microarrays

[Dapple screen shot]

What is it?

Dapple is a program for quantitating spots on a two-color DNA microarray image. Given a pair of images from a comparative hybridization, Dapple finds the individual spots on the image, evaluates their qualities, and quantifies their total fluorescent intensities.

Dapple is designed to work with microarrays on glass. The spot-finding techniques used are robust to uneven spot sizes and positional deviations caused by "wobbling" of the arraying robot, as well as image noise and artifacts. As long as your spots are consistently circular, Dapple has a good chance of finding them accurately.

Dapple judges the quality of putative spots automatically using a classifier trained to match the investigator's judgement. In other words, it attempts to replicate the decisions you would make, based on visual inspection of the array, about whether to keep or reject each spot. The inferred qualities of spots are displayed visually, so that the investigator can focus on evaluating a few potentially erroneous spots rather than having to inspect the entire array.

More detailed information on Dapple's methods is available in the technical report UWTR 2000-08-05, available below.

Please cite this report if you use Dapple in your own projects.


Dapple should be used as part of a comprehensive strategy for quantifying DNA array data. It does not deal with questions of error analysis and normalization, except insofar as it can identify its own probable spot-finding mistakes. If you are building an arraying facility, please take the time to characterize sources of error and quantitative variation in your process!

I hope that you find Dapple to be useful, but I doubt it will be perfectly adapted to your arraying system. Instead of trying to handle all possible variations from one lab to another, I have tried to make Dapple as flexible as possible. In particular, you are free to modify the source code to meet your needs, or extract pieces to add to your own spot finding program. I and my users are interested in incorporating your bug fixes and extensions into the code!

Implementation and Licensing

Dapple is implemented in the C++ language for UNIX-like operating systems. Development is done on Linux, but the program has been built successfully on AIX, Solaris, Tru64, and even MacOS X (all using g++). GUI widgets are provided by the Qt toolkit, while the FFTW library is used as part of the image analysis.

The version of Dapple available on this page is distributed under the GNU General Public License, which is mandated by its use of FFTW. If you are interested in using Dapple but don't want to be bound by the GPL's redistribution requirements, UW's Office of Technology Transfer / Software and Copyright Ventures can work out alternate licensing terms. It should be possible to do a more liberal "free for noncommercial use" license provided that someone pays my costs to buy non-Open Source licenses for Qt and FFTW.

Common Complaints

I can't build Dapple with a non-GNU make!

I don't go out of my way to support non-GNU versions of make, but please let me know if you encounter a problem. I've tried to remove gratuitous GNU-isms such as "make -C subdir" from the makefiles.

I can't build Dapple with my local C++ compiler!

If you're using an older C++ compiler that doesn't handle extensive template usage well, upgrade to a recent version of g++ (I prefer 3.x, x >= 2). A recent release of DEC C++ should be OK on Alpha machines. Also, don't forget that you must compile Dapple with the same compiler that was used to build Qt! Otherwise, you may get interesting linking or runtime errors.

I get dynamic linker errors when I try to load TIFF images!

I've heard of this problem occurring on Solaris. Try compiling with a static libtiff.a, either by making the whole compile static or by modifying the GELLIBS line in the Makefile to explicitly use libtiff.a instead of -ltiff.

Get it!

The latest version of Dapple is 0.88pre4 (recommended). Previous versions are also available in case the newest one doesn't work for you.

Changes in 0.88 vs 0.87:

Changes in 0.87 vs 0.86:

Changes in 0.86 vs 0.86beta2:

Changes in 0.86beta2 vs 0.85:

Changes in 0.85 vs 0.831:

Changes in 0.831 vs 0.81:

Note: if you grabbed the extremely short-lived v0.83 source release, please upgrade. The 16-bit linear TIFF handling was buggy.

Who am I?

I am a professor in the Department of Computer Science and Engineering at Washington University in St. Louis. I wrote the first version of Dapple in my grad student days as part of my qualifying exam, lo these many years ago. I still occasionally maintain Dapple, but my main research interests are currently in the field of accelerating inexact matching algorithms for large sequence comparison and motif finding.

Jeremy Buhler (jbuhler AT wustl DOT edu)
Last update: 4/24/2004