1. A computer-implemented method of finding robust clusters in microarray data comprising: identifying patterns of variation in the microarray data; applying consensus ensemble clustering to said identified variations; and identifying robust clusters, applying the consensus ensemble clustering further including creating an agreement matrix across clustering techniques for clusters found from each clustering technique and applying and reapplying simulated annealing to convert the agreement matrix into block diagonal form and to identify the robust clusters along the diagonal.