# Strong correlations masking weak correlations?

I want to calculate correlations among thousands of genes using expression data across many different samples. For the non-biologists, I will try to explain. Basically, I have genes $i=1..M$ and samples $j=1..N$ and a $(M \times N)$ matrix $X$, with entries $X_{ij}$ corresponding to the expression levels of gene $i$ in sample $j$. Therefore, the correlations I am computing are between vectors $X_{k} = (X{_k}{_1}, X{_k}{_2},.., X{_k}{_N})$ and $X_l = (X{_l}{_1}, X{_l}{_2},..,X{_l}{_N})$.

My problem is that sometimes strong correlations are masking weaker correlations that are still biologically relevant. One reason this may happen is that genes are organized into large functional modules that are themselves highly correlated (or anti-correlated). For example, maybe genes $X_5$ and $X{_1}{_0}$ belong to mutually exclusive modules and are therefore strongly anticorrelated. This anticorrelation masks weaker within-module correlations that may not be as significant when looking across all samples.

The problem is I do not always know what functional modules each gene belongs to. I am looking for a general way to detect weaker correlations, perhaps by "subtracting" out the strong correlations in my data? Ideally, I would like to find many levels of correlation. This sounds like a simple statistical problem, but I'm not sure where to begin looking. I've looked at multi-level analysis, but I don't want to specify "levels" in my data. I am thinking more along the lines of "eigencorrelations" where each group of correlations describes different types of variation among the data.

If anyone can point me in the right direction, it would be really helpful. Thanks!

If "correlations" mean the $M(M-1))/2$ Pearson correlations of the pairs of rows of $X$ then you should look into exploratory factor analysis (or even component analysis, which, regardless of its theoretical shortcomings, often provides a simpler path to the same substantive conclusions). Once you have an idea of which functional module each gene belongs to, you might then try confirmatory factor analysis or structural equation modeling.