I have a few hundred variables representing different biomarkers. These variables have been measured in both cases and controls. The underlying units of measurement are not important, so I have standardized all variables (subtract mean, divide by SD). The standardization was done separately in cases and in controls, since the two groups are expected to have different means for some of the measurements. Within a group, most variables followed a normal distribution, a few that did not were log-transformed to get them closer to normal before standardizing (those variables can be left out if necessary).
Some variables will correlate with each-other in both controls and cases. Other variables may differ in the patterns of correlation they show with each-other in cases vs. controls. Correlations present in both cases and controls can be thought of as noise that I want to remove, so I can get only the case-specific correlations.
My end goal is to look for sets of markers that tend to group together in cases (using a method like factor analysis or PCA).
My original idea was to subtract the covariance matrix for controls from the covariance matrix for cases. But as pointed out in the comments on this question, that won't work because it has the potential to produce negative variances in some of the cells. (Or in this case, since the covariance matrix for standardized variables is a correlation matrix, subtracting would produce 0s on all the diagonals.)
Is there a better approach to take to look at the question "Are there groups of variables that tend to be correlated with each-other specifically in cases, after accounting for any patterns that cases share with controls"?