Microarray::Explorer - class for viewing clustered expression data over the web


The Explorer class belongs to the package Microarray. It functions as a web viewer for dataset objects from the same package. Following the Model/View/Controller concept, the explorer class is the View/Controller, whereas the dataset class is the Model.

Intended Behaviour

Explorer will display the dataset object in a web browser in a frameset of 3 frames.

    The frames are:   - radar frame   - left side of the window
                      - toolbar frame - top of right side of window  
                      - zoom frame    - lower part of right side of window

Radar frame

The radar frame displays the whole dataset as an image map. The genes (clones, ...) are shown are the rows of the image, while the experiments are shown as the columns. Clicking the image will have 2 effects:

                - the expression patterns for the next XXX genes starting at
                  position of the click are displayed in the zoom frame

                - the top of a small bracket on the right side of the radar
                  frame is positioned at the height of the click and the bracket
                  shows the XXX genes selected and magnified on the zoom frame.

The size of the image is maximized both horizontally and vertically.

Toolbar frame

The toolbar allows actions on either the radar frame or the zoom frame.

For the radar frame it allows a simple customization: changing the width of the radar image. Selecting any of the allowed percentages changes the current width of the image proprotionately.

For the zoom frame, it provides a search tool. The various fields of annotations or all of them for the genes can be searched for a string. The string can be entered in a text field. The string may contain more than one terms, spaces are interpreted as term separators. The terms are conbined using logical 'AND'. The hits resulting from the search are displayed in the zoom frame, as expression patterns. The number of hits displayed in the zoom window is limited to 200 hits and the length of each term in te search string should be at least 2 characters long.

In addition, the toolbar frame contains an Info Box that displays various textual information dependent on the position of the mouse pointer over the zoom frame. It can display:

             - gene information in the NAME field when the mouse is positioned 
               over an image row

             - experiment info, if positioned above the experiment image map
             - correlation of a genes expression pattern to that of the top
               gene in to zoom window displaying correlations, when the pointer
                is above is above the correlation image.

Zoom frame

The zoom frame displays expression patterns and annotations for genes in the dataset. It can display genes selected from:

             - radar frame; it displays a given number of genes starting from the 
               genes whose image was clicked on

             - the toolbar; the result of the search performed using the searchtool
               is displayed here

             - the zoom frame itself; when a row is clicked on in the radar frame,
               the genes with the highest correlation in their expression pattern 
               are displayed

Information about various elements in the zoom frame is displayed in the Info Box in the toolbar, dependent on the position of the mouse:

             - experiment info
             - gene info
             - correlation value

Class Methods


This is the constructor for the Explorer class.

Usage: $explObj = Microarray::Explorer->New( dataset => $dataset, config => $config, displayConfig => $displayConfig};

Here $dataset should be a Microarray::CdtDataset object, $config is a Microarray::Config object, while $displayConfig is the name of a text file that contains info concerning how to mark up various elements of gene annotations. It is expected that the displayConfig will be found in the $config->gxDataPath directory.

Instance Methods

This subroutine will print the whole display window anew.

  usage: $explorer->print_frameset();


This subroutine creates the content of the radar frame.

  usage: $explorer->radar();


This sub creates the toolbar frame

  usage: $explorer->toolbar();


This subroutine creates the content of the zoom frame when called from the radar frame.

  usage: $explorer->zoom();


This method takes a a string of query words and the name of the feature field to search. This way, one can search for gene symbols, gene names and/or GenBank accession numbers or any or all fields in the feature description.

 usage: $explorer->search_feature("myWords", $field); 

               "myWords" - can have multiple words separated by space
                               (they are combined using logical 'AND')
               $field    - has to be one value of %kDespcriptions

The resulting hits are displayed in the zoom frame. If the number of hits is too high, only kNumberOfMaxHits are displayed. The words in the query string have to be separated by spaces and the length of the words has to be more than 1 character.


This method generates the html and images to display the most correlated gene expression vectors versus a seed vector. When a gene is clicked on in the zoom window, the most highly correlated gens are retrieved and their expression patterns are displayed in the zoom frame.

  usage: $explorer->neighbors();

The gene that was clicked on in the zoom frame is determined from the cgi parameter 'seed'. The 'seed' gene is displayed as the first row on the zoom image, with a perfect correlation of 1. The genes with the highest correlations are displayed in the order of the value of their correlation. All genes with correlation > 0.5 are displayed. The correlation value is graphically indicated by the length of the orange bar positioned on the right side of the expression pattern of the gene, and the value can be displayed in the info bos by positioning the mouse above the orange bar of a gene of interest.


Original work: Christian Rees

Re-write: Janos Demeter