Hi BioC community,
I have proteomics data with a multi-level experiment design, of the same type of the one described at paragraph 8.7 in limma user’s guide :
- I have 7 patients in Condition A and 7 patients in Condition B (all patients are distinct)
- For each patient, I have data from two tissue types (Tissue=T1 or T2)
The questions are :
- 1/Are there differentially expressed proteins between the two groups ?
- 2/Are there differentially expressed proteins between the two tissue types ?
- 3/ Are there differentially expressed proteins between the two tissue type in the A group?
- 4/ Are there differentially expressed proteins between the two tissue type in the B group?
- 5/ Are there differentially expressed proteins between the two groups for the tissue type 1?
- 6/ Are there differentially expressed proteins between the two groups for the tissue type 2?
As described in the user's guide, the questions 3 to 6 are directly resolved by :
>Treat <- factor(paste(targets$Condition,targets$Tissue,sep=".")) # here targets is the same than the one in the user's guide >design <- model.matrix(~0+Treat) > colnames(design) <- levels(Treat) > corfit <- duplicateCorrelation(eset,design,block=targets$Subject) > corfit$consensus > fit <- lmFit(eset,design,block=targets$Subject,correlation=corfit$consensus) > cm <- makeContrasts( + Tissue2vsTissue1ForgpA = A.2-A.1, + Tissue2vsTissue1ForgpB= B.2-B.1, + gpBvsgpAForTissue1= B.1-A.1, + gpBvsgpAForTissue2 = B.2-A.2, + levels=design) > fit2 <- contrasts.fit(fit, cm) > fit2 <- eBayes(fit2)
For question 3 to 6 :
>topTable(fit2, coef="Tissue2vsTissue1ForgpA") >topTable(fit2, coef="Tissue2vsTissue1ForgpB") >topTable(fit2, coef="gpBvsgpAForTissue1") >topTable(fit2, coef="gpBvsgpAForTissue2 ")
To control the false discovery rate at 5% across all proteins and all contrasts:
> results <- decideTests(fit2,method="global") > summary(results)
Now, my question is : How to answer to the questions 1 and 2 ?
I would have written topTable(fit2, coef=3 :4)
for question 1 and topTable(fit2, coef=1:2)
for question 2 ?
But this doesn’t give the main effects for condition (and tissue type) because here we does not work globally for the condition, but rather within each tissue type. A main effect is the difference in average expression of the protein between the two conditions, omitting the distinction between the 2 tissue types.
On the other hand, if I write:
design <- model.matrix(~Condition*Tissue, data=targets)
, the coefficient ConditionB is NOT the main effect as it is the difference between conditions within Tissue 1 …. so how can I get these two main effects please ?
May be I am wrong… and any help would be welcome,
Thanks in advance,
Best,
Eléonore