BACKGROUND
gene expression microarray is a highly popular technology that allows genome-wide measurement of rna expression levels in a highly quantitative manner.
gene expression data is typically arranged as an m × n data matrix, with rows corresponding to genes and columns corresponding to experimental conditions.
conditions can be different environmental conditions or different time points corresponding to one or more environmental conditions.
the th entry of the gene expression matrix represents the expression level of the gene corresponding to row m under the specific condition corresponding to column n. the numerical value of the entry is usually the logarithm of the relative amount of the mrna of the gene under the specific condition.
by analyzing the gene expression data, we can potentially determine which genes behave in similar ways, how genes interact, which genes contribute to the same pathway, and so on.
the similarity between the genes can be analyzed by clustering the gene expression data.
cluster analysis plays an important role in the microarray data analysis through the grouping of genes into subsets with similar expression patterns or similar function.
however, clustering has its limitations.
mainly, clustering works on the assumption that related genes behave similarly across all measured conditions.
but a general understanding of cellular processes expects subsets of genes to be co-regulated and co-expressed only under certain experimental conditions, but behaves almost independently under other conditions  <cit> .
in order to overcome the above shortcoming of clustering, the concept of biclustering is applied to gene expression data.
biclustering was first described in the literature by hartigan  <cit> .
it refers to a distinct class of clustering algorithms that perform simultaneous row column clustering.
cheng and church  <cit>  were the first to apply it to gene expression data.
biclustering identifies subsets of genes and subsets of conditions that shares similar expression patterns, by performing simultaneous clustering of both rows and columns of the gene expression matrix.
as a result, homogeneous sub matrices of the gene expression matrix are obtained and they are known as biclusters.
in  <cit> , cheng and church proposed a similarity score called mean squared residue score as a measure of coherence of the rows and columns in the bicluster.
when all the elements in a bicluster are similar, the mean squared residue score is low.
the lower the score, stronger the coherence exhibited by the bicluster, and better is the quality of the bicluster.
however, from a biological point of view, the interest resides in biclusters with subset of genes showing similar behaviour and not with similar values.
hence the method aims at finding large and maximal biclusters with mean squared residue score below a certain threshold, δ, and the biclusters thus obtained are called δ-biclusters.
the value of δ has to be estimated in advance, and it is different for every dataset  <cit> .
in  <cit> , cheng and church identified the problem of finding significant biclusters as being np-hard and employed a greedy node deletion algorithm in their search.
greedy search algorithms start with an initial solution and find a locally optimal solution by successive transformations that improve some cost function.
the survey of biclustering algorithms for biological data analysis by madeira and oliveira  <cit>  also identifies greedy search algorithms as a promising area.
but greedy algorithms always make a choice that maximizes the local gain in the hope that this choice will lead to a globally good solution.
it may make wrong decisions, gets stuck into local optima and thereby loose good biclusters.
metaheuristics technique such as greedy randomized adaptive search procedure  improves on pure greedy search due to their potential to escape from local minima.
in this work, we address the biclustering problem with a variant of the grasp metaheuristics, reactive grasp, which is a combination of a semi-greedy heuristics and a local search procedure  <cit> .
the approach starts from small high quality bicluster seeds, which are tightly co-regulated submatrices of the gene expression matrix.
these seeds are further enlarged by adding more rows and columns to them.
the seed generation phase is implemented using one-dimensional k-means clustering and the seeds are enlarged using the reactive grasp method.
the algorithm makes use of mean squared residue score as the cost function to evaluate the quality of the obtained biclusters.
to avoid getting stuck at local optima, reactive grasp is equipped with the heuristics for randomizing the search and thereby allows the search process to go beyond local optima.
we evaluated our work against the classic work of cheng and church and also with our own work based on basic grasp  <cit> .
the results show that the reactive grasp method can generate larger and better biclusters than the others.
methods
model of a bicluster
a bicluster is defined on a gene expression matrix.
a gene expression matrix is an m × n matrix, whose rows represents the genes, columns the experimental conditions and th element is a real number that represents the expression level of gene i under experimental condition j. each row corresponds to the expression levels of a particular gene over all experimental conditions and each column corresponds to the expression levels of m genes under a specific experimental condition.
let g = {g <dig>  g <dig> ..., gm} and c = {c <dig>  c <dig> ....., cn} represent a set of genes and a set of experimental conditions involved in a gene expression matrix, respectively.
a bicluster is defined to be a subset of genes that exhibit similar behaviour under a subset of experimental conditions, and vice versa.
thus, in the gene expression matrix, a bicluster will appear as a sub matrix of it and represented as a pair a =  or simply as aij, where i ⊆ g and j ⊆ c. the rows and columns of the bicluster need not be contiguous as in the expression matrix.
a group of genes are said to be coherent if their level of expression reacts in parallel or correlates across a set of conditions.
similarly, a set of conditions may also have coherent levels of expression across a set of genes.
the degree of coherence of a bicluster is measured using the concept of mean squared residue score, hscore, which represents the variance of a particular subset of genes under a particular subset of conditions with respect to the coherence.
in  <cit> , cheng and church defined the mean squared residue score as follows: it is defined for bicluster aij as the sum of the squared residues.
r, the residue of an element aij in the bicluster aij, i ∈ i and j ∈ j, is a measure of how well the element fits into that bicluster.
it is defined to be:
r = aij - aij - aij + aij
now, hscore is defined as in :
hscore=∑i∈i,j∈j)2|i|∗|j|where aij=∑i∈iaij|i| is the column mean of column jaij=∑j∈jaij|j| is the row mean of row iaij=∑i∈i,j∈jaij|i|*|j| is the mean of bicluster aij.
a bicluster is defined to be a δ-bicluster if hscore  ≤ δ, for some δ ≥  <dig>  where δ is the maximum acceptable mean squared residue score.
the value of δ has to be estimated in advance, and it is different for every dataset  <cit> .
the hscore gives an indication of how the data is correlated in the sub matrix – whether it has some coherence or is random.
a matrix of equally spread random values over a range  has an expected hscore of 2/ <dig> and it is independent of the size of the matrix.
a high hscore indicates that the data is uncorrelated and a low hscore means that there is correlation in the matrix.
formulation of the biclustering problem
the biclustering problem is np-hard as proven by cheng and church   <cit> .
thus no polynomial time algorithm exists and they might require exponential computation time in the worst-case.
in this work, a heuristics based search method is adopted for finding the δ-biclusters in reasonable time.
the problem is formulated as an optimization problem, which aims at minimizing the hscore.
the algorithm has two major phases.
in the first phase, an initial set of tightly co-regulated seed biclusters are generated.
the second is the heuristics based seed growing phase, in which the seeds are further refined and enlarged by adding more genes and conditions until their hscore reaches a certain predetermined threshold.
generally pure greedy algorithms make good local choices in the hope that they result in an optimal solution.
but in case of situations like local minima, ridges and plateaus, they may make wrong decisions and thereby loose optimal biclusters  <cit> .
it is thus unlikely that a global maximum or maximal δ-bicluster will be found.
metaheuristic algorithms incorporate mechanisms to prevent getting trapped in such confined areas of the search space.
so here we use the reactive greedy randomized adaptive search procedure , which is a variant of the grasp metaheuristics is used for the extraction of δ-biclusters.
a good seed of a possible bicluster is actually a small bicluster whose hscore has reached the requirement but the volume may not be maximal.
the simplest ways to generate quality bicluster seeds is to perform standard one-dimensional clustering on both rows and columns of the expression matrix separately and then combine them to generate different seeds  <cit> .
we have used k-means algorithm with cosine angle distance as the distance measure.
during seed generation, the gene expression matrix is partitioned into p gene clusters and q condition clusters.
as the number of genes per each gene cluster is too high, each gene cluster is further divided into subclusters.
as a result we get x geneclusters and q condition clusters.
by combining these gene and condition clusters, we get x*q disjoint submatrices.
finally, the hscore values of the entire x*q submatrices are calculated and those having hscore value less than a threshold are selected as the seeds.
greedy randomized adaptive search procedure: a review
grasp is implemented as a multistart procedure, where each iteration is made up of a construction phase, where a randomized greedy solution is constructed, and a local search phase.
the local search phase starts at the constructed solution and applies iterative improvement until a locally optimal solution is found.
the grasp algorithm is summarized in table  <dig>
during the construction phase, the set of candidate elements are formed by all elements that can be incorporated to the partial solution under construction without destroying feasibility.
the quality of a candidate element is determined by its contribution, at that point, to the cost of the solution being constructed.
a greedy evaluation function measures this contribution for each candidate element.
accordingly a restricted candidate list  is constructed of high quality candidate elements.
the number of elements in rcl can be limited either by rank or by quality relative to other candidates.
in rank based rcl, r candidates with smallest greedy function value are selected from the candidate list and r determines how greedy or random the construction will be.
the quality based rcl uses a greedy function cutoff value and only considers candidates with a greedy function value no greater than the cutoff.
to implement this, a real-valued rcl parameter α ∈  is used and it determines which elements are to be placed in the rcl at each iteration of the construction phase.
since in the case of a minimization problem, the case α =  <dig> corresponds to a pure greedy algorithm, while α =  <dig> is equivalent to a pure random construction.
thus, the parameter 'α' controls the amount of greediness and randomness in the algorithm.
in basic grasp implementation, the same α is used along all iterations and it is usually determined through experimentation.
in our earlier work based on grasp, we used a quality-based implementation of rcl for the extraction of biclusters  <cit> .
the element to be incorporated into the partial solution is randomly selected from those in the rcl.
once the selected element is incorporated to the partial solution, the candidate list is updated and the incremental costs are re-evaluated.
the description of the construction phase is given in table  <dig>
the solution generated by a greedy randomized construction is not necessarily optimal.
the local search phase usually improves the constructed solution.
a local search algorithm works in an iterative fashion by successively replacing the current solution by a better solution in the neighbourhood of the current solution.
it terminates when no better solution is found in the neighbourhood.
in  <cit> , resende and ribeiro reported that in most cases both first-improving and best-improving local search strategies lead to the same final solution, but in case of smaller computation times, the former outperforms the latter.
hence in our algorithm, a first improving strategy is used for the implementation of the local search.
the description of the algorithm is given in table  <dig>  in the algorithm n  represents the neighbourhood of the solution and f represents the cost function corresponding to the problem.
an especially appealing characteristic of grasp is the ease with which it can be implemented.
few parameters need to be set and tuned.
basic implementation of grasp relies exclusively on two parameters.
the first controls the number of construction/local search iterations that will be applied and the second, the rcl parameter α, controls the blend of randomness and greediness in the solution construction procedure.
but in  <cit> , prais and ribeiro showed that using a single fixed value for α often hinders finding a high quality solution, which eventually could be found if another value was used.
they proposed an extension of the basic grasp called reactive grasp, in which the parameter α is not fixed, but instead is selected at each iteration from a discrete set of possible values.
the solution values used along the previous iterations serve as a guide for the selection process.
reactive grasp includes a memory mechanism that enables good solutions found in earlier iterations of the search to influence the search later.
biclustering using grasp
biclustering using grasp is implemented as a two-step procedure.
in the first, the grasp iterations are performed over the seed bicluster to enlarge it column wise and during the second step, another set of grasp iterations add more rows while keeping the hscore below a certain predetermined threshold.
during the construction phase of each grasp iteration, a restricted candidate list  is made from the candidate list according to the greedy evaluation function as shown in .
rcl ← {s ∈ c or g|hscore  ≤ smin + α }
where
smin ← min {hscore |∀ t ∈ c or g}
smax ← max {hscore |∀ t ∈ c or g}
c is the candidate list of conditions
g is the candidate list of genes
α is the rcl threshold parameter, α ∈
the element to be incorporated into the partial solution is randomly selected from those in the rcl.
once the selected element is incorporated to the partial solution, the candidate list is updated and the incremental costs are reevaluated.
the quality of elements in the rcl depends greatly on the threshold parameter α. α =  <dig> corresponds to pure random construction, as α → 0; the algorithm behaves more or less like greedy algorithms.
hence for better results, proper tuning on the value of α is required and usually it is determined through experimentation.
since the solution constructed during the construction phase is not necessarily optimal, the local search is performed over the constructed solution for further improvements.
biclustering using reactive grasp
in reactive grasp, instead of using a fixed value for the parameter α, it uses different values in different iterations.
during each iteration the value of α is selected from a discrete set of possible values, say r = {α <dig> .....,αm}.
the solution values found along the previous iterations serve as a guide for the selection process.
let pi be the selection probability associated with the choice of αi, for i =  <dig> ....., m. initially all pi's are made equal to 1/m.
the selection probabilities are periodically reevaluated using information collected during the search.
after each iteration, with a particular αi, the difference in the current solution value and the value of the solution obtained in the previous iteration is calculated.
let ai be the average value of such differences obtained taking α = αi in the construction phase.
the probability distribution is updated after each grasp iteration by taking
pi=qi∑j=1mqj
with qi = 1/ai for i =  <dig> ..., m. the value of qi will be larger for values of α = αi leading to the best solutions on the average.
larger values of qi correspond to more suitable values for the parameter α. the probabilities associated with these more appropriate values will then increase when they are reevaluated.
significance evaluation
the statistical significance of the biclusters obtained is evaluated by calculating the p-values, which signify how well they match with the known gene annotation.
a smaller p-value, close to zero, is indicative of a better match  <cit> .
tanay et al.
<cit>  proposed a technique called correspondence plot to evaluate the biclusters using prior biological knowledge.
it takes advantage of a known classification of genes or experimental conditions.
the plot depicts the distribution of p-values of the biclusters produced based on a known classification of conditions or a given gene annotation.
for each value of p on a logarithmic scale, the plot presents the fraction of biclusters whose p-value is at most p out of the, say b, best biclusters.
the p-values of the biclusters are calculated according to the known classification of genes as follows: it is the probability of finding at least k genes in a bicluster of n genes, belonging to a specific functional category comprising f genes out of total g annotated genes is given by
pi=∑i=kmin⁡ gcn
in the correspondence plot, early departure of the curve from the x-axis of the plot indicates the existence of biclusters with low p-values.
consequently, area under the curve shows the approximate degree of statistical significance of the biclusters used to draw the curve  <cit> .
for statistical validation, we used the  <dig> known categories of yeast genes reported by tavazoie et al.
<cit> .
they used an iterative optimization-based partitional clustering to group  <dig> genes into  <dig> expression classes which were highly enriched for genes of similar function on time-series of mrna abundance, measured over two synchronized saccharomyces cerevisiae cell cycles.
also to evaluate the biological significance of the obtained biclusters, in terms of the associated biological processes, molecular functions and cellular components respectively, we have used the sgd go gene ontology term finder  <cit> .
time complexity of the algorithm
to find one bicluster from a seed, the algorithm has to compute the hscores of all the submatrices that may result from any row  or column  addition, before each choice can be made.
since m and n are the total number of genes and conditions in the gene expression matrix, the hscore can be calculated in o  time.
hence in the worst case, the algorithm requires o ) time.
RESULTS
dataset used
the proposed biclustering algorithm is implemented in matlab and tested on the yeast saccharomyces cerevisiae cell cycle expression dataset.
the dataset is based on tavazoie et al.
<cit>  and is taken from  <cit> .
it is a collection of  <dig> genes and  <dig> experimental conditions , having  <dig> null entries with - <dig> indicating the missing values.
all entries are integers lying in the range  <dig> to  <dig>  the value of δ is used as an upper limit of allowable dissimilarity among genes and conditions.
a higher δ is indicative of diminishing homogeneity.
hence in our approach we used a value of  <dig> for δ.
biclustering using grasp and reactive grasp
the reactive grasp and basic grasp algorithms begin the search from tightly co-regulated bicluster seeds.
these seeds are enlarged by adding more genes and conditions until the hscore of the bicluster reaches the given threshold  value.
the seed growing is implemented in two phases-construction and local search.
during the construction phase it picks a random move from among a restricted candidate list  of possible best moves.
in case of a row or a column addition, rcl contains only top quality rows or columns whose inclusion to the current partial solution doesn't affect feasibility of the solution.
the quality of elements in the rcl depends greatly on the threshold parameter α and in grasp, the same value for α is used along all iterations.
but it often hinders finding a high quality solution, which could be found if another value was used.
hence in reactive grasp a self-adjustable α is used.
during each iteration, the value of α is selected from a discrete set of possible values depending on the selection probabilities.
the elements of the discrete set can be in the range .
in order to ensure the quality of solutions, we have completely eliminated the extreme values.
hence in our implementation of reactive grasp, we have used  <dig> numbers in the range .
after the construction phase, local search is performed on these solutions to further improvise them.
in figure  <dig>  four of the biclusters found by the grasp algorithm on the yeast dataset are shown.
from a visual inspection of the biclusters presented, one can notice that the genes present a similar behaviour under a set of conditions only.
figure  <dig> shows the set of biclusters derived from the same seeds using the reactive grasp.
the p-values of the biclusters show significant change from that of the grasp method.
statistical and biological significance evaluation
the statistical significance of the biclusters obtained is evaluated by calculating the p-values, which signify how well they match with the known gene annotation.
for a statistical comparison of the biclusters produced by our method with that of cheng and church, we used the correspondence plot proposed by tanay et al.
<cit> .
figure  <dig> presents the correspondence plot.
in the plot, early departure of the curve from the x-axis of the plot indicates the existence of biclusters with low p-values.
consequently, area under the curve shows the approximate degree of statistical significance of the biclusters used to draw the curve  <cit> .
it shows that the biclusters generated by the reactive grasp algorithm tend to be more statistically significant than the basic grasp and cheng and church approach.
while plotting the correspondence plot, we choose those biclusters in which more than 60% of their annotated members had the same class.
out of those, we only used biclusters that were functionally enriched.
we apply the yeast genome gene ontology termfinder  <cit>  on each discovered biclusters to evaluate their biological significance in terms of associated biological processes, molecular functions and cellular components respectively.
for a sample set of biclusters in figure  <dig>  table  <dig> describes the top go terms of the three categories with the lowest p-values.
the go terms are displayed in the decreasing order of significance.
for the bicluster labelled b <dig>  the genes rfa <dig>  pol <dig>  pol <dig>  cdc <dig>  msh <dig>  rad <dig>  cdc <dig>  rfa <dig>  and cdc <dig> are together involved in the process of dna-dependent dna replication, dna replication and dna metabolic process.
each go term is associated with a tuple, for example dna-dependent dna replication  indicates  <dig> out of the total  <dig> genes of b <dig> belong to this process and their statistical significance is  <dig> e- <dig> i.e.
p-value.
also from the table it is clear that the biclusters extracted are distinct along each category.
existence of biclusters comprising a significant proportion of those genes that are considered similar biologically is proof that a specific biclustering technique produces biologically relevant results.
this shows that our algorithm is capable of identifying a broader range of biologically significant biclusters.
discussion
in grasp, an appropriate value of the rcl parameter α is clearly critical and relevant to achieve a good balance between computation time and solution quality.
but it requires a lot of experimentation overhead to fix the value.
hence we proposed reactive grasp, which is a variant of grasp, to tackle the biclustering problem.
reactive grasp, being self-adjustable, changes the value of the rcl parameter periodically according with the quality of the solutions obtained recently.
the approach looks more robust and doesn't require calibration efforts.
the experimental results also indicate that the reactive grasp approach outperforms the basic grasp and cheng and church algorithm.
CONCLUSIONS
this paper dealt with the extraction of biclusters in microarray gene expression data.
we addressed the problem with a heuristics based seed-growing algorithm – the reactive grasp metaheuristics – which is a variant of the grasp approach.
the seed biclusters, which are tightly co-regulated submatrices, are obtained by performing k-means clustering algorithm to the rows and columns separately and then by combining them.
during seed growing, these seed biclusters are further refined by adding more rows and columns to extend their size while keeping the mean squared residue score below a certain predefined threshold.
since reactive grasp being semi-greedy, it tries to combine the advantages of both random and greedy solution constructions and thereby gives the possibility to escape from locally optimal solutions.
also it makes use of a memory mechanism that enables good solutions found in earlier iterations of the search to influence the search later.
to our knowledge, biclustering using grasp techniques has not till been reported before in the literature.
we have conducted and tested our algorithm on the yeast dataset.
the experimental results show that the algorithm is successful in finding statistically and biologically verifiable biclusters.
also the correspondence plot reveals that the algorithm finds biclusters that better aligned more closely with prior biological knowledge than that of basic grasp and cheng and church approach.
competing interests
the authors declare that they have no competing interests.
authors' contributions
sd and asn participated in the method design.
sd performed all the experiments.
sd and asn participated in the result discussion.
sd and asn participated in the paper writing.
asn finalized the submission.
all authors read and approved the final manuscript.

 gene expression microarray is a highly popular technology that allows genome-wide measurement of rna expression levels in a highly quantitative manner. gene expression data is typically arranged as an m × n data matrix, with rows corresponding to genes and columns corresponding to experimental conditions. conditions can be different environmental conditions or different time points corresponding to one or more environmental conditions. the th entry of the gene expression matrix represents the expression level of the gene corresponding to row m under the specific condition corresponding to column n. the numerical value of the entry is usually the logarithm of the relative amount of the mrna of the gene under the specific condition. by analyzing the gene expression data, we can potentially determine which genes behave in similar ways, how genes interact, which genes contribute to the same pathway, and so on. the similarity between the genes can be analyzed by clustering the gene expression data. cluster analysis plays an important role in the microarray data analysis through the grouping of genes into subsets with similar expression patterns or similar function. however, clustering has its limitations. mainly, clustering works on the assumption that related genes behave similarly across all measured conditions. but a general understanding of cellular processes expects subsets of genes to be co-regulated and co-expressed only under certain experimental conditions, but behaves almost independently under other conditions. in order to overcome the above shortcoming of clustering, the concept of biclustering is applied to gene expression data. biclustering was first described in the literature by hartigan. it refers to a distinct class of clustering algorithms that perform simultaneous row column clustering. cheng and church were the first to apply it to gene expression data. biclustering identifies subsets of genes and subsets of conditions that shares similar expression patterns, by performing simultaneous clustering of both rows and columns of the gene expression matrix. as a result, homogeneous sub matrices of the gene expression matrix are obtained and they are known as biclusters. in, cheng and church proposed a similarity score called mean squared residue score as a measure of coherence of the rows and columns in the bicluster. when all the elements in a bicluster are similar, the mean squared residue score is low. the lower the score, stronger the coherence exhibited by the bicluster, and better is the quality of the bicluster. however, from a biological point of view, the interest resides in biclusters with subset of genes showing similar behaviour and not with similar values. hence the method aims at finding large and maximal biclusters with mean squared residue score below a certain threshold, δ, and the biclusters thus obtained are called δ-biclusters. the value of δ has to be estimated in advance, and it is different for every dataset. in, cheng and church identified the problem of finding significant biclusters as being np-hard and employed a greedy node deletion algorithm in their search. greedy search algorithms start with an initial solution and find a locally optimal solution by successive transformations that improve some cost function. the survey of biclustering algorithms for biological data analysis by madeira and oliveira also identifies greedy search algorithms as a promising area. but greedy algorithms always make a choice that maximizes the local gain in the hope that this choice will lead to a globally good solution. it may make wrong decisions, gets stuck into local optima and thereby loose good biclusters. metaheuristics technique such as greedy randomized adaptive search procedure improves on pure greedy search due to their potential to escape from local minima. in this work, we address the biclustering problem with a variant of the grasp metaheuristics, reactive grasp, which is a combination of a semi-greedy heuristics and a local search procedure. the approach starts from small high quality bicluster seeds, which are tightly co-regulated submatrices of the gene expression matrix. these seeds are further enlarged by adding more rows and columns to them. the seed generation phase is implemented using one-dimensional k-means clustering and the seeds are enlarged using the reactive grasp method. the algorithm makes use of mean squared residue score as the cost function to evaluate the quality of the obtained biclusters. to avoid getting stuck at local optima, reactive grasp is equipped with the heuristics for randomizing the search and thereby allows the search process to go beyond local optima. we evaluated our work against the classic work of cheng and church and also with our own work based on basic grasp. the results show that the reactive grasp method can generate larger and better biclusters than the others. methods model of a bicluster a bicluster is defined on a gene expression matrix. a gene expression matrix is an m × n matrix, whose rows represents the genes, columns the experimental conditions and th element is a real number that represents the expression level of gene i under experimental condition j. each row corresponds to the expression levels of a particular gene over all experimental conditions and each column corresponds to the expression levels of m genes under a specific experimental condition. let g = {g g..., gm} and c = {c c....., cn} represent a set of genes and a set of experimental conditions involved in a gene expression matrix, respectively. a bicluster is defined to be a subset of genes that exhibit similar behaviour under a subset of experimental conditions, and vice versa. thus, in the gene expression matrix, a bicluster will appear as a sub matrix of it and represented as a pair a = or simply as aij, where i ⊆ g and j ⊆ c. the rows and columns of the bicluster need not be contiguous as in the expression matrix. a group of genes are said to be coherent if their level of expression reacts in parallel or correlates across a set of conditions. similarly, a set of conditions may also have coherent levels of expression across a set of genes. the degree of coherence of a bicluster is measured using the concept of mean squared residue score, hscore, which represents the variance of a particular subset of genes under a particular subset of conditions with respect to the coherence. in, cheng and church defined the mean squared residue score as follows: it is defined for bicluster aij as the sum of the squared residues. r, the residue of an element aij in the bicluster aij, i ∈ i and j ∈ j, is a measure of how well the element fits into that bicluster. it is defined to be: r = aij - aij - aij + aij now, hscore is defined as in: hscore=∑i∈i,j∈j)2|i|∗|j|where aij=∑i∈iaij|i| is the column mean of column jaij=∑j∈jaij|j| is the row mean of row iaij=∑i∈i,j∈jaij|i|*|j| is the mean of bicluster aij. a bicluster is defined to be a δ-bicluster if hscore ≤ δ, for some δ ≥ where δ is the maximum acceptable mean squared residue score. the value of δ has to be estimated in advance, and it is different for every dataset. the hscore gives an indication of how the data is correlated in the sub matrix – whether it has some coherence or is random. a matrix of equally spread random values over a range has an expected hscore of 2/ and it is independent of the size of the matrix. a high hscore indicates that the data is uncorrelated and a low hscore means that there is correlation in the matrix. formulation of the biclustering problem the biclustering problem is np-hard as proven by cheng and church. thus no polynomial time algorithm exists and they might require exponential computation time in the worst-case. in this work, a heuristics based search method is adopted for finding the δ-biclusters in reasonable time. the problem is formulated as an optimization problem, which aims at minimizing the hscore. the algorithm has two major phases. in the first phase, an initial set of tightly co-regulated seed biclusters are generated. the second is the heuristics based seed growing phase, in which the seeds are further refined and enlarged by adding more genes and conditions until their hscore reaches a certain predetermined threshold. generally pure greedy algorithms make good local choices in the hope that they result in an optimal solution. but in case of situations like local minima, ridges and plateaus, they may make wrong decisions and thereby loose optimal biclusters. it is thus unlikely that a global maximum or maximal δ-bicluster will be found. metaheuristic algorithms incorporate mechanisms to prevent getting trapped in such confined areas of the search space. so here we use the reactive greedy randomized adaptive search procedure, which is a variant of the grasp metaheuristics is used for the extraction of δ-biclusters. a good seed of a possible bicluster is actually a small bicluster whose hscore has reached the requirement but the volume may not be maximal. the simplest ways to generate quality bicluster seeds is to perform standard one-dimensional clustering on both rows and columns of the expression matrix separately and then combine them to generate different seeds. we have used k-means algorithm with cosine angle distance as the distance measure. during seed generation, the gene expression matrix is partitioned into p gene clusters and q condition clusters. as the number of genes per each gene cluster is too high, each gene cluster is further divided into subclusters. as a result we get x geneclusters and q condition clusters. by combining these gene and condition clusters, we get x*q disjoint submatrices. finally, the hscore values of the entire x*q submatrices are calculated and those having hscore value less than a threshold are selected as the seeds. greedy randomized adaptive search procedure: a review grasp is implemented as a multistart procedure, where each iteration is made up of a construction phase, where a randomized greedy solution is constructed, and a local search phase. the local search phase starts at the constructed solution and applies iterative improvement until a locally optimal solution is found. the grasp algorithm is summarized in table during the construction phase, the set of candidate elements are formed by all elements that can be incorporated to the partial solution under construction without destroying feasibility. the quality of a candidate element is determined by its contribution, at that point, to the cost of the solution being constructed. a greedy evaluation function measures this contribution for each candidate element. accordingly a restricted candidate list is constructed of high quality candidate elements. the number of elements in rcl can be limited either by rank or by quality relative to other candidates. in rank based rcl, r candidates with smallest greedy function value are selected from the candidate list and r determines how greedy or random the construction will be. the quality based rcl uses a greedy function cutoff value and only considers candidates with a greedy function value no greater than the cutoff. to implement this, a real-valued rcl parameter α ∈ is used and it determines which elements are to be placed in the rcl at each iteration of the construction phase. since in the case of a minimization problem, the case α = corresponds to a pure greedy algorithm, while α = is equivalent to a pure random construction. thus, the parameter'α' controls the amount of greediness and randomness in the algorithm. in basic grasp implementation, the same α is used along all iterations and it is usually determined through experimentation. in our earlier work based on grasp, we used a quality-based implementation of rcl for the extraction of biclusters. the element to be incorporated into the partial solution is randomly selected from those in the rcl. once the selected element is incorporated to the partial solution, the candidate list is updated and the incremental costs are re-evaluated. the description of the construction phase is given in table the solution generated by a greedy randomized construction is not necessarily optimal. the local search phase usually improves the constructed solution. a local search algorithm works in an iterative fashion by successively replacing the current solution by a better solution in the neighbourhood of the current solution. it terminates when no better solution is found in the neighbourhood. in, resende and ribeiro reported that in most cases both first-improving and best-improving local search strategies lead to the same final solution, but in case of smaller computation times, the former outperforms the latter. hence in our algorithm, a first improving strategy is used for the implementation of the local search. the description of the algorithm is given in table in the algorithm n represents the neighbourhood of the solution and f represents the cost function corresponding to the problem. an especially appealing characteristic of grasp is the ease with which it can be implemented. few parameters need to be set and tuned. basic implementation of grasp relies exclusively on two parameters. the first controls the number of construction/local search iterations that will be applied and the second, the rcl parameter α, controls the blend of randomness and greediness in the solution construction procedure. but in, prais and ribeiro showed that using a single fixed value for α often hinders finding a high quality solution, which eventually could be found if another value was used. they proposed an extension of the basic grasp called reactive grasp, in which the parameter α is not fixed, but instead is selected at each iteration from a discrete set of possible values. the solution values used along the previous iterations serve as a guide for the selection process. reactive grasp includes a memory mechanism that enables good solutions found in earlier iterations of the search to influence the search later. biclustering using grasp biclustering using grasp is implemented as a two-step procedure. in the first, the grasp iterations are performed over the seed bicluster to enlarge it column wise and during the second step, another set of grasp iterations add more rows while keeping the hscore below a certain predetermined threshold. during the construction phase of each grasp iteration, a restricted candidate list is made from the candidate list according to the greedy evaluation function as shown in. rcl ← {s ∈ c or g|hscore ≤ smin + α } where smin ← min {hscore |∀ t ∈ c or g} smax ← max {hscore |∀ t ∈ c or g} c is the candidate list of conditions g is the candidate list of genes α is the rcl threshold parameter, α ∈ the element to be incorporated into the partial solution is randomly selected from those in the rcl. once the selected element is incorporated to the partial solution, the candidate list is updated and the incremental costs are reevaluated. the quality of elements in the rcl depends greatly on the threshold parameter α. α = corresponds to pure random construction, as α → 0; the algorithm behaves more or less like greedy algorithms. hence for better results, proper tuning on the value of α is required and usually it is determined through experimentation. since the solution constructed during the construction phase is not necessarily optimal, the local search is performed over the constructed solution for further improvements. biclustering using reactive grasp in reactive grasp, instead of using a fixed value for the parameter α, it uses different values in different iterations. during each iteration the value of α is selected from a discrete set of possible values, say r = {α.....,αm}. the solution values found along the previous iterations serve as a guide for the selection process. let pi be the selection probability associated with the choice of αi, for i =....., m. initially all pi's are made equal to 1/m. the selection probabilities are periodically reevaluated using information collected during the search. after each iteration, with a particular αi, the difference in the current solution value and the value of the solution obtained in the previous iteration is calculated. let ai be the average value of such differences obtained taking α = αi in the construction phase. the probability distribution is updated after each grasp iteration by taking pi=qi∑j=1mqj with qi = 1/ai for i =..., m. the value of qi will be larger for values of α = αi leading to the best solutions on the average. larger values of qi correspond to more suitable values for the parameter α. the probabilities associated with these more appropriate values will then increase when they are reevaluated. significance evaluation the statistical significance of the biclusters obtained is evaluated by calculating the p-values, which signify how well they match with the known gene annotation. a smaller p-value, close to zero, is indicative of a better match. tanay et al. proposed a technique called correspondence plot to evaluate the biclusters using prior biological knowledge. it takes advantage of a known classification of genes or experimental conditions. the plot depicts the distribution of p-values of the biclusters produced based on a known classification of conditions or a given gene annotation. for each value of p on a logarithmic scale, the plot presents the fraction of biclusters whose p-value is at most p out of the, say b, best biclusters. the p-values of the biclusters are calculated according to the known classification of genes as follows: it is the probability of finding at least k genes in a bicluster of n genes, belonging to a specific functional category comprising f genes out of total g annotated genes is given by pi=∑i=kmin⁡ gcn in the correspondence plot, early departure of the curve from the x-axis of the plot indicates the existence of biclusters with low p-values. consequently, area under the curve shows the approximate degree of statistical significance of the biclusters used to draw the curve. for statistical validation, we used the known categories of yeast genes reported by tavazoie et al.. they used an iterative optimization-based partitional clustering to group genes into expression classes which were highly enriched for genes of similar function on time-series of mrna abundance, measured over two synchronized saccharomyces cerevisiae cell cycles. also to evaluate the biological significance of the obtained biclusters, in terms of the associated biological processes, molecular functions and cellular components respectively, we have used the sgd go gene ontology term finder. time complexity of the algorithm to find one bicluster from a seed, the algorithm has to compute the hscores of all the submatrices that may result from any row or column addition, before each choice can be made. since m and n are the total number of genes and conditions in the gene expression matrix, the hscore can be calculated in o time. hence in the worst case, the algorithm requires o ) time.  dataset used the proposed biclustering algorithm is implemented in matlab and tested on the yeast saccharomyces cerevisiae cell cycle expression dataset. the dataset is based on tavazoie et al. and is taken from. it is a collection of genes and experimental conditions, having null entries with - indicating the missing values. all entries are integers lying in the range to the value of δ is used as an upper limit of allowable dissimilarity among genes and conditions. a higher δ is indicative of diminishing homogeneity. hence in our approach we used a value of for δ. biclustering using grasp and reactive grasp the reactive grasp and basic grasp algorithms begin the search from tightly co-regulated bicluster seeds. these seeds are enlarged by adding more genes and conditions until the hscore of the bicluster reaches the given threshold value. the seed growing is implemented in two phases-construction and local search. during the construction phase it picks a random move from among a restricted candidate list of possible best moves. in case of a row or a column addition, rcl contains only top quality rows or columns whose inclusion to the current partial solution doesn't affect feasibility of the solution. the quality of elements in the rcl depends greatly on the threshold parameter α and in grasp, the same value for α is used along all iterations. but it often hinders finding a high quality solution, which could be found if another value was used. hence in reactive grasp a self-adjustable α is used. during each iteration, the value of α is selected from a discrete set of possible values depending on the selection probabilities. the elements of the discrete set can be in the range. in order to ensure the quality of solutions, we have completely eliminated the extreme values. hence in our implementation of reactive grasp, we have used numbers in the range. after the construction phase, local search is performed on these solutions to further improvise them. in figure four of the biclusters found by the grasp algorithm on the yeast dataset are shown. from a visual inspection of the biclusters presented, one can notice that the genes present a similar behaviour under a set of conditions only. figure shows the set of biclusters derived from the same seeds using the reactive grasp. the p-values of the biclusters show significant change from that of the grasp method. statistical and biological significance evaluation the statistical significance of the biclusters obtained is evaluated by calculating the p-values, which signify how well they match with the known gene annotation. for a statistical comparison of the biclusters produced by our method with that of cheng and church, we used the correspondence plot proposed by tanay et al.. figure presents the correspondence plot. in the plot, early departure of the curve from the x-axis of the plot indicates the existence of biclusters with low p-values. consequently, area under the curve shows the approximate degree of statistical significance of the biclusters used to draw the curve. it shows that the biclusters generated by the reactive grasp algorithm tend to be more statistically significant than the basic grasp and cheng and church approach. while plotting the correspondence plot, we choose those biclusters in which more than 60% of their annotated members had the same class. out of those, we only used biclusters that were functionally enriched. we apply the yeast genome gene ontology termfinder on each discovered biclusters to evaluate their biological significance in terms of associated biological processes, molecular functions and cellular components respectively. for a sample set of biclusters in figure table describes the top go terms of the three categories with the lowest p-values. the go terms are displayed in the decreasing order of significance. for the bicluster labelled b the genes rfa pol pol cdc msh rad cdc rfa and cdc are together involved in the process of dna-dependent dna replication, dna replication and dna metabolic process. each go term is associated with a tuple, for example dna-dependent dna replication indicates out of the total genes of b belong to this process and their statistical significance is e- i.e. p-value. also from the table it is clear that the biclusters extracted are distinct along each category. existence of biclusters comprising a significant proportion of those genes that are considered similar biologically is proof that a specific biclustering technique produces biologically relevant results. this shows that our algorithm is capable of identifying a broader range of biologically significant biclusters. discussion in grasp, an appropriate value of the rcl parameter α is clearly critical and relevant to achieve a good balance between computation time and solution quality. but it requires a lot of experimentation overhead to fix the value. hence we proposed reactive grasp, which is a variant of grasp, to tackle the biclustering problem. reactive grasp, being self-adjustable, changes the value of the rcl parameter periodically according with the quality of the solutions obtained recently. the approach looks more robust and doesn't require calibration efforts. the experimental results also indicate that the reactive grasp approach outperforms the basic grasp and cheng and church algorithm.  this paper dealt with the extraction of biclusters in microarray gene expression data. we addressed the problem with a heuristics based seed-growing algorithm – the reactive grasp metaheuristics – which is a variant of the grasp approach. the seed biclusters, which are tightly co-regulated submatrices, are obtained by performing k-means clustering algorithm to the rows and columns separately and then by combining them. during seed growing, these seed biclusters are further refined by adding more rows and columns to extend their size while keeping the mean squared residue score below a certain predefined threshold. since reactive grasp being semi-greedy, it tries to combine the advantages of both random and greedy solution constructions and thereby gives the possibility to escape from locally optimal solutions. also it makes use of a memory mechanism that enables good solutions found in earlier iterations of the search to influence the search later. to our knowledge, biclustering using grasp techniques has not till been reported before in the literature. we have conducted and tested our algorithm on the yeast dataset. the experimental results show that the algorithm is successful in finding statistically and biologically verifiable biclusters. also the correspondence plot reveals that the algorithm finds biclusters that better aligned more closely with prior biological knowledge than that of basic grasp and cheng and church approach. competing interests the authors declare that they have no competing interests. authors' contributions sd and asn participated in the method design. sd performed all the experiments. sd and asn participated in the result discussion. sd and asn participated in the paper writing. asn finalized the submission. all authors read and approved the final manuscript. 
