Genetic RegulAtory Modules

Copyright (c) 2003-2006 Massachusetts Institute of Technology. All rights reserved.







Please note: This software is for academic research use only.  Unfortunately, we cannot guarantee timely responses to individual user support problems.  If you believe you have encountered a bug, please send a detailed e-mail describing the problem to Georg Gerber.


GRAM is completely implemented in Java. In order to use the program, the user must have the Java virtual run-time environment 1.5 or higher installed. The apporiate Java SDK can be downloaded here.
To run the program, type java -jar GRAM-0_6.jar at the command line or, if on a Windows machine, by double-clicking on GRAM-0_6.jar.

  &nbspexecutable jar file


  &nbspsample expression data file


  &nbspsample binding data file


  &nbspMIPS annotation file


  &nbspsample Settings file




To run the program, type java -jar GRAM-0_6.jar at the command line or double click on the file on a Windows machine.
At this stage (v 0.6) GRAM is consists of a GUI wrapper that feeds variables to the underlying algorithm. The only way to use GRAM is to follow the Modules Wizard that takes the user step by step through a number of data imputs:

Module Wizard

  1. The first page of the wizard simply says "Start Wizard". Click on the "Next Step" button to begin
  2. The second page leads the user through the loading of expression and binding data. Here is an example data file suitable for both binding and expression data. All of the column and row inputs are indexed starting at 1. "Start Col" refers to the column in which actual data starts (for the sample array "Start Col" = 3). Similarly, "Start Row" refers to the first row in which data is located (for the sampel array "Start Row" = 4). "Name Col" refers to the column that holds the row headers. (for the sample array, "Name Col" = 2 and it contains "orf1" "orf2" "orf3"). Finally, "Name Row" refers to the row that contains the column headers (for the sample array "Name Row" = 1 and contains "expA" "expB" "elxpC"). Checking the normalize box will normalize the expression data row wise. The binding data does not need to be normalized since the binding data is given in pvals. Future implementations will allow XML data imports.
  3. The third page allows refinement of how the Modules are found. When the user clicks on "Next Step," the algorithm begins finding the modules. This step is computationally intensive and future versions will feature a status bar at this point. When the algorithm is finished, the GUI will guide the user to save results as a text file.


To save the user from filling all the text fields manually, or repeatedly browsing for files between runs of GRAM, the program also allows the user to load predefined settings files that contain all the necessary variables. A sample settings file can be found here. Note that loading the settings file does not actually run the algorithm. Instead, by loading a settings file, the GUI automatically fills in all the fields of the Modules Wizard. The user must then go through each page of the wizard.

Advanced mode

Some fields are disabled in the basic mode of GRAM to prevent the user from accidentally changing important fields. If the user understands the algorithm and is willing to risk crashing the algorithm with malicious or accidental inputs, then the user can select the "advanced" check box under the help menu and modify all variables.

Debug mode

When in a Debug mode a read only text box is visible under the other inputs. This text box will give more detailed information about the status of the algorithm as well as more detailed information about errors and exceptions. It can be turned on and off by holding down the shift key while you perform any task or by selecting or deselecting the debug mode check box under the "Help" menu. -Home-




03 MAR 2003

Basic implementation of GRAM: Basic GUI. Module algorithm completed. Utilities (Hypergeometic calculation, Annotation) completed.


25 SEP 2003

Program verified. GUI stripped to basics. Final pre publication release


03 OCT 2006

Support for data sets with larger numbers of binding events per transcription factor (> 12 binding events) using a randomized implementation for module hashing.