Skip to main page content
Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
. 2009 Aug 25;10:266.
doi: 10.1186/1471-2105-10-266.

Genoviz Software Development Kit: Java Tool Kit for Building Genomics Visualization Applications

Affiliations
Free PMC article

Genoviz Software Development Kit: Java Tool Kit for Building Genomics Visualization Applications

Gregg A Helt et al. BMC Bioinformatics. .
Free PMC article

Abstract

Background: Visualization software can expose previously undiscovered patterns in genomic data and advance biological science.

Results: The Genoviz Software Development Kit (SDK) is an open source, Java-based framework designed for rapid assembly of visualization software applications for genomics. The Genoviz SDK framework provides a mechanism for incorporating adaptive, dynamic zooming into applications, a desirable feature of genome viewers. Visualization capabilities of the Genoviz SDK include automated layout of features along genetic or genomic axes; support for user interactions with graphical elements (Glyphs) in a map; a variety of Glyph sub-classes that promote experimentation with new ways of representing data in graphical formats; and support for adaptive, semantic zooming, whereby objects change their appearance depending on zoom level and zooming rate adapts to the current scale. Freely available demonstration and production quality applications, including the Integrated Genome Browser, illustrate Genoviz SDK capabilities.

Conclusion: Separation between graphics components and genomic data models makes it easy for developers to add visualization capability to pre-existing applications or build new applications using third-party data models. Source code, documentation, sample applications, and tutorials are available at http://genoviz.sourceforge.net/.

Figures

Figure 1
Figure 1
Scene, View, and Glyphs. The core graphics capability in the Genoviz SDK involves three core collaborating classes/interfaces. A Scene implements the SceneI interface and contains references to ViewI and GlyphI objects. In a typical application, there is usually only one ViewI per Scene, but Scenes can support multiple ViewI objects in order to present of alternative views on the same data. Scene objects also contain a reference to a single root GlyphI object, which in turn contains many children. When the View on a Scene changes, the Scene invokes the draw method of its associated GlyphI object, which then may recursively invokes the draw method of its child Glyphs.
Figure 2
Figure 2
A sample draw method for a simple Genoviz SDK Glyph class. The method accepts a View object, defined as type ViewI, an interface containing View-related methods. A superclass' calcPixels method translates the Glyphs map-based coordinates (the coordbox) to pixel-based coordinates. The Java AWT Graphics object then draws an oval shape in the space bounding the Glyph's location in pixel coordinates.
Figure 3
Figure 3
Genoviz SDK Glyphs on display. The toolkit contains Glyph classes programmers can use to develop new applications and new representation schemes for genomic data. The green arrow outlined in red is an instance of an ArrowGlyph. The outline indicates the user has clicked the Glyph and the Glyph is now considered selected. This example application is available from demo sub-directories within the genoviz sdk package in the Genoviz source code repository.
Figure 4
Figure 4
Semantic Zooming and Child Glyphs. The image below comes from the Integrated Genome Browser, which can display a chromosome ideogram alongside the genome axis. A. At low zoom, component bands merge with parent bands and labels appear only when the display size in pixels is large enough to accommodate them. B. At high zoom, chromosome bands resolve and labels appear. Glyph classes that implement this behavior are in the igb subdirectories within the Genoviz project source code repository at sourceforge.net.
Figure 5
Figure 5
Semantic zooming and sequence data. This screen capture from the Integrated Genome Browser showing gene models from Arabidopsis thaliana and overlapping, spliced EST alignments shows two view on the same sequence Glyph. At low zoom (top,) the loaded sequence appears as a gray bar beneath the sequence axis. At high zoom, the gray bar resolves into characters (A, G, T, C) representing the DNA sequence bases.
Figure 6
Figure 6
TieredNeoMap. The TieredNeoMap is a specialized subclass of NeoMap that allows developers to display data in labeled tracks. Typically, this functionality is used to segregate data sets arising from different sources so that users can compare them easily.
Figure 7
Figure 7
NeoAssembler. The NeoAssembler widget displays assembled sequences and their merged consensus sequence.
Figure 8
Figure 8
NeoSeq and NeoMap widgets can work in concert. (A) A NeoSeq widget displays sequence as characters. Here, the user has highlighted a section of the sequence. The selected region appears in red. (B) NeoSeq and NeoMap working in concert. Here, a red RectangleGlyph covers the section of the NeoMap corresponding to the section of sequence displayed in the NeoSeq. Click-dragging the RectangleGlyph in the NeoMap scrolls the sequence displayed in the NeoSeq. Likewise, scrolling the NeoSeq moves the RectangleGlyph. In many settings, it is useful to be able to view sequence data in a scrollable window, linked to a map in which annotations and other notations on the sequence appear.
Figure 9
Figure 9
Semantic zooming and other functionality implemented in the Integrated Genome Browser, version 5.3. The top view shows a region of human chromosome 21 with gene annotations and mRNA alignments. The display also shows plots of expression array data from Jurkat and HepG2 cell lines, represented as a score for each tiling array probe chromosomal position. The bottom view shows a "sliced" subset of the same data, in which exons for selected annotations (outlined in red) along with flanking sequence have been spliced to form a virtual sequence and all annotations remapped to the virtual sequence. There are roughly 50,000 data points per expression array plot in the region displayed in the top view, averaging 50 data points per pixel along the horizontal axis. The graph Glyph object used to render these plots appears in both views. The display uses semantic zooming to render them differently according to the different resolutions. In the lower resolution top view, for each horizontal pixel position a vertical line is drawn representing the score range for data points whose genomic coordinates fall within that pixel. A slightly brighter dot is also drawn for the scores' average. In the sliced view at the lower part of the display, the resolution is high enough that each scored position is rendered as a simple bar. These rendering techniques can allow real-time visualization of more data than is shown here. For example, the two plots shown each have greater than 3 million data points on chromosome 21.

Similar articles

See all similar articles

Cited by 12 articles

See all "Cited by" articles

References

    1. Aldhous P. Managing the genome data deluge. Science. 1993;262:502–503. doi: 10.1126/science.8211171. - DOI - PubMed
    1. Sonnhammer EL. Genome informatics: taming the avalanche of genomic data. Genome Biol. 2005;6:301. doi: 10.1186/gb-2004-6-1-301. - DOI - PMC - PubMed
    1. Hoon S, Ratnapu KK, Chia JM, Kumarasamy B, Juguang X, Clamp M, Stabenau A, Potter S, Clarke L, Stupka E. Biopipe: a flexible framework for protocol-based bioinformatics analysis. Genome Res. 2003;13:1904–1915. - PMC - PubMed
    1. Cline MS, Kent WJ. Understanding genome browsing. Nat Biotechnol. 2009;27:153–155. doi: 10.1038/nbt0209-153. - DOI - PubMed
    1. Helt GA, Lewis S, Loraine AE, Rubin GM. BioViews: Java-based tools for genomic data visualization. Genome Res. 1998;8:291–305. - PMC - PubMed

Publication types

LinkOut - more resources

Feedback