An important aspect of cancer research is the development of better tools to understand underlying cellular processes. These tools are crucial as they help clinicians choose the best treatment strategy for each patient or develop new treatment strategies. Gene expression data is typically represented as a large matrix of gene expression levels across various samples. The study of such data is a valuable tool to improve the understanding of biological processes. Therefore, grouping genes according to their expression under certain conditions or group conditions based on the expression of some genes is a frequent objective of gene expression analysis. Biclustering, also known as co-clustering, is one of the most common approaches for such a task. It identifies specific subsets of rows and columns that jointly form homogeneous entries. However, relevant gene/sample combinations can be missed when they lack the assumed homogeneity of expression values. It is a growing concern as cancer is a heterogeneous disease. Thus, there is an ongoing trend for the study of cellular processes by combining heterogeneous data sources. This thesis is centered around the development of approaches that find patterns of high values in large data matrices. It encompasses the definition of optimization problems and algorithmic solutions to find such patterns. The relevance of these contributions is evaluated through implementation and comparative experiments on biological data.