[BioC] Differential expression ( Limma) for illumina microarrays?

Gordon K Smyth smyth at wehi.EDU.AU
Thu Jul 9 01:20:56 CEST 2009


Dear Mohamed,

You are spamming me and my colleagues (by private email as well as on the 
Bioconductor list), and I don't appreciate this.

If you are unable to find any differential expression with 40-fold 
replication then obviously (i) there is no differential expression, or 
(ii) you have not paid enough attention to quality control or (iii) you've 
made a programming mistake.  None of these things are our responsibility.

Best wishes
Gordon

-----------------------------------------------
Associate Professor Gordon K Smyth,
NHMRC Senior Research Fellow,
Bioinformatics Division, 
Walter and Eliza Hall Institute of Medical Research, 
1G Royal Parade, Parkville, Vic 3052, Australia.
smyth at wehi.edu.au
http://www.wehi.edu.au
http://www.statsci.org/smyth


On Wed, 8 Jul 2009, Mohamed Lajnef wrote:

> Mohamed Lajnef a écrit :
>> Dear R-Users,
>> 
>> I can not uderstand a result I have ( see  Toptable). I used LIMMA to find 
>> differentially expressed genes by 3 treatments, my database ( illumina 
>> files)  includes (48803 probes (rows) and 120 columns ( 40 by level)), my 
>> program as follows
>> library(beadarray)
>> BSData<-readBeadSummaryData(fichier,skip=0,columns = list(exprs = 
>> "AVG_Signal", se.exprs="BEAD_STDERR",NoBeads = "Avg_NBEADS", 
>> Detection="Detection.Pval"))
>> BSData.quantile=normaliseIllumina(BSData, 
>> method="quantile",transform="log2") #
>> detection<-Detection(BSData) # Matrix contain detection P value which 
>> estimates the probability of a probe being detected above the background 
>> level
>> 
>> # Filtring after normalization
>> library(genefilter)
>> filtre<-function (p = 0.05, A = 100, na.rm = TRUE)
>> 
>> {
>>    function(x) {
>>        if (na.rm)
>>            x <- x[!is.na(x)]
>>        sum(x <= A)/length(x) >= p
>>    }
>> }
>> ff<-filtre(p=0.80, A=0.01) # i keep rows if pvalues<=0.01, the probe has to 
>> be over expressed in at least 80% per level ( i have 3 levels)
>> 
>> i<-genefilter(detection[,1:40],ff)
>> j<-genefilter(detection[,41:80],ff)  # I will now  keep 10156 probes (after 
>> filtring tools)
>> k<-genefilter(detection[,81:120],ff)
>> 
>> # Differential expression using Limma after normalization & filtering tools
>>  library(limma)
>>  donne<-exprs(BSData.quantile)
>>  OBSnormfilter<-donne[j,] # keep 10156 probes after normalization
>>  groups<-as.factor(c(rep("Tem",40),rep("EarlyO",40),rep("LateO",40)))
>>  design<-model.matrix(~0+groups)
>>  colnames(design)=levels(groups)
>>  fit<-lmFit(OBSnormfilter,design)
>>  cont.matrix<-makeContrasts(Tem-EarlyO,Tem-LateO,EarlyO-LateO, 
>> levels=design)
>>  fit2<-contrasts.fit(fit, cont.matrix)
>>  ebfit<-eBayes(fit2)
>>  gene1<-topTable(ebfit, coef=1)
>>  gene2<-topTable(ebfit, coef=2)
>>  gene3<-topTable(ebfit, coef=3)
>> 
>> gene1 ( result of Toptable between the control and  first treatment groups)
>>
>>          ID              logFC     AveExpr          t            P.Value 
>> adj.P.Val                B
>> 9300  520255 -0.3209704 6.429487 -3.643323 0.0003963748 0.9998062 
>> -0.6345996
>> 6192 7650097 -0.2677064 6.243968 -3.581163 0.0004921590 0.9998062 
>> -0.7817435
>> 5528   10161  0.2022500 8.002581  3.434507 0.0008116961 0.9998062 
>> -1.1212432
>> 6077 4180725  0.1380486 5.922805  3.423087 0.0008434258 0.9998062 
>> -1.1472217
>> 3569 5080487 -0.1621675 7.717032 -3.308604 0.0012326133 0.9998062 
>> -1.4039040
>> 2265  270332 -0.1996710 6.599011 -3.257771 0.0014545247 0.9998062 
>> -1.5156669
>> 4643 5360301  0.5115730 6.616680  3.188442 0.0018176145 0.9998062 
>> -1.6658702
>> 3885  110523 -0.1489957 6.165416 -3.130799 0.0021819409 0.9998062 
>> -1.7887772
>> 8220 6280053 -0.1379738 6.603755 -3.057891 0.0027397895 0.9998062 
>> -1.9416230
>> 4355 1430626 -0.1867890 6.624203 -3.054026 0.0027727561 0.9998062 
>> -1.9496424
>> 
>> looking at the results, Toptable  show no any signficant genes,  how do you 
>> explain this?? ( because I have a lot of replication ( 40 by level) ???)
>> 
>> Any help would be appreciated
>> 
>> Regards
>> ML
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>
>
> -- 
> Mohamed Lajnef
> INSERM Unité 955. 40 rue de Mesly. 94000 Créteil.
> Courriel : Mohamed.lajnef at inserm.fr tel. : 01 49 81 31 31 (poste 18470)
> Sec : 01 49 81 32 90
> fax : 01 49 81 30 99 
>


More information about the Bioconductor mailing list