The gx script is a client of the Microarray::Explorer class.
    Microarray::Explorer functions as a web viewer for
    Microarray::CdtDataset objects.  Following the Model/View/Controller
    concept, the Microarray::Explorer class is the View, the
    Microarray::CdtDataset class is the Model, and this script, gx, is the
    controller, dealing with the dispatch logic.

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
    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


    'n'    = name; name of dataset to use
    'a'    = action; action to perform
    'seed' = seed; 
    'q'    = query (the string to use for the search)
    'f'    = field (the field to search)
    'rx'   = column width in pxl in radar frame
    'ry'   = column height in pxl in radar frame
    'zy'   = column height in pxl in zoom frame
    'ry'   = column width in pxl in zoom frame

   possible values for action:

   'c' = correlate

           - print the most correlated gene expression vectors 
             (neighbors) for gene provided in param('seed')

   's' = search

           - Do a search using the string provided in param('q')
             to search the field(s) provided in param('f')

   'z' = zoom

           - print a zoom frame (currently arround the mouseclick 
             x/y coordinates

   'r' = radar

           - print a radar frame

   't' = toolbar

           - print a toolbar frame

Authors Original work: Christian Rees

Re-write: Janos Demeter jdemeter@genome.stanford.edu