Another major decision was to use multiple pop-up windows for 2D plots, histograms, expression profiles, clustergrams, reports, dialog boxes, etc. rather than sharing a single window. These windows are maintained by a special pop-up registry that handles many of the bookkeeping chores involved with tracking and updating multiple windows viewing the same underlying data. Whenever an event occurs which may change the set of data filtered genes, the current gene or the current cluster set of genes, the registry is notified. Some of the events are the current clone changed, the Filter parameters changed, the sample labels changed, the normalization method changed, etc. It in turn notifies all relevant active plots, tables and reports - requesting them to update themselves if necessary. This object-oriented design greatly simplifies the process of synchronizing the various data presentations with changes in the database.
A good intersection of the server-centric and client-centric methods is to distribute the computation and data to the systems where they can be handled most effectively. Because Java enables computation in a Web browser, PCs currently available have enormous power and memory, and high-speed Internet connections are readily available, it is now possible to distribute some of the data and computations to the desktop. If high-speed direct manipulation methodology is to be made available on the Internet for microarray data mining, then it must be brought to the user's desktop browser or local computer rather than residing solely on the back-end server. This is the approach taken in designing the MAExplorer.
Table E.2 Comparison of client-centric vs. server-centric data mining. The table shows a comparison of some of the features of client-centric and server-centric (using CGI and/or Applet) data mining analysis methods. The client-centric approach presented here primarily uses Java with data downloaded to the client's computer. A server-centric approach might use a mix of HTML, CGI, servlet and Java. However, even a client-centric approach may take advantage of server support for additional functionality (e.g. accessing genomic servers to gain additional information about specific genes or sets of genes).
Approach | Advantage (+) disadvantage (-) |
Feature |
---|---|---|
Client-centric a) | + | Java programs run (pretty much) on all operating system platforms as either stand-alone or applets (in browsers) |
Client-centric b) | + | handles rapid response required for direct manipulation on the new generation of very fast desktop computers |
Client-centric c) | + | stand-alone version may be restarted quickly from local data or data cached from the Web server |
Client-centric d | + | size limitations are not a problem with stand-alone Java applications |
Client-centric e) | + | Java plug-ins allows prototyping new local and Web DB analysis method functionality by any group of users |
Client-centric f) | - | for the applet version, there is slow startup because the program and all data has to be downloaded each time it is run |
Client-centric g) | - | difficult to build large stable Web-applets handling very large data sets. However, stand-alone applications don't have this problem |
Client-centric h) | - | for the stand-alone application version, it must be installed on client's computer where there nmight be some level of incompatibility |
Approach | Advantage (+) disadvantage (-) |
Feature |
---|---|---|
Server-centric a) | + | may have better resources for very large data sets but with dependence on server |
Server-centric b) | + | faster startup than downloaded applet since minimal GUI is required and data does not have to be loaded before computation requests may be made to the server |
Server-centric c) | + | may be easier to prototype and distribute new functionality using third party software such as RDBMS, S-plus, etc. using centralized CGI or servlets where only one copy is required on the server |
Server-centric d) | - | susceptible to Internet traffic bandwidth problems for large numbers of users |
Server-centric e) | - | susceptible to server-load dependencies for large numbers of users |
Server-centric f) | - | difficult to get very rapid response for direct manipulation for data mining |
The following figures show the top level plugin design.
In support of the MGAP server, additional software was written to automate the pre-processing of the microarray quantitative data from Research Genetics' Pathways array quantification analysis program and perform compression and Web server updates for this data. The Web server also hosts several common gateway interface (CGI) programs. These include user login support, a Web proxy server (to access other genomic Web sites from the Java applet), support of login-protected user state file access, custom database creation, user state files, and "groupware" user-access support.