The old adage that “A picture is worth a 1000 words” might well be stated today to as “A visualization of your data is worth a 1000 print outs”. While there are many programs in the Dazzler system to produce ASCII text displays of your reads and their overlaps with each other, I have found that it is hugely more powerful to look at pile-o-grams and visualize the quality of the matches, the intrinsic QVs of a read, and any mask intervals produced by programs such as the repeat maskers or the forthcoming scrubber. To this end I’m releasing today DaViewer that is a Qt-implemented user interface for seeing Dazzler piles and associated information. Unlike other modules, this one does have a dependency on the Qt library, which you can download and install for free here. I developed it under Qt5.4 and have recently tested it with Qt5.6 (latest version) under Mac OS X. The library and my C++ code should compile and run under any OS, but this has not been tested, so I’d appreciate reports of porting problems, and of course, any patches. In this post I give a brief overview of what the DaViewer can do, and refer you to the manual page for detailed documentation.
In brief, DaViewer allows you to view any subset of the information in a given .las file of local alignments computed by the daligner or the forth coming damapper, and any track information associated with the read database(s) that were compared to produce the local alignments (LAs). As an example here is a screen showing several overlap piles (click on the image to see a bigger view of it):
The viewer has a concept of a palette that controls the color of all the elements on a screen and you can set this up according to how you like to see the data. I prefer a black background with primary colors for the foreground, but in the example below I set the palette so that the background is white and adjusted the foreground colors accordingly:With the query panel you can zoom to any given read or range of reads, and when you zoom in far enough for the display to be meaningful you see (a) a heat map displaying the quality of all trace point interval matches, (b) a “tri-state” color map of the quality values of read 19 for each trace point (as computed by DASqv), and (c) a grid-spacer (if the appropriate option is turned on). Moreover, you can ask the viewer to chain together local alignments that are consistently spaced with a dashed line connecting them and a color-coded ramp indicating the compression or expansion of the spacing. For example, below I queried read “19”: You can see the grid-lines spaced every 1000bp, compressed dash lines across what must be a low quality gap in the read between bases 2000 and 3000, and numerous expanded dashes across what are most likely low quality gaps in matching B-reads. The settings in the palette dialog producing this view were as follows:
In the panel at right the “Tri-State” option is chosen for “Show qual qv’s” and the colors are set so that trace point intervals with quality values not greater than 23 (i.e. “Good”) are colored green, intervals with values not less than 30 (i.e. “Bad”) are colored red, and otherwise the interval is colored yellow. Further note that you can also ask to see read’s QV’s projected on to the B-reads of the pile, producing a view like this:
A variety of programs such as DBdust, REPmask, TANmask, and the forthcoming DAStrim, all produce interval tracks associated with the underlying DB(s). When a new .las file is opened with daviewer the program automatically searches the specified DBs for any interval tracks associated with them and loads them for (possible) display. The found tracks are listed in the “Masks” tab of the palette dialog as illustrated immediately below.
In the palette tab at left each available interval track or mask is listed. One can choose whether a track is displayed, on which register line, its color, and whether or not you want to see the mask on the B-reads as well. The tracks are displayed in the order given and the order can be adjusted with drag-and-drop initiated by depressing the up/down arrow at the far left.
Finally, one can record all the settings of a particular palette arrangement in what is called a view. At the bottom of the palette dialog is a combo-box that allows one to select any saved view, and the creation of views, their updating, and removal are controlled by the Add, Update, and Delete buttons, respectively. In the palette example above, a view call “trim” has been created and that as seen in “Quality”-tab has a different heat map for trace interval segments. The screen capture below shows an example of this view and further illustrates the display of tracks.One should also know that clicking on items in the display area produce popups with information about the object, clicking below the coordinate axis at bottom zooms in or out (shift-click) by sqrt(2), and grabbing a background area allows you to scroll by hand (as will as with the scroll widgets).
Finally, one can have multiple, independently scrollable and zoomable views of the same data set by clicking the “Duplicate” button (+-sign in the tool bar at upper-left), and one can further arrange them into a tiling of your screen by clicking the “Tile” button (again in the tool bar). As an example, the (entire) screen capture below was created by hitting “Duplicate” 3 times, then “Tile”, and then zooming and scrolling the four individual views.
In closing, DaViewer is a full featured and flexible visualization tool for the specific task of seeing your Pacbio reads, their quality, and their LAs with other reads. It has so many features that a man page will take a while for me to produce. In the meantime, I will hope that you can just open up a data set and figure it out by trial and error button pushing and clicking. Unlike other Dazzler modules it is after all a GUI, have you ever read the Microsoft Word manual?