The Genquire system is designed to be a standalone genome browser/editor with the ability to connect to one or more genome databases or flat-file data sources and display the information in an interactive graphical display.
The architecture of Genquire is as follows:
Each data-source has an adaptor layer which executes simple operations on the underlying data sources (read/write/modify). The data adaptor passes straight scalar, list, or hash information up to the BioPerl and Genquire-BioPerl object layer where it is assembled into BioPerl-like objects. The GUI layer accepts BioPerl objects as input, and user-manipulations on these objects (e.g. mouse clicks and keystrokes) become BioPerl method calls. The method calls are interpreted in the Genquire-BioPerl object layer and passed to the adaptor layer for data retrieval/writing.
Genquire follows the BioPerl API as closely as possible. In most cases, Genqure Sequence and Feature objects instantiate BioPerl SequenceI and FeatureI interfaces. Thus, anyone familiar with BioPerl should find the code extremely easy to follow and modify as they see fit.
Adaptor layers are also quite straightforward to write, since no complex data-types or objects are created in this layer. Often a simple scalar or list is all that is passed between the data source and the Genquire-BioPerl object layer. Currently Genquire is distributed with an adaptor layer for the Genquire database schema (read/write) and read-only adaptors for Genbank flat files and BioSQL. DAS will be supported in the near future.