Time course experiment using limma
1
1
Entering edit mode
Wendy ▴ 10
@8e2c470c
Last seen 2.3 years ago
Taiwan

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)
    corfit$consensus
    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,
    levels=design)
    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 • 1.5k views
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 19 minutes 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?

ADD COMMENT
0
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.

ADD REPLY

Login before adding your answer.

Traffic: 872 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

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

Powered by the version 2.3.6