Semi-supervised consensus clustering for gene expression data analysis