[BioC] Problem with Limma - Possible Limma/affy bug - minimal code not working

James W. MacDonald jmacdon at uw.edu
Sat Apr 6 00:41:01 CEST 2013


Hi Atul,

I think the problem arises because you are using ebayes() instead of 
eBayes(). See ?eBayes, particularly the part after the Value heading.

Best,

Jim

On 4/5/2013 6:07 PM, Atul Kakrana wrote:
> Hello All and Abdul,
>
> The fix suggested by Abdul didn't work. I reduced the code to minimal
> basic and tried work on other publicly available datasets but the
> problem is still the same.
>
>
> It seems to a bug with Limma or Affy?
>
> Dataset used: http://www.ncbi.nlm.nih.gov/geosuppl/?acc=GSE9711
>
> CODE:
> library(affy)
> library(limma)
>
> setwd("/home/atul/Dropbox/Analysis/1.iSyTE/test_cel")# Need to change
> the directory to where the CEL files are stored
> mydata<- ReadAffy()
> mydata
>
> esetRMA<- rma(mydata)# RMA from affy was used in iSYTE paper - Ready
> made - does Background correction and Normalization by default algos -
> See 'affy' manual
> esetRMA
>
> sampletype<- c('1','1','1','2','2','2')
> design<- model.matrix(~0+factor(sampletype))##  required to avoid intercept
> colnames(design)<- c('Cont','Test') ## Personalize the design with col
> names
>
> # fit<- lmFit(exprs(esetRMA), design)
> fit<- lmFit(exprs(esetRMA), design)
> contrast.matrix<-makeContrasts(Test-Cont, levels=design)
> fit2<- contrasts.fit(fit,contrast.matrix)
> fit2<- ebayes(fit2)
> topTable(fit2, coef = 1, adjust = "BH", number = 50)
>
> Error in array(x, c(length(x), 1L), if (!is.null(names(x)))
> list(names(x),  :
>    'data' must be of a vector type
>
> I am trying to fix this error from last few days but couldn't find a
> solution. I would really appreciate your help.
>
> AK
>
>
> On 04/05/2013 01:13 AM, abdul rawoof wrote:
>> Hello Atul,
>>
>> Please follow the following script. You need to convert your
>> normalised data into expression set value using exprs.
>> I hope your problem will solve.
>>
>>> fit<- lmFit*(exprs(esetRMA)*, design)
>>> contrast.matrix<-makeContrasts(Ten-WB, levels=design)
>>> fit2<- contrasts.fit(fit,contrast.matrix)
>>> fit2<- ebayes(fit2).
>>
>> On Fri, Apr 5, 2013 at 4:31 AM, Atul Kakrana<atulkakrana at gmail.com
>> <mailto:atulkakrana at gmail.com>>  wrote:
>>
>>      Hello All,
>>
>>      I wrote a script to analyse affymetrix data but its giving an error
>>      while using the topTable from limma:
>>
>>      Error in array(x, c(length(x), 1L), if (!is.null(names(x)))
>>      list(names(x),  :
>>        'data' must be of a vector type
>>
>>      I checked all the steps that might be causing the error but couldn't
>>      find out. So, I trimmed my script to minimal basic and it still
>>      gives me
>>      same error.
>>
>>      >  mydata<- ReadAffy()
>>      >  esetRMA<- rma(mydata)
>>      Background correcting
>>      Normalizing
>>      Calculating Expression
>>      >  esetRMA
>>      ExpressionSet (storageMode: lockedEnvironment)
>>      assayData: 45101 features, 12 samples
>>        element names: exprs
>>      protocolData
>>        sampleNames: 00.0A.CEL 00.0B.CEL ... 12.5C.CEL (12 total)
>>        varLabels: ScanDate
>>        varMetadata: labelDescription
>>      phenoData
>>        sampleNames: 00.0A.CEL 00.0B.CEL ... 12.5C.CEL (12 total)
>>        varLabels: sample
>>        varMetadata: labelDescription
>>      featureData: none
>>      experimentData: use 'experimentData(object)'
>>      Annotation: mouse4302
>>      >  sampletype<- c('1','1','1','2','2','2','3','3','3','4','4','4')
>>      >  group<-factor(sampletype)
>>      >  design<- model.matrix(~0+group)
>>      >  colnames(design)<- c('WB','Ten','Eleven','Twelve')
>>      >  fit<- lmFit(esetRMA, design)
>>      >  contrast.matrix<-makeContrasts(Ten-WB, levels=design)
>>      >  fit2<- contrasts.fit(fit,contrast.matrix)
>>      >  fit2<- ebayes(fit2)
>>
>>      >  topTable(fit2, adjust = "fdr", number = 50)
>>      Error in 1:ncol(fit) : argument of length 0
>>
>>      >  topTable(fit2,coef = 1, adjust = "fdr", number = 50)
>>      Error in array(x, c(length(x), 1L), if (!is.null(names(x)))
>>      list(names(x),  :
>>        'data' must be of a vector type
>>
>>      >  results<- decideTests(fit2)
>>      Error in decideTests(fit2) : Need MArrayLM object
>>
>>
>>      Could anybody please explain me or point out what I am missing
>>      here? Its
>>      strange that I wrote a similar script for Illumina which works
>>      just fine.
>>
>>      AK
>>
>>      --
>>      Atul Kakrana
>>      Delaware Technology Park
>>
>>      _______________________________________________
>>      Bioconductor mailing list
>>      Bioconductor at r-project.org<mailto:Bioconductor at r-project.org>
>>      https://stat.ethz.ch/mailman/listinfo/bioconductor
>>      Search the archives:
>>      http://news.gmane.org/gmane.science.biology.informatics.conductor
>>
>>
>

-- 
James W. MacDonald, M.S.
Biostatistician
University of Washington
Environmental and Occupational Health Sciences
4225 Roosevelt Way NE, # 100
Seattle WA 98105-6099



More information about the Bioconductor mailing list