[BioC] Double KO and timecourse design / limma

Textoris Julien julien.textoris at gmail.com
Tue Jan 8 07:46:03 CET 2013


Le 08/01/2013 01:43, Gordon K Smyth a écrit :

>
>> Date: Mon, 07 Jan 2013 08:29:17 +0100
>> From: Textoris Julien <julien.textoris at gmail.com>
>> To: bioconductor at r-project.org
>> Subject: [BioC] Double KO and timecourse design / limma
>>
>> Dear all,
>>
>> First thing, happy new year to all and thanks for all the
>> knowledge/advices brought through the list !
>>
>> I would like to have your advice/comments on the following design.
>>
>> I have to analyse a microarray dataset performed on MoGene ST 1.0 which
>> comprise 22 arrays. I have allmost no replicates (! could not control
>> this !) but I thought I could use the timecourse and double KO/single KO
>> status to overcome this ?
>>
>
> Not sure what you mean.  You need replicates.  If you don't have them, 
> then show us all 22 rows of the targets frame so we can see what else 
> might be done.
>

Hi,

here is the targets description:

id    FileName    ShortName    Treatment   Time KO    A-KO    B-KO

A    AKO T 18H.CEL    KOA_18h   1    18    1    1    0
B    AKO T 2H bis.CEL KOA_2h    1     2    1    1    0
C    AKO T 2H.CEL     KOA_2h    1     2    1    1    0
D    AKO T 6H.CEL     KOA_6h    1     6    1    1    0
E    AKO UNT bis.CEL  KOA_0h    0     0    1    1    0
F    AKO UNT.CEL      KOA_0h    0     0    1    1    0
G    DKO 18H.CEL      DKO_18h   1    18    1    1    1
H    DKO 2H.CEL       DKO_2h    1     2    1    1    1
I    DKO 6H.CEL       DKO_6h    1     6    1    1    1
J    DKO UNT.CEL      DKO_0h    0     0    1    1    1
K    BKObis 18H.CEL   KOB_18h   1    18    1    0    1
L    BKObis 2H.CEL    KOB_2h    1     2    1    0    1
M    BKObis 6H.CEL    KOB_6h    1     6    1    0    1
N    BKObis UNT.CEL   KOB_0h    0     0    1    0    1
O    WT 18H.CEL       WT_UNT_18h  1    18    0    0    0
P    WT 2H.CEL        WT_UNT_2h   1     2    0    0    0
Q    WT 6H.CEL        WT_UNT_6h   1     6    0    0    0
R    WT T 18H.CEL     WT_18h    1    18    0    0    0
S    WT T 2H.CEL      WT_2h     1     2    0    0    0
T    WT T 6H.CEL      WT_6h     1     6    0    0    0
U    WT UNT.CEL       WT_0h     0     0    0    0    0
V    WT UNT.CEL       WT_0h     0     0    0    0    0


