Time course experiment using limma
Entering edit mode
Wendy • 0
Last seen 5 days ago

Hi, I'm a beginner in LIMMA analysis and also microarray data. Hope someone can give me some suggestions.

Here is the frame of my microarray data. There are 40 patients in my study and they draw blood at 4 time points: baseline, 6-month follow-up, 12-month follow-up, and 24-month follow-up. Each patient is classified as a responder or a non-responder.

No  Filename    ID  Response        Month
1   D1-1.CEL    1   responder       0
2   D1-2.CEL    1   responder       6
3   D1-3.CEL    1   responder       12
4   D1-4.CEL    1   responder       24
5   D2-1.CEL    2   responder       0
6   D2-2.CEL    2   responder       6
7   D3-1.CEL    3   non-responder   0
8   D3-2.CEL    3   non-responder   6
9   D3-3.CEL    3   non-responder   12
10  D3-4.CEL    3   non-responder   24
11  D4-1.CEL    4   non-responder   0
12  D4-3.CEL    4   non-responder   12

I think my data frame is similar to 9.7 Multi-level Experiments (p.50) in the user guide of LIMMA. (https://bioconductor.org/packages/release/bioc/html/limma.html) Is it correct?

Then I modified the code in the user guide. Below is my code. Based on this data, I want to answer 3 questions.

  1. Are there differentially expressed genes at baseline between responders and non-responders?
  2. In 40 patients, Is the expression level of genes changed between baseline and 6-month follow-up?
  3. Is the expression level of genes changed between baseline and 6-month follow-up in responders and poor responders, respectively?

    Treat <- factor(paste(data_40$response,data_40$month,sep=".")) 
    design <- model.matrix(~0+Treat)
    corfit <- duplicateCorrelation(data_40,design,block=data_40$case_id)
    fit <- lmFit(data_40,design,block=data_40$case_id,correlation=corfit$consensus)
    cm <- makeContrasts(
    res1vsres0ForM0 = Treat1.0-Treat0.0,
    res1vsres0ForM6 = Treat1.6-Treat0.6,
    M0vsM6Forres0 = Treat0.6-Treat0.0,
    M0vsM6Forres1 = Treat1.6-Treat1.0,
    fit2 <- contrasts.fit(fit, cm)
    fit3 <- eBayes(fit2)

I think the first question should be answered by topTable(fit3, coef="res1vsres0ForM0",adjust="fdr").

The third question should be answered by topTable(fit3, coef="M0vsM6Forres1",adjust="fdr") and topTable(fit3, coef="M0vsM6Forres0",adjust="fdr"), respectively.

However, I don't know how to answer the second question by LIMMA. I'd appreciate it if someone could help me. Thank you!

limma Multi-levelExperiments Microarray • 180 views
Entering edit mode
Last seen 9 hours ago
WEHI, Melbourne, Australia

Yes, your study is a multi-level experiment and your analysis looks to be correct.

The trouble with your second question is that it isn't a meaningful question to ask. The fact is that the 6-month effect may differ between responders and non-responders, so you should make this comparison separately for each group, as you do in question 3. You can test the average 6-month effect over all 40 patients for each gene by forming the contrast:

(Treat1.6+Treat0.6)/2 - (Treat1.0+Treat0.0)/2

This will give correct results, but is it at all helpful to know what the average 6-month effect is if the responder and non-responder 6-month effects are different?

Entering edit mode

Hi, Gordon Smyth Thank you so much for answering my questions. Yes, the 6-month effect may be different between responders and non-responders. But I can't have a strong assumption that the 6-month effect may be different, that is why I want to take a look at the average effect first and then move on to the deeper question, question 3. Thank you for asking this question, it made me think more deeply.


Login before adding your answer.

Traffic: 431 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6