we performed statistical and biological validations of the biclusters obtained and evaluated the method against the results of basic grasp and as well as with the classic work of cheng and church. the experimental results indicate that the reactive grasp approach outperforms the basic grasp algorithm and cheng and church approach. cheng and church have introduced a measure called mean squared residue score to evaluate the quality of a bicluster and has become one of the most popular measures to search for biclusters. in this paper, we review basic concepts of the metaheuristics greedy randomized adaptive search procedure -construction and local search phases and propose a new method which is a variant of grasp called reactive greedy randomized adaptive search procedure to detect significant biclusters from large microarray datasets. the reactive grasp approach for the detection of significant biclusters is robust and does not require calibration efforts. biclustering algorithms belong to a distinct class of clustering algorithms that perform simultaneous clustering of both rows and columns of the gene expression matrix and can be a very useful analysis tool when some genes have multiple functions and experimental conditions are diverse. in the second step, these seeds are grown using the reactive grasp, in which the basic parameter that defines the restrictiveness of the candidate list is self-adjusted, depending on the quality of the solutions found previously.
 biclustering algorithms belong to a distinct class of clustering algorithms that perform simultaneous clustering of both rows and columns of the gene expression matrix and can be a very useful analysis tool when some genes have multiple functions and experimental conditions are diverse. cheng and church have introduced a measure called mean squared residue score to evaluate the quality of a bicluster and has become one of the most popular measures to search for biclusters. in this paper, we review basic concepts of the metaheuristics greedy randomized adaptive search procedure -construction and local search phases and propose a new method which is a variant of grasp called reactive greedy randomized adaptive search procedure to detect significant biclusters from large microarray datasets. the method has two major steps. first, high quality bicluster seeds are generated by means of k-means clustering. in the second step, these seeds are grown using the reactive grasp, in which the basic parameter that defines the restrictiveness of the candidate list is self-adjusted, depending on the quality of the solutions found previously.  we performed statistical and biological validations of the biclusters obtained and evaluated the method against the results of basic grasp and as well as with the classic work of cheng and church. the experimental results indicate that the reactive grasp approach outperforms the basic grasp algorithm and cheng and church approach.  the reactive grasp approach for the detection of significant biclusters is robust and does not require calibration efforts. 13– january the seventh asia pacific bioinformatics conference beijing, china 