[BioC] Error in QAReport function of package affyQCReport
Robert Gentleman
rgentlem at fhcrc.org
Sun Jul 29 15:16:21 CEST 2007
Hi,
Mark W Kimpel wrote:
> I believe I have identified at least one potential contributor to the
> problem. In my .Rprofile, the very last like is
> "require(affycoretools)". I have this because affycoretools loads so
> many of the packages I use every day. When I start R without .Rprofile,
> QCReport works fine, but when I use .Rprofile, I get the following slew
> of error messages, which I sheepishly have to admit I have been ignoring
> because I wasn't having any problems. Of note is the lines:
>
> "The following object(s) are masked from package:affy :
>
> barplot,"
>
> It looks to me like some of the base packages are loading after affy and
> this is causing problems.
Ignoring error/warning messages is really your call, but please do
include such information with your initial post - it is kind of
important for those of us trying to figure out what has gone wrong.
And yes, that does seem to be a part of the problem. You can, and
probably should explicitly load the base packages before any others and
that should help sort out the masking.
>
> However, now that I have gotten QCReport to run, I am having trouble
> with affyQAReport. I am running R on a Linux machine with 4GB of RAM,
> and when I run affyQAReport on 80 rat2302 arrays I get an out of memory
> message. When I subset the affybatch down to 16 arrays, I get the
> following error
Tracking down the memory issue will be harder - basically there are
some inefficiencies, but I am not just sure where they might be. If you
could run this with options(error=recover) and give some info on where
in the computations it is happening that would help - but a quicker fix
is going to be more RAM, I think.
>
> "affyQAReport(affyB = affy.batch.sub, output = "pdf", outdir =
> "~/Genomics/TL01-05/affyQA", overwrite = FALSE, repName =
> "affyQAreport.pdf")
>
> Error in affyQAReport(affyB = affy.batch.sub, output = "pdf", outdir =
> "~/Genomics/TL01-05/affyQA", :
> could not find function "dist2"
This was what I had expected - a bug in genefilter that I finally
tracked down on Friday - I think that if you do an update.packages now
you will see that you get a new version, and that this error message
will go away.
>
> I agree that this is odd behavior. If you think I should reinstall R and
> packages, I'll do it. Below is the full output of my R startup if I have
> .Rprofile in play and load affycoretools on bootup.
no things should be a bit better now
>
> Mark
>
>
> R is a collaborative project with many contributors.
> Type 'contributors()' for more information and
> 'citation()' on how to cite R or R packages in publications.
>
> Type 'demo()' for some demos, 'help()' for on-line help, or
> 'help.start()' for an HTML browser interface to help.
> Type 'q()' to quit R.
>
> Loading required package: utils
> [1] "packages do not need updated"
> Loading required package: RSPerl
> Error in dyn.load(file, ...) :
> unable to load shared library
> '/home/mkimpel/R_HOME/R-devel/R-build/site-library/RSPerl/libs/RSPerl.so':
>
> /home/mkimpel/R_HOME/R-devel/R-build/site-library/RSPerl/libs/RSPerl.so:
> undefined symbol: Rf_initEmbeddedR
> In addition: There were 18 warnings (use warnings() to see them)
> sh: -c: line 0: syntax error near unexpected token `('
> sh: -c: line 0: `./WriteXLS.pl --CSVpath=CSVFILES.tmp/ --CSVfiles=*.csv
This is worth reporting to the maintainer of RSPerl
> paste(oldwd, TestReport.xls, sep='/')'
> Loading required package: affycoretools
> Loading required package: affy
> Loading required package: Biobase
> Loading required package: tools
>
> Welcome to Bioconductor
>
> Vignettes contain introductory material. To view, type
> 'openVignette()'. To cite Bioconductor, see
> 'citation("Biobase")' and for packages 'citation(pkgname)'.
>
> Loading required package: affyio
> Loading required package: preprocessCore
> Loading required package: limma
> Loading required package: GOstats
> Loading required package: graph
> Loading required package: GO
> Loading required package: annotate
> Loading required package: AnnotationDbi
> Loading required package: DBI
> Loading required package: RSQLite
> Loading required package: RBGL
> Loading required package: Category
> Loading required package: KEGG
> Loading required package: genefilter
> Loading required package: survival
> Loading required package: stats
>
> Attaching package: 'stats'
>
>
> The following object(s) are masked from package:affy :
>
> update
>
> Loading required package: graphics
>
> Attaching package: 'graphics'
>
>
> The following object(s) are masked from package:affy :
>
> barplot,
> boxplot,
> hist,
> image
>
> Loading required package: splines
> Loading required package: biomaRt
> Loading required package: XML
>
> Attaching package: 'XML'
>
>
> The following object(s) are masked from package:graph :
>
> addNode
>
> Loading required package: RCurl
>
> Attaching package: 'biomaRt'
>
>
> The following object(s) are masked from package:annotate :
>
> getGO
>
> Loading required package: gcrma
> Loading required package: matchprobes
> Loading required package: xtable
> Loading required package: annaffy
>
> Attaching package: 'affycoretools'
>
>
> The following object(s) are masked _by_ .GlobalEnv :
>
> vennCounts2,
> vennSelect
>
> > if(!exists("baseenv", mode="function")) baseenv <- function() NULL
> > options(STERM='iESS', editor='emacsclient')
> >
>
> ---
>
> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
> Indiana University School of Medicine
>
> 15032 Hunter Court, Westfield, IN 46074
>
> (317) 490-5129 Work, & Mobile & VoiceMail
> (317) 663-0513 Home (no voice mail please)
>
> ******************************************************************
>
> Robert Gentleman wrote:
>> Hi Mark,
>>
>> Let's see if we cannot fix some of the problems and hopefully life
>> will get better.
>>
>>
>> Mark W Kimpel wrote:
>>> Seth and Robert,
>>>
>>> Looks like I may have more than one problem. To clarify one point
>>> first, in my original post I was using affy.batch.sub, which
>>> consisted of just some of the arrays from my affy.batch. To make sure
>>> I'm not having a problem with subsetting, in my subsequent posts I am
>>> using the affybatch object created just today with ReadAffy. No old
>>> versions here, just what comes out of my sessionInfo().
>>>
>>> As you can see below, there may be a problem with my boxplot method
>>> but also with the affybatch object. The latter is of class AffyBatch
>>> but is not a valid object.
>>>
>>> Thanks, Mark
>>>
>>> > class(affy.batch)
>>> [1] "AffyBatch"
>>> attr(,"package")
>>> [1] "affy"
>>>
>>> > require(affy)
>>> > showMethods("boxplot")
>>> Error in get(if (inherited) ".AllMTable" else ".MTable", envir = env) :
>>> variable ".AllMTable" was not found
>>
>> there is something very odd about this - I have not seen it before,
>> but it suggests that you might need to do a clean re-install of R and
>> packages as something in the methods package (I think) is very confused.
>> Not good news, I know, but you should not have this problem. And just
>> to be sure this happens if you just start up R, load the affy library
>> and then issue the commands above? That is what you need to check.
>>
>>
>> Does this only happen for boxplot? What if you look at
>> showMethods(exprs) or something of that nature?
>>
>>>
>>> Enter a frame number, or 0 to exit
>>>
>>> 1: showMethods("boxplot")
>>> 2: .showMethodsTable(getGeneric(f, where = where), includeDefs,
>>> inherited, cla
>>> 3: get(if (inherited) ".AllMTable" else ".MTable", envir = env)
>>>
>>>
>>> > validObject(affy.batch)
>>> Error in validObject(affy.batch) :
>>> invalid class "AffyBatch" object: sampleNames differ between
>>> assayData and phenoData
>>
>> This is a bit easier to fix. Simply change the sampleNames on one of
>> the two structures to be the same as the others.
>>
>> Basically this is saying that the column names for your expression
>> data do not agree with the row names of the phenotypic data. They
>> might be different, or they might be out of order. You should look at
>> both
>> again using the AffyBatch example data:
>>
>> colnames(exprs(affybatch.example))
>> rownames(pData(affybatch.example))
>>
>> need to be the same. If they are not then you need to figure out why
>> not and fix them (maybe they are not in the same order, or one of them
>> might be missing).
>>
>> I hope that helps
>>
>> Robert
>>
>>>
>>> Enter a frame number, or 0 to exit
>>>
>>> 1: validObject(affy.batch)
>>>
>>> > par(mfrow=c(2, 1))
>>> > ArrayIndex = as.character(1:length(sampleNames(affy.batch)))
>>> >
>>> boxplot(affy.batch,names=ArrayIndex,ylab="Log2(Intensity)",xlab="Array
>>> Index")
>>> Error in attr(groups, "names") <- names :
>>> 'names' attribute [80] must be the same length as the vector [1]
>>>
>>> Enter a frame number, or 0 to exit
>>>
>>> 1: boxplot(affy.batch, names = ArrayIndex, ylab = "Log2(Intensity)",
>>> xlab = "A
>>> 2: boxplot(affy.batch, names = ArrayIndex, ylab = "Log2(Intensity)",
>>> xlab = "A
>>> 3: boxplot.default(affy.batch, names = ArrayIndex, ylab =
>>> "Log2(Intensity)", x
>>>
>>> Selection:
>>>
>>> ---
>>>
>>> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry
>>> Indiana University School of Medicine
>>>
>>> 15032 Hunter Court, Westfield, IN 46074
>>>
>>> (317) 490-5129 Work, & Mobile & VoiceMail
>>> (317) 663-0513 Home (no voice mail please)
>>>
>>> ******************************************************************
>>>
>>> Robert Gentleman wrote:
>>>> It looks to me like you are using a function named QCReport, not
>>>> QAReport (and indeed there is no such thing - you might look at
>>>> affyQAReport, which is in the same package but is very different).
>>>>
>>>> You can try to see what is happening by looking at the code from
>>>> signalDist:
>>>>
>>>> par(mfrow=c(2, 1))
>>>> ArrayIndex = as.character(1:length(sampleNames(object)))
>>>> boxplot(object,names=ArrayIndex,ylab="Log2(Intensity)",xlab="Array
>>>> Index")
>>>>
>>>>
>>>> where instead of object you use affy.batch.sub. The code looks
>>>> pretty straightforward, so I don't know what the problem might be.
>>>> It is a bit odd, it seems to me to use integers in place of the
>>>> sample names...
>>>>
>>>> I used the affybatch.example and it worked for me.. ( one issue with
>>>> that was
>>>> Warning message:
>>>> In data.row.names(row.names, rowsi, i) :
>>>> some row.names duplicated:
>>>> 2,26,51,76,101,126,151,176,201,226,251,276,301,326,351,376,401,426,451,476,501,526,551,576,601,626,651,676,701,726,751,776,801,826,
>>>>
>>>> ....
>>>>
>>>> which we may need to look at).
>>>>
>>>> best wishes
>>>> Robert
>>>>
>>>>
>>>> Mark W Kimpel wrote:
>>>>> I am running into an error when I run QAReport on an affybatch
>>>>> object. Below is my sessionInfo and output. I am using the devel
>>>>> versions of R and BioC, all newly updated. Please advise.
>>>>>
>>>>> Thanks,
>>>>> Mark
>>>>>
>>>>> Browse[1]> sessionInfo()
>>>>> R version 2.6.0 Under development (unstable) (2007-06-30 r42095)
>>>>> i686-pc-linux-gnu
>>>>>
>>>>> locale:
>>>>> LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
>>>>>
>>>>>
>>>>> attached base packages:
>>>>> [1] grDevices datasets splines graphics stats tools utils
>>>>> [8] methods base
>>>>>
>>>>> other attached packages:
>>>>> [1] hgu95av2cdf_1.17.0 rat2302cdf_1.17.0
>>>>> affyQCReport_1.15.2
>>>>> [4] geneplotter_1.15.2 lattice_0.16-2 RColorBrewer_1.0-1
>>>>> [7] affyPLM_1.13.6 affydata_1.11.2 simpleaffy_2.11.21
>>>>> [10] affycoretools_1.9.2 annaffy_1.9.1 xtable_1.4-6
>>>>> [13] gcrma_2.9.1 matchprobes_1.9.10 biomaRt_1.11.4
>>>>> [16] RCurl_0.8-1 XML_1.9-0 GOstats_2.3.8
>>>>> [19] Category_2.3.16 genefilter_1.15.3 survival_2.32
>>>>> [22] KEGG_1.17.0 RBGL_1.13.3 annotate_1.15.2
>>>>> [25] AnnotationDbi_0.0.83 RSQLite_0.6-0 DBI_0.2-3
>>>>> [28] GO_1.17.0 graph_1.15.10 limma_2.11.9
>>>>> [31] affy_1.15.7 preprocessCore_0.99.12 affyio_1.5.6
>>>>> [34] Biobase_1.15.21
>>>>>
>>>>> loaded via a namespace (and not attached):
>>>>> [1] cluster_1.11.7 grid_2.6.0 KernSmooth_2.22-20
>>>>>
>>>>> > affy.batch.sub
>>>>> AffyBatch object
>>>>> size of arrays=834x834 features (14 kb)
>>>>> cdf=Rat230_2 (31099 affyids)
>>>>> number of samples=16
>>>>> number of genes=31099
>>>>> annotation=rat2302
>>>>> notes=
>>>>> > QCReport(affy.batch.sub)
>>>>> Error in attr(groups, "names") <- names :
>>>>> 'names' attribute [16] must be the same length as the vector [1]
>>>>>
>>>>> Enter a frame number, or 0 to exit
>>>>>
>>>>> 1: QCReport(affy.batch.sub)
>>>>> 2: signalDist(object)
>>>>> 3: boxplot(object, names = ArrayIndex, ylab = "Log2(Intensity)",
>>>>> xlab = "Array
>>>>> 4: boxplot.default(object, names = ArrayIndex, ylab =
>>>>> "Log2(Intensity)", xlab
>>>>>
>>>>> Selection: 4
>>>>> Called from: eval(expr, envir, enclos)
>>>>> Browse[1]> ls()
>>>>> [1] "add" "args" "at" "border" "col"
>>>>> [6] "groups" "horizontal" "log" "n" "namedargs"
>>>>> [11] "names" "notch" "outline" "pars" "plot"
>>>>> [16] "range" "*tmp*" "varwidth" "width" "x"
>>>>> Browse[1]> names
>>>>> [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12"
>>>>> "13" "14" "15"
>>>>> [16] "16"
>>>>> Browse[1]> names(group)
>>>>> NULL
>>>>> Browse[1]> names(groups)
>>>>> [1] ""
>>>>> Browse[1]> names(groups) <- names
>>>>> Error during wrapup: 'names' attribute [16] must be the same length
>>>>> as the vector [1]
>>>>> Browse[1]>
>>>>
>>>
>>
>
--
Robert Gentleman, PhD
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
PO Box 19024
Seattle, Washington 98109-1024
206-667-7700
rgentlem at fhcrc.org
More information about the Bioconductor
mailing list