This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Microarray Relative Expression Disease V Controls

Hi Biostar folks, Being a newbie to microarrays, i wonder if somebody can help me on this. I have 20 diseased and 5 (unmatched) controls from Affy U133 plus2. So far:

  1. I normalized that data (all 25) with RMA
  2. i have used Limma for differential analysis
  3. And next i would like to plot heatmap for cluster analysis of the differentially expressed genes.

What i am not sure is how to compute the relative (over- and under-) expression measures on PER DISEASED SAMPLE basis. RMA data is log2 normalised and to work out the direction of regulation and its magnitude would require some adjustments presumably. Shall i take the mean expression of controls for every probe i and then divide each case (patient) with this number to obtain per-patient based over- and under-expression of every probe ?

thanks, Alicia

Here is my code Sean (thanks)

expressionData <- read.table("RMA-normalised.txt", header = T , row.names = 1 );
groups <- c(rep("T", 20), rep("N", 5));
lev <- unique(groups);
f <- factor(groups, levels=lev);
design <- model.matrix(~0+f);
colnames(design) <- lev;
fit <- lmFit(expressionData, design);
contMatrix <- makeContrasts(contrasts=c("T-N"),levels=design);
fit2 <- contrasts.fit(fit, contMatrix);
fit2 <- eBayes(fit2);
for (fdr in c(0.05, 0.01)) {
    results <- topTable(
        fit2,
        adjust.method = "BH",
        sort.by = "B",
        p.value = fdr,
        lfc = 0,
        number = 100000000
        );
    limmaGenes<- results[, "ID"];
    # heatmap (TODO)
}
microarray affymetrix expression

Generally, one simply makes a heatmap of the differentially-expressed genes for ALL samples. There is no need to do anything special in terms of calculating fold change. If you can update your post with the code you have used to do the limma analysis, we can perhaps show you details.

1 answer

Try something like:

library(gplots)
# Choose the top 100 genes, for example
heatmap.2(expressionData[results[1:100,"ID"],])

You can read up on heatmap.2 for details on how to improve the look of the plot.

Log in to answer this question.