Abstract
We report a new R package implementing the clustering of regression models (CORM) method for clustering genes using gene expression data and provide data examples illustrating each clustering function in the package. The CORM package is freely available at CRAN from http://cran.r-project.org.
Introduction
Clustering genes by their expression profiles among samples and/or across time points is a useful approach to reducing data dimension and identifying co-expressed genes that may share common biological functions or regulatory networks. 1 There are three typical experimental designs, under which gene expression data are collected: (1) multiple samples at one time point, (2) one sample at multiple time points, and (3) multiple samples each at multiple time points. Data collected under each experimental design possess specific distributional characteristics to that design, which should be properly accounted for in data analysis.
For the analysis of gene clustering, we have previously developed a model-based clustering method, called the clustering of regression models (CORM) method, to accommodate data collected from various experimental designs while accounting for data distributional characteristics specific to each design. 2 CORM uses regression to model the expression of each gene and clusters genes that share similar regression coefficients to sample covariates. It applies an EM algorithm to iteratively assign genes to clusters and estimate the regression coefficients for each cluster. We have implemented CORM for the clustering of linear models (CLM) method and the clustering of linear mixed model (CLMM) method, with the former applied to cluster genes using cross-sectional data2,3 and the latter time course data with or without replicates.2,4
In this paper, we report an R package that we recently developed implementing the CLM method and the CLMM method, and for each method, we provide two distinct data examples illustrating their uses.
Corm Package
The CORM package is available at R CRAN and it can be imported once installed with the R code below: library(‘CORM’)
Gene clustering for cross-sectional data
The CLM method is implemented by the function
The first example is to cluster genes using microarray data derived from a set of breast cancer samples, including 38 invasive ductal carcinoma (IDC) and 21 invasive lobular carcinoma (ILC) samples. 5 Two indicator variables, one for IDC and another for ILC, were used as the covariates in the regression model for CLM. A set of 474 markers, which were selected based on their differential expression between the two breast cancer subtypes IDC versus ILC, are grouped into nine clusters with genes in each cluster sharing similar expression levels in both subtypes. 2
The second example is to cluster candidate target genes for a microRNA named hsa-let-7f using their expression data derived from a set of normal and tumor tissue samples. 6 Three variables were used in the linear regression model for CLM: (1) let-7f expression, (2) indicator of disease status, and (3) interaction between let-7f and disease status. A set of 178 markers, which were selected based on their significant association with let-7f expression, are clustered to look for genes that share similar association with let-7f and hence may be similarly regulated by let-7f. 3
Gene Clustering for Time Course Data
The CLMM method is implemented by two functions:
A single-time course study examining yeast cell cycle is used to illustrate the use of
A replicated time course study assessing yeast cell cycle in two yeast samples of different genotypes is used to illustrate the use of
Conclusion
CORM is an R package including a family of model-based clustering methods. It can be applied to cluster gene expression data collected under various types of experimental designs and forms an integrative analysis framework together with regression models typically used to detect differentially expressed or time-dependent genes. Table 1 lists the computing time spent for the aforementioned data examples as tested on a Linux server (Intel Xeon). In our experience, applying the CORM method, the EM algorithm typically converges in just a few iterations and is quite robust to the starting values when there are relatively well-separated clusters in the data. The user can also try multiple starting values by specifying the input parameter “n.start” in the CORM functions. We would recommend applying CORM to about 100–500 genes to partition them into reasonably sized clusters.
Computing time by CORM functions versus by K-means clustering when applied to example datasets.
Author Contributions
Conceived and designed the experiments: LXQ Analyzed the data: LXQ JS. Wrote the first draft of the manuscript: JS. Contributed to the writing of the manuscript: LXQ, JS. Agree with manuscript results and conclusions: LXQ, JS. Jointly developed the structure and arguments for the paper: LXQ, JS. Made critical revisions and approved final version: LXQ, JS. Both authors reviewed and approved of the final manuscript.
