Question: Microarray Relative Expression Disease V Controls
1
8.7 years ago by
alicia.berkenwood10 wrote:

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,
sort.by = "B",
p.value = fdr,
lfc = 0,
number = 100000000
);
limmaGenes<- results[, "ID"];
# heatmap (TODO)
}
``````
modified 8.5 years ago by Sean Davis26k • written 8.7 years ago by alicia.berkenwood10

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.

0
8.7 years ago by
Sean Davis26k
National Institutes of Health, Bethesda, MD
Sean Davis26k wrote:

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.