Semi-supervised consensus clustering for gene expression data analysis

Background Simple clustering methods such as hierarchical clustering and k-means are widely used for gene expression data analysis; but they are unable to deal with noise and high dimensionality associated with the microarray gene expression data. Consensus clustering appears to improve the robustness and quality of clustering results. Incorporating prior knowledge in clustering process (semi-supervised clustering) has been shown to improve the consistency between the data partitioning and domain knowledge. Methods We proposed semi-supervised consensus clustering (SSCC) to integrate the consensus clustering with semi-supervised clustering for analyzing gene expression data. We investigated the roles of consensus clustering and prior knowledge in improving the quality of clustering. SSCC was compared with one semi-supervised clustering algorithm, one consensus clustering algorithm, and k-means. Experiments on eight gene expression datasets were performed using h-fold cross-validation. Results Using prior knowledge improved the clustering quality by reducing the impact of noise and high dimensionality in microarray data. Integration of consensus clustering with semi-supervised clustering improved performance as compared to using consensus clustering or semi-supervised clustering separately. Our SSCC method outperformed the others tested in this paper.


Background
Simple clustering methods such as agglomerative hierarchical clustering and k-means have been widely used on gene expression data analysis. However, individual clustering algorithms have their limitations in dealing with different datasets. For example, k-means is unable to capture clusters with complex structures, and selection of k value is somewhat challenge without subjectivity. Therefore, many studies used consensus clustering (also called cluster ensemble) to improve the robustness and quality of clustering results [1][2][3][4].
Consensus clustering solves a clustering problem in two steps. The first step, known as base clustering, takes a dataset as input and outputs an ensemble of clustering solutions. The second step takes the cluster ensemble as input and combines the solutions through a consensus function, and then produces final partitioning as the final output, http://www.biodatamining.org/content/7/1/7 known as final clustering. The consensus clustering algorithms differ in chosen algorithms for basic clustering, consensus function and final clustering. Monti et al. used hierarchical clustering(HC) or self-organizing map (SOM) as the base clustering to generate consensus matrix and either HC or SOM for final clustering [1]. Yu et al. used k-means as the base clustering on subspace datasets and graph-cut algorithms for the final clustering [2]. Kim used k-means as the base algorithm with random multiple number of clusters and applied a graph-cut algorithm for final clustering [3]. The base clustering generates diverse clustering solutions through: 1) generating subspace datasets using gene resampling [1,2,4]; 2) using a single clustering algorithm with random parameter initializations such as selecting a random number of clusters [3,4]; 3) using different clustering algorithms for each base clustering [5]. Some consensus clustering methods used a pairwise similarity matrix of instances to combine multiple clustering solutions [1,2], others used associations between instances and clusters in the consensus matrix [4]. These consensus clustering algorithms usually outperform single clustering algorithms on gene expression datasets [1][2][3][4].
Consensus clustering has been used for clustering samples to discover and classify cancer types in cancer microarray data [1][2][3][4]6]. It achieved successes in capturing informative patterns from microarray data [1][2][3]. A well known consensus clustering algorithm, linkbased cluster ensemble (LCE) was introduced in [4]. LCE outperforms 10 algorithms tested in [4], specifically, four simple clustering algorithms, three pairwise similarity based consensus clustering algorithms, and three graph-based cluster ensemble techniques. Consensus clustering is also used for clustering genes to identify biologically informative gene clusters [5].
Many studies used prior knowledge in clustering genes [7][8][9][10][11][12][13]. These methods are referred as semi-supervised clustering approaches. The results showed that using small amount of prior knowledge was able to significantly improve the clustering results; also the more specific prior knowledge used the better in improving the quality of clustering.
Consensus clustering itself can be considered as unsupervised and improves the robustness and quality of results. Semi-supervised clustering is partially supervised and improves the quality of results in domain knowledge directed fashion. Although there are many consensus clustering and semi-supervised clustering approaches, very few of them used prior knowledge in the consensus clustering. Yu et al. used prior knowledge in assessing the quality of each clustering solution and combining them in a consensus matrix [14]. In this paper, we propose to integrate semi-supervised clustering and consensus clustering, design a new semi-supervised consensus clustering algorithm, and compare it with consensus clustering and semi-supervised clustering algorithms, respectively. In our study, we evaluate the performance of semi-supervised consensus clustering, consensus clustering, semi-supervised clustering and single clustering algorithms using h-fold cross-validation. Prior knowledge was used on h-1 folds, but not in the testing data. We compared the performance of semi-supervised consensus clustering with other clustering methods.

