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:
- I normalized that data (all 25) with RMA
- i have used Limma for differential analysis
- 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)
}
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.