>> The variables are :
>>  - Treatment : binary YES or NO
>>  - Time : samples at 0h (= UNTREATED), 2h, 6h and 18h
>>  - Strain : Wild type (WT), single KO for gene A or gene B, and 
>> double KO.
>>
>> For WT mice, I have 2 UNTREATED (=0h), and a timecourse for Treatment 1
>> and 0 (WT_UNT_2h, and WT_TTT_2h). For KO mice, I only have treated
>> samples (except time 0h, which is considered untreated).
>>
>> I have duplicates only for WT.UNTREATED_0h and KOA_0h.
>>
>> I wrote the following design :
>>
>> levels(f) =
>> c("WT_0h","WT_2h","WT_6h","WT_18h","WT_UNT_2h","WT_UNT_6h","WT_UNT_18h","KOA_0h","KOA_2h", 
>>
>> ...,"DKO_0h","DKO_2h","DKO_6h","DKO_18h")
>>
>> and performed the contrast matrix over time like his :
>>
>> cont.wt = contrast.matrix(
>>       "WT_18h-WT_6h",
>>       "WT_6h-WT_2h",
>>       "WT_2h-WT_0h",
>>       levels=design)
>>
>> idem for KOA, KOB and DKO, and then the comparisons :
>>
>> cont.koa.wt = contrast.matrix(
>>       "(KOA_18h-KOA_6h)-(WT_18h-WT_6h)",
>>       etc...
>>
>>
>> How would you handle the strain variable ? As one variable with four
>> levels : WT, KOA, KOB, DKO ? Or is it possible to take into account that
>> DKO is somehow like KOA+KOB ? Do I have to transform 'Strain' into three
>> binary variables : WT (1/0), KOA(1/0) and KOB (1/0) and code DKO as KOA
>> = 1 and KOB = 1 ?
>>
>
> You have already incorporated the strain variable. There is no need to 
> do anything else or to make any transformations.
>
> You can test whether DKO is like KOA+KOB by testing the appropriate 
> contrast.
>
>> The second question is I don't know how to integrate the WT mice that
>> are untreated ?
>>
>
> By forming contrasts of interest.
>
> Best wishes
> Gordon
>
I understand that I am lacking the basics. I sorry to ask this, but what 
is the "appropriate" contrast ? I'm sure the answer is "the one that 
answers your (biological) question", but if I always understand the 
simple examples (eg, a single KO vs WT design), I have not been able to 
find a simple tutorial explaining how to write the complex ones.

For example, to compare DKO and KOA+KOB, I tested (without understanding 
what i'm doing) the following solutions:

cont.dif.dko2.ovt = makeContrasts(
   "(DKO_2h-DKO_0h)-((KOB_2h+KOA_2h)-(KOB_0h+KOA_0h))",
   "(DKO_6h-DKO_2h)-((KOB_6h+KOA_6h)-(KOB_2h+KOA_2h))",
   "(DKO_18h-DKO_6h)-((KOB_18h+KOA_18h)-(KOB_6h+KOA_6h))",
   levels=design)
fit2 <- contrasts.fit(fit, cont.dif.dko2.ovt)
fit2 <- eBayes(fit2)
#topTableF(fit2, adjust="BH")
res = decideTests(fit2,p.value=0.05,lfc=log2(1.5))
ind = which( apply(res,1,function(x) {length(which(x != 0))>0}) == T)
length(ind)
#10

cont.dif.dko3.ovt = makeContrasts(
   "(DKO_2h-DKO_0h)-((KOB_2h*KOA_2h)-(KOB_0h*KOA_0h))",
   "(DKO_6h-DKO_2h)-((KOB_6h*KOA_6h)-(KOB_2h*KOA_2h))",
   "(DKO_18h-DKO_6h)-((KOB_18h*KOA_18h)-(KOB_6h*KOA_6h))",
   levels=design)
fit2 <- contrasts.fit(fit, cont.dif.dko3.ovt)
fit2 <- eBayes(fit2)
#topTableF(fit2, adjust="BH")
res = decideTests(fit2,p.value=0.05,lfc=log2(1.5))
ind = which( apply(res,1,function(x) {length(which(x != 0))>0}) == T)
length(ind)
#276

cont.dif.dko4.ovt = makeContrasts(
   "(DKO_2h-DKO_0h)-(KOB_2h-KOB_0h)",
   "(DKO_2h-DKO_0h)-(KOA_2h-KOA_0h)",

   "(DKO_6h-DKO_2h)-(KOB_6h-KOB_2h)",
   "(DKO_6h-DKO_2h)-(KOA_6h-KOA_2h)",

   "(DKO_18h-DKO_6h)-(KOB_18h-KOB_6h)",
   "(DKO_18h-DKO_6h)-(KOA_18h-KOA_6h)",
   levels=design)
fit2 <- contrasts.fit(fit, cont.dif.dko4.ovt)
fit2 <- eBayes(fit2)
#topTableF(fit2, adjust="BH")
res = decideTests(fit2,p.value=0.05,lfc=log2(1.5))
ind = which( apply(res,1,function(x) {length(which(x != 0))>0}) == T)
length(ind)
#0

-> I don't know how to choose between the three ! I would take the 
first, but don't really know why ...

Is there a good tutorial/blog to learn how to go from experimental 
design to model design/contrast ?

Thanks again,

Julien


>> This experimental design is a bit too complex for me, so any advice
>> would be greatly appreciated !
>>
>> Thanks in advance,
>>
>> Julien
>>
>
> ______________________________________________________________________
> The information in this email is confidential and intended solely for 
> the addressee.
> You must not disclose, forward, print or use it without the permission 
> of the sender.
> ______________________________________________________________________
>

-- Envoyé de mon ENIAC Julien Textoris, MD, PhD Laboratoire 
d'immunologie, UMR CNRS 7278, INSERM U1095 Faculté de Médecine Timone, 
Marseille +33 (0)4 91 32 49 71 Service d'anesthésie et de réanimation 
Hôpital Nord, Marseille +33 (0)4 91 96 55 31



More information about the Bioconductor mailing list