Web software

BioQ is a web application based on LAMP (Linux-Apache-MySQL-PHP) architecture. The code can be found our Subversion server.


Program Flow

This shows roughly how the key components of the web application interact.


Files and Directories


Common subroutines.


Peter: describe


The "help" link in the top right.


The BioQ main page.


Used for those PHP programs that require sessions.


This needs to be saved as config.php and then revised according to the particular installation. This is basically the case for any file in Subversion prefixed with "template_".


The code for BioQ::Documentation features (see Documentation Tools). It is derived mainly from the dbDoc application that goes with dbSNP-Q. Because of this, some of the code that should really be in the parent directory, such as some JavaScript files and maybe some PHP files, are down here. For example, all the jqGrid files are are in dbdoc/.


Contains some utilities for setting up MySQL.


Contains the perl programs used by BioQ, such as bioq_query.pl and dbdoc_util.pl.


Contains code for BioQ::Query features. The web interface is contained in submit.php.  This uses query.php via an Ajax call. The query.php script then call bioq_query.pl that does all the database work.


JavaScript code is usually saved in a directory named js. Frameworks and modules, such as jQuery, are located in js/external.tar.gz. The .gz files are saved in Subversion bust must be extracted for use with the application. The CSS and JavaScript files for the main page, index.php, are located in the dbdoc directory.

JavaScript modules used in BioQ

BioQ uses the following external JavaScript modules:

Note that some of these modules also require their own CSS files.


jQuery is a JavaScript framework used to control many aspects of the web user interface in BioQ. 

jQuery UI

jQuery UI is an extension of jQuery that provides custom themes and a suite of user interface features. jQuery UI is built into BioQ by going to their download site, selecting a theme and which widgets you will need, and then downloading the tarball generated by their web tool. The current configuration is as follows:

  • Version: jQuery UI 1.8.2 for jQuery 1.4.2 (the current version as of 2011-07-20 is jQuery UI 1.8.14 and jQuery 1.6.2)
  • Theme
    • The theme is based on "humanity", specifically it's "humanity-mod-2" as of 2011-07-20.
    • The modification to the stock humanity theme are
      • Change Font Family to "MS Trebuchet" in  "Font Settings"
  • *UI Core: *Core, Widget (I think)
  • Interactions
    • selectable: was being used in the query page (query/submit.php), but maybe no longer?
  • Widgets
    • autocomplete: used in the search bar
    • button: used in many places
    • dialog: I think this is being used in messages, such when a query is executed with no data
    • tabs: used on the query page, such as Simple Query/Custom MySQL Query


jqGrid is a jQuery plugin for displaying interactive tables.

  • Version: as of 2011-07-20 we're using jqGrid 3.7.1
  • Theming: Note that jqGrid takes advantage of the jQuery UI theme.


Style sheets are stored in a directory named css.