Original research article

The authors used this protocol in:
Nov 2007

Navigate this Article


Gene Networks Based on the Graphical Gaussian Model    

How to cite Favorites 1 Q&A Share your feedback Cited by


This protocol describes how to build a gene network based on the graphical Gaussian model (GGM) from large scale microarray data. GGM uses partial correlation coefficient (pcor) to infer co-expression relationship between genes. Compared to the traditional Pearson’ correlation coefficient, partial correlation is a better measurement of direct dependency between genes. However, to calculate pcor requires a large number of observations (microarray slides) greatly exceeding the number of variables (genes). This protocol uses a regularized method to circumvent this obstacle, and is capable of building a network for ~20,000 genes from ~2,000 microarray slides. For more details, see Ma et al. (2007). For help regarding the script, please contact the author.

Data and Software

  1. Data
    Large-scale microarray data:
    The microarray data should be derived from the same platform, preferably from Affymetrix slides. Some good examples are: Affymetrix Arabidopsis ATH1 Genome Array, Affymetrix Human Genome U133 Plus 2.0 Array, and Affymetrix Mouse Genome 430 2.0 Array. A recommended place to search for this type of data is at the gene expression omnibus from NCBI (http://www.ncbi.nlm.nih.gov/geo/). The number of slides should be larger than 1,000.
  2. Software
    1. R (http://www.r-project.org/)
    2. The GeneNet package for R:
    3. Cytoscape (http://www.cytoscape.org/)
    4. Perl and C++ software environment


  1. Personal computer: Intel Core2 E6420 processor (or similar processing capability)


  1. Preparation of the microarray data
    1. Download the microarray data from your favorite database, and format it into a single table of expression intensities, with every row representing a gene and every column representing a microarray experiment. A good example can be found here for Arabidopsis transcriptomes: http://affy.arabidopsis.info/narrays/help/usefulfiles.html. You can use the file titled super bulk gene download.
    2. Remove any columns (experiments) containing large number of ‘null’ measurements, and then do the same for any genes containing ‘null’ measurements.
    3. Normalize the expression intensities between experiments using the quantile normalization method.

  2. Random sampling and partial correlation calculation
    1. Randomly pick 2,000 genes from the large expression table and make a small expression table for these 2,000 genes. A Perl script can be written to do this step.
    2. Using the GeneNet package to calculate partial correlation between these 2,000 randomly selected genes. The GeneNet package should be lauched within the R environment, and the specific function to be used is ‘ggm.estimate.pcor’ with the default settings.
    3. Save the resulting partial correlation matrix, together with the gene ids for the 2,000 genes.
    4. Repeat the step from 1 to 3 at least 1,999 times. The more the better. After these calculations, most of the gene pairs should be sampled >10 times, each time with a calculated pcor.
    5. Determine the final pcor values for every gene pair, so that pcor value with the smallest absolute values will be kept. This should be done via consolidating the resulted pcor matrix. This should be done with a C++ script.

  3. Network building and analysis
    1. To test the significance of the resulted pcors, the function ‘ggm.test.edges’ in GeneNet can be used. From all the pcors, ~2,000,000 can be randomly selected and fed into the function, so that a pValue for significance can be calculated.
    2. Depending on the pValue, a cutoff for the pcors can be set. A good estimation would be 0.1, 0.08, and 0.05. Any pcor with absolute value larger than the cutoffs can be retained.
    3. A Pearson’ correlation coefficient filter should be applied. Gene pairs with Pearson’ correlation coefficient value between -0.3 and 0.3 should be removed.
    4. After the pcor selection and Pearson correlation coefficient filters, the remaining gene pairs are said to have interaction between each other, and can be used to build a gene network using Cytoscape software. The network analysis can be done with the Cytoscape software itself.


This protocol was developed by the author in Hans Bohnert’s lab, Department of Plant Biology, University of Illinois at Urbana-Champaign, Urbana, Illinois, USA. The work was supported by grants from the National Science Foundation Plant Genome Project (DBI-0223905) and University of Illinois at Urbana-Champaign institutional grants.


  1. Ma, S., Gong, Q. and Bohnert, H. J. (2007). An Arabidopsis gene network based on the graphical Gaussian model. Genome Res 17(11): 1614-1625.
  2. Schafer, J. and Strimmer, K. (2005). A shrinkage approach to large-scale covariance matrix estimation and implications for functional genomics. Stat Appl Genet Mol Biol 4: Article32.
Please login or register for free to view full text
Copyright: © 2012 The Authors; exclusive licensee Bio-protocol LLC.
How to cite: Ma, S. (2012). Gene Networks Based on the Graphical Gaussian Model. Bio-protocol 2(4): e119. DOI: 10.21769/BioProtoc.119.
By submitting a question/comment you agree to abide by our Terms of Service. If you find something abusive or that does not comply with our terms please contact us at eb@bio-protocol.org.

If you have any questions/comments about this protocol, you are highly recommended to post here. We will invite the authors of this protocol as well as some of its users to address your questions/comments. To make it easier for them to help you, you are encouraged to post your data including images for the troubleshooting.

If you have any questions/comments about this protocol, you are highly recommended to post here. We will invite the authors of this protocol as well as some of its users to address your questions/comments. To make it easier for them to help you, you are encouraged to post your data including images for the troubleshooting.

Prashanth N Suravajhala
Birla Institute of Scientific Research
This was a very useful protocol indeed. Yes, to a larger extent! Whence proposing a six point classification scoring schema for predicting the function of hypothetical proteins, we wondered if two interacting proteins shown in our proposed hypothome (interactOME of HYPOTHetical proteins) could coexpress. The transcriptomic profiles were checked albeit we used a GUI based web models to find inferences from this protocol.
5/12/2015 2:07:30 AM Reply
We use cookies on this site to enhance your user experience. By using our website, you are agreeing to allow the storage of cookies on your computer.