This is a test version of Biostars. For the public version, visit https://www.biostars.org.
LImma design matrix and contrast matrix creation

Hi,

I am analyzing publicly available microarray data and am using the log2fold data already uploaded on GEO from GSE9776. These are 2 channel experiments with 17 isolates and 6 conditions of which I'm interested in the first 6 isolates with 2 conditions. The conditions are antibiotic at 2 hours ("INH 2hr") and at 6 hours ("INH 6hr"). They all have the same control (water) in Cy3

I created a design matrix with INH2hr as the intercept and INH6hr at first coefficient, with the remaining coefficients being assigned to conditions I'm not interested in. My understanding is I should leave thse other conditions in the calculations at the variance in those samples are important in the calculation.

group <- factor(GSE9776@phenoData@data$source_name_ch1,)
design <- model.matrix(~group)
design
colnames(design) <- c("INH2hr", "INH6hr", "KatG_ko", "INH_nutrient", "INH_O2", "hollow_fbr")
fit_GSE9776 <- lmFit(GSE9776_filtered, design)

Based on my design, INH2hr is going to be the intercept, and each of the other conditions will be assigned a coefficient.

I'd like to look at the differences in gene expression across the following : 1. INH 2hr vs control 2. INH 6hr vs control 3. INH 6hr vs INH 2hr

Based on my reading of the vignette, to obtain the INH6hr vs control I should use coefficient = "INH6hr" . How do I obtain INH6hr vs INH2hr and INH2hr vs ref? Should I be using a contrast matrix? If so, how?

Thanks in advance,

Regards,

Husain

r limma gordon smyth

what is your control group from colnames(design) <- c("INH2hr", "INH6hr", "KatG_ko", "INH_nutrient", "INH_O2", "hollow_fbr") ? Is it INH2hr?

Since they are 2 channel experiments, the control is the other channel. There is a common reference control on all the experiments - that's my source of confusion. 10.1 in the limma vignette recommends treating these as a single channel experiment.

Can you update your targets file here

1 answer

Hi,

It seems that yes you will need a contrast matrix. You will find more information in limma user's guide paragraph 17.3.7: https://bioconductor.org/packages/release/bioc/vignettes/limma/inst/doc/usersguide.pdf

But you'll have to pay attention to your design matrix and the names of the columns you are giving.

Based on what you wrote, I would have done :

design <- model.matrix(~0+group)
colnames(design) <- c("INH2hr", "INH6hr", "KatG_ko", "INH_nutrient", "INH_O2", "hollow_fbr")
fit <- lmFit(GSE9776_filtered, design)
contMatrix=makeContrasts(INH6hr-INH2r,levels=design)
fit2 <- contrasts.fit(fit, contMatrix)
fit2 <- eBayes(fit2)
summary(decideTests(fit2))
topTable(fit2, num=Inf, coef=1)

I hope this can help but I encourage you to read the user's guide of the limma package.

Log in to answer this question.