Differential expression ( Limma) for illumina microarrays?
1
0
Entering edit mode
@mohamed-lajnef-3515
Last seen 10.2 years ago
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
Normalization probe limma Normalization probe limma • 1.7k views
ADD COMMENT
0
Entering edit mode
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
ADD REPLY
0
Entering edit mode
@gordon-smyth
Last seen 2 hours ago
WEHI, Melbourne, Australia

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.

ADD COMMENT

Login before adding your answer.

Traffic: 860 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