Method
Our semi-supervised consensus clustering algorithm (SSCC) includes a base clustering, consensus function, and final clustering. We use semi-supervised spectral clustering (SSC) as the base clustering, hybrid bipartite graph formulation (HBGF) as the consensus http://www.biodatamining.org/content/7/1/7 function, and spectral clustering (SC) as final clustering in the framework of consensus clustering in SSCC.

Spectral clustering
The general idea of SC contains two steps: spectral representation and clustering. In spectral representation, each data point is associated with a vertex in a weighted graph. The clustering step is to find partitions in the graph. Given a dataset X = {x i |i = 1, . . . , n} and similarity s ij ≥ 0 between data points x i and x j , the clustering process first construct a similarity graph G = (V , E), V = {v i }, E = {e ij } to represent relationship among the data points; where each node v i represents a data point x i , and each edge e ij represents the connection between two nodes v i and v j , if their similarity s ij satisfies a given condition. The edge between nodes is weighted by s ij . The clustering process becomes a graph cutting problem such that the edges within the group have high weights and those between different groups have low weights. The weighted similarity graph can be fully connected graph or t-nearest neighbor graph. In fully connected graph, the Gaussian similarity function is usually used as the similarity function s ij = exp(− x i − x j 2 /2σ 2 ), where parameter σ controls the width of the neighbourhoods. In t-nearest neighbor graph, x i and x j are connected with an undirected edge if x i is among the t-nearest neighbors of x j or vice versa. We used the t-nearest neighbours graph for spectral representation for gene expression data.

Semi-supervised spectral clustering
SSC uses prior knowledge in spectral clustering. It uses pairwise constraints from the domain knowledge. Pairwise constraints between two data points can be represented as must-links (in the same class) and cannot-links (in different classes). For each pair of mustlink (i, j), assign s ij = s ji = 1, For each pair of cannot-link (i, j), assign s ij = s ji = 0. If we use SSC for clustering samples in gene expression data using t-nearest neighbor graph representation, two samples with highly similar expression profiles are connected in the graph. Using cannot-links means to change the similarity between the pairs of samples into 0, which breaks edges between a pair of samples in the graph. Therefore, only must-links are applied in our study. The details of SSC algorithm is described in Algorithm 1. Given the data points x 1 , . . . , x n , l pairwise constraints of must-link are generated. The similarity matrix S can be obtained using similarity function σ is the scaling parameter for measuring when two points are considered similar, and was calculated according to [15]. Then S is modified to be a sparse matrix, only t nearest neighbors are kept for each data point in S. Then, l pairwise constraints are applied in S. Steps 5-10 follow normalized spectral clustering algorithm [16,17].

Consensus function
We used LCE ensemble framework in our SSCC adopting HBGF as the consensus function. The cluster ensemble is represented as a graph that consists of vertices and weighted edges. HBGF models both instances and clusters of the ensemble simultaneously as vertices in the graph. This approach retains all information provided by a given ensemble, allowing the similarities among instances and among clusters to be considered collectively in forming the final clustering [18]. More details about LCE can be found in [4]. http://www.biodatamining.org/content/7/1/7

Algorithm 1: Semi-supervised spectral clustering (SSC)
Input: Given n data points x 1 , . . . , x n , the number of clusters k, and the number of pairwise constraints l. Output: Group x 1 , . . . , x n into k clusters.
1. Generate l must-link constraints from x 1 , . . . , x n . 2. Construct a similarity matrix S where s ij ≥ 0 represents the similarity between x i and x j . 3. Modify S to be a sparse matrix using t-nearest neighbor graph. 4. Apply l pairwise constraints on S, s ij = s ji = 1.

Compute the normalized Laplacian matrix
matrix D is defined as the diagonal matrix with the degrees d 1 , . . . , d n on the diagonal, d i = n j=1 s ij . 6. Compute the first k eigenvectors u 1 , . . . , u k of L. 7. U ∈ R n×k to be matrix containing the vectors u 1 , . . . , u k as columns. 8. Form the matrix T ∈ R n×k from U by normalizing the rows to norm 1.

Semi-supervised consensus clustering
To make a consensus clustering into a semi-supervised consensus clustering algorithm, prior knowledge can be applied in base clustering, consensus function, or final clustering. Final clustering is usually applied on the consensus matrix generated from base clustering. SSCC uses semi-supervised clustering algorithm SSC for base clustering, does not use prior knowledge either in consensus function or final clustering. Our experiment was performed using h-fold cross-validation. The dataset was split into training and testing sets, and the prior knowledge was added to the h − 1 folds training set. After the final clustering result was obtained, it was evaluated on the testing set alone. The influence of prior knowledge could be assessed in a cross-validation framework.
Our semi-supervised consensus clustering algorithm is described in Algorithm 2. Similar to [4], for a given n × d dataset of n samples and d genes, a n × q data subspace (q < d) is generated by α ∈[0, 1] is a uniform random variable, q min and q max are the lower and upper bonds of the subspace. q min and q max are set to 0.75d and 0.85d. Let = π 1 , . . . , π m be a cluster ensemble with m clustering solutions. SSC is applied on each subspace dataset to obtain clustering results. We use the fixed number of clusters k, each π i = C i 1 , . . . , C i k is one clustering solution. A basic cluster-association matrix BM is generated at first based on the crisp associations between samples and clusters using HBGF, in which there are n samples and m × k clusters. If x i belongs to a cluster C j , BM(x i , C j ) = 1, i = 1, . . . , n; j = 1, . . . , g, otherwise BM(x i , C j ) = 0. Next, a refined cluster-association matrix RM is generated from BM by estimating new association values in RM(x i , C j ) if BM(x i , C j ) = 0. http://www.biodatamining.org/content/7/1/7 RM(x i , C j ) is the similarity between C j and other clusters to which x i probably belongs. The similarity of any clusters in the cluster ensemble is obtained from a weighted graph of clusters. Finally, spectral clustering is applied on RM to obtain the final clustering solution. 1. In each run, split the data into h fold. In each fold, run steps 2-5. 2. Generate l pairwise constraints of must-link from the other h − 1 fold data points. 3. Generate a cluster ensemble = π 1 , . . . , π m with m clustering solutions, 4. Generate a cluster-association matrix RM from . 5. Apply spectral clustering on RM and cluster the datasets into k clusters.

Selected algorithms
We compared the performance of four algorithms: SSCC, SSC [19], LCE [4], and k-means ( Table 1). The performance of SSCC was influenced by amount of prior knowledge, consensus function and base clustering. By increasing the amount of prior knowledge, we observed the influence of prior knowledge on SSCC. SSCC uses SSC as the base clustering. By comparing SSCC with SSC on the same amount of prior knowledge, we were able to observe the influence of consensus clustering on SSCC. Same as LCE, SSCC uses HBGF as the consensus function. SSCC became a consensus clustering algorithm when it did not use prior knowledge. k-means was used as the baseline algorithm in this study. In both SSCC and LCE, we used subspace and fixed number of clusters, ensemble size of 10, and nearest neighbor size of 5. We implemented SSCC in Matlab and adopted Matlab code of SSC [20], LCE [4] and k-means. Datasets All four algorithms were tested with eight cancer gene expression datasets (Table 2). These were processed datasets after removing the non-informative genes and obtained from [21]. Prior knowledge was represented as pairwise constraints generated from class labels. Prior knowledge in the eight datasets was derived from sample class labels. A pair of samples share the same class were given a must-link prior knowledge. We used a small amount of prior knowledge to test the effectiveness of SSCC (Table 2).

Performance measures
The performance was measured with normalized mutual information (NMI) [29] and adjusted rand index (ARI) [30]. ARI is often used to assess the performance of clustering samples in gene expression datasets [1][2][3][4]. The definition of NMI is described as follows. Let X and Y be the random variables described by the cluster assignments and class labels. I(X, Y ) denotes the mutual information between X and Y ; H(X) and H(Y ) the entropy of X and Y . NMI is defined by

Experimental results
The experiments were performed by increasing number of pairwise constraints with 5 fold cross validation and 50 runs (Figures 1, 2). Without prior knowledge, comparisons of SSCC, SSC, LCE and k-means was performed by using one-way ANOVA with Bonferroni correction (p < 0.05) on NMI and ARI (Table 3 and Additional file 1). We used paired t-test (p < 0.05) to compare SSCC and SSC with prior knowledge on NMI and ARI, respectively. The null hypothesis was that no difference existed between the mean of SSCC and SSC. We used 20 pair-wise constraints for CNS, Leukemia1, Leukemia2 and Leukemia3, but 100 constraints for other 4 datasets (Table 4).
Our result clearly demonstrated that consensus clustering and using prior knowledge both contribute to improving the quality of clustering and an integration of both performed even better (Figures 1, 2 and Tables 3, 4). Without injection of prior knowledge, performance of SSCC and SSC were more or less equivalent, but both were significantly better than LCE and k-means (Table 3). On the other hand, with injection of prior knowledge, SSCC significantly outperformed SSC (Table 4).

Parameter analysis
Ensemble size was one of important parameters that influence SSCC and LCE (Figure 3). SSCC significantly outperformed LCE in all ensemble size settings across the 8 datasets excepting size 40 and 50 on Leukemia3. In some datasets, the performance of SSCC or LCE is improved with the increase of ensemble size from 10 to 20. However, there is no significant improvement in other datasets such as Multi-Tissue1 and Multi-Tissue2. In such case we suggest a small ensemble size, such as 10.
Influence of ensemble type appeared to be more obvious (Figure 4). We compared the performance of two ensemble types, "Fixed k + Subspace" and "Random k + Full-space", on SSCC and LCE. SSCC outperformed LCE with both ensemble types in majority of the 8 datasets. SSCC with "Fixed k + Subspace" appeared to be generally better than other combinations.
Performance of both SSCC and SSC was significantly influenced by neighborhood size ( Figure 5). Without applying prior knowledge, we conducted paired two-tailed t-test (p < 0.05) between SSCC and SSC under four different t values. In majority of the datasets, both algorithms performed better with smaller neighborhood size. Generally, SSCC outperformed SSC.

Discussion
We compared the performance of SSCC with SSC, LCE and k-means and each of our pairwise comparison provides information of the effect of either semi-supervision or consensus clustering. Specifically, comparing LCE with k-means reveals the effectiveness of ensemble strategy since k-means is used as the base clustering in LCE. Similarly, in comparing SSC with SSCC, we used the same amount of prior knowledge, so actually we compared spectral clustering with consensus clustering. The comparison between SSCC and LCE reveals the effect of semi-supervision under the consensus clustering paradigm.
SSCC significantly outperforms SSC with or without prior knowledge. This clearly shows that consensus clustering algorithms outperform single clustering algorithms in the gene expression datasets. This observation is consistent with [1][2][3][4].
We compared SSCC with LCE using the same datasets and same parameter settings. Without considering prior knowledge, the difference between SSCC and LCE is in base clustering, SSCC uses spectral clustering but LCE uses k-means. They both use spectral clustering for final clustering (Table 1). Without prior knowledge, SSC becomes SC, and SC outperforms k-means in all 8 datasets (Figures 1, 2 and Table 3). This indicates  Since n > m, n > k, d > n, d > l, and d > t in our experiments, the bottle neck of SSCC is to find t nearest neighbors with computational time O(mn 2 d). The implementation of spectral clustering is a parallel algorithm [20], so the majority of computational time of SSCC can be reduce to O mn 2 d p , where p is the number of parallel threads. SSCC is limited to large data set due to the computational complexity of spectral clustering. SSCC can be improved by adopting faster spectral clustering algorithms, which are applicable for data sets with thousands of instances.
Our study provided an insight into the contribution of consensus clustering and semisupervised clustering to the clustering results. To our knowledge, the Knowledge based Cluster Ensemble (KCE) [14] is the only algorithm using prior knowledge in consensus clustering paradigm for gene expression datasets. Unfortunately, we are unable to directly compare SSCC with KCE because of the unavailability of the software.
Our study uses SSCC for clustering samples. Since the optimal number of clusters (k in k-means algorithm) and the class label of each sample are known, the prior knowledge is derived from the given class structure. A must-link constraint is given to a pair of samples if they are from the same class. For many real applications, we might not know the whole class structure, but most likely we know whether some of samples are in the same class (cluster). We can generate must-links between these samples, and prior knowledge is derived from these samples. In these cancer gene expression datasets, we validate the performance of SSCC with the labeled data. The next step would be to apply SSCC for clustering genes for gene function prediction. However, the performance on clustering genes might vary due to two reasons: the quality of prior knowledge and the optimal number of clusters. Pairwise constraints in this study have been generated from class labels of samples in the cancer gene expression datasets and they are true prior knowledge. Prior knowledge in clustering of genes will be known gene functions, and they are partial domain knowledge. A gene may have multiple functions; some functions are inclusive to others as well. For example, a level 6 gene ontology term apoptotic process (GO:0006915) has over ten thousands of gene products and under which at level 7, there are 21 GO terms. Our earlier work shows that more specific (higher level) http://www.biodatamining.org/content/7/1/7 GO term contribute better to semi-supervised clustering result [13]. Also the description of a certain gene function is based on current knowledge in the domain field. Such domain knowledge is often subject to change. For example, current knowledge of certain existing gene is limited and will gradually be enriched. Therefore, the generated prior knowledge from a pair of genes most likely contains certain noise and subsequently influence the results. The optimal number of clusters is often unknown and a different distance measure would generate a different optimum number of clusters. Therefore, for comparison of semi-supervised clustering algorithms, it is better to use defined prior knowledge, such as the sample labels we used in this paper. When an algorithm considered to be superior over the others, such an algorithm can be used to cluster genes.
In reality, obtaining large amount of prior knowledge for gene expression datasets is difficult. Designing algorithms which work best with a small amount of prior knowledge, such as less than 20 pairwise constraints, will be very useful for clustering microarray data. A study on semi-supervised clustering shows that with small amounts of prior knowledge, search-based approach tends to outperform similarity-based [31]. With larger amounts of labeled data, similarity-based tends to perform better. Combining both approaches outperforms respective individual approaches. SSC is a similarity-based semi-supervised clustering algorithm. The results in Figures 1, 2 show that the performance of SSCC and SSC is slightly improved with small numbers of constraints and significantly improved with increasing numbers of constraints. Our SSCC method presented in this paper is applicable not only to gene expression data, but also to other types of data as long as prior knowledge is provided.

Conclusions
In this study, we proposed a new semi-supervised consensus clustering method, designed an algorithm, and compared it with another semi-supervised clustering algorithm, a consensus clustering algorithm and a simple clustering algorithm on eight real cancer gene expression datasets. In general, using prior knowledge improves the performance of clustering in gene expression datasets. Consensus clustering is able to reach the goal of maximizing intra-cluster similarity and minimizing inter-cluster similarity. Also, using prior knowledge enhances the high consistency between data partitioning and domain knowledge. A combination of both significantly improves the quality of clustering. SSCC outperforms the semi-supervised clustering algorithm SSC and consensus clustering algorithm LCE in most datasets over various parameter settings, ensemble size and type, with or without prior knowledge. This study demonstrates that SSCC is an effective and robust semi-supervised consensus clustering algorithm with prior knowledge, and also a superior consensus clustering algorithm without prior knowledge. http://www.biodatamining.org/content/7/1/7