Dear David and Wolfgang,

I had the same problem as David with the PNG plots. I could not run arrayQualityMetrics on a remote server while I was offline (eg. through screen). Doing pdf("dummy.pdf")  as suggested (or png("dummy.png")), did not help. The solution for me was to set:

> options(bitmapType = "cairo")

What I found was that the png() function was trying to open an X11 device. According to the png help page, this depends on the graphics device type which is set as a parameter to png():

For ‘type = "Xlib"’ they may not be usable unless the X11 display is available to the owner of the R process.

The type can be set manually as a parameter to png(), but the default is set by ‘getOption("bitmapType")’ which defaults to ‘"quartz"’ or ‘"cairo"’ where available, otherwise ‘"Xlib"’.

Hence, getOption("bitmapType") ought to be set to 'cairo' on my system since cairo is available, but it was set to 'Xlib':

> getOption("bitmapType")
[1] "Xlib"

Hence, setting:

> options(bitmapType = "cairo")

solved the problem for me.

I don't know why this option is not correctly set on my system. According to our sysadmin, R should be compiled with support for cairo. Some of the options in options() have factory defaults, others are set from environment variables or are platform-dependent. Does anybody know how the option 'bitmapType' is set?

Best regards,
Daniel





On Mar 7, 2012, at 3:04 PM, Wolfgang Huber wrote:

> Dear David
> 
> the warning from UseMethod("xmlAttrs", node) is bad. It indicates that some or all of the SVG postprocessing needed for the plot interactivity fails. This is likely caused by using an incompatible (i.e. old) version of cairo.
> 
> I don't think that production of the PNGs has anything to do with what looks to you like a requirement for an X11 connection. It is caused by the function lattice::draw.key, which calls trellis.par.get("fontsize") and to do so, needs an open graphics device. Perhaps what you have seen is that, if no device is open when the above function is encountered within arrayQualityMetrics, your R tries to open an X device, and if that is not available, fails. To circumvent that, you could do something like:
> 
>  pdf("dummy.pdf")
>  source("arrayQualityMetrics.R")
>  dev.off()
> 
> Re outlier detection threshold, this is explained in the manual page for the function 'outliers': "...boxplotOutliers uses a criterion similar to that used in boxplot.stats to detect outliers in a set of real numbers. The main difference is that in boxplotOutliers, only the outliers to the right (i.e. extraordinarily large values) are detected." At some point, it becomes easier to explain such a thing through code than verbally. The code for boxplotOutliers is:
> 
> > boxplotOutliers
> function (x, coef = 1.5)
> {
>    stats = stats::fivenum(x, na.rm = TRUE)
>    iqr = diff(stats[c(2, 4)])
>    th = (stats[4] + coef * iqr)
>    list(threshold = th, which = which(x > th))
> }
> <environment: namespace:arrayQualityMetrics>
> 
> 
> Hope this helps.
> 
> 	Best wishes
> 	wolfganfg
> 
> 
> David Westergaard scripsit 03/07/2012 10:37 AM:
>> Dear Wolfgang,
>> 
>> I think that it may be a slighty broken Cairo installed in my homedir.
>> Sadly, our Cairo graphics installation at the institute is quite old,
>> version 1.0. arrayQualityMetrics depends on the R package Cairo which
>> depends on a Cairo graphics installation>= 1.2. I think I may the
>> installation to my homedir is lacking something, but I cannot figure
>> out what from either the INSTALL document, or the Cairo graphics
>> documentation.
>> Also, looking through warnings(), I notice a new warning:
>> 
>> Error in UseMethod("xmlAttrs", node) :
>>   no applicable method for 'xmlAttrs' applied to an object of class "NULL"
>> 
>> Might this also be due to a partially broken cairo graphics installation?
>> 
>> On another note, about X11 - Is it possible to not have PNGs produced?
>> I currently have to run my scripts on a remote server due to memory
>> issues, and since PNG requires a X11 forward, it is difficult to leave
>> the scripts running over the night. Or is there another, and better,
>> solution?
>> 
>> I also have a question about outlier detection. I am not interested in
>> a thorough description of the algorithm, but I would like an idea of
>> how the threshold for Outlier detection for Distances between array is
>> determined. The HTML just states "Exceptionally large". I haven't been
>> able to find anything about this in either the Introduction, or
>> Advanced Topics manual, nor in ?outliers.
>> 
>> Best regards,
>> David
>> 
>> 2012/3/6 Wolfgang Huber<whuber@embl.de>:
>>> Dear David
>>> 
>>> Mar/5/12 11:04 PM, David Westergaard scripsit::
>>> 
>>>> Hi,
>>>> 
>>>> It seems to be working now, with arrayQualityMetrics v3.10. The only
>>>> "problem" is, I am getting alot of warnings, more than 50.
>>>> All of them are:
>>>> In grid.Call.graphics(L_segments, x$x0, x$y0, x$x1, x$y1,  ... :
>>>>   X11 protocol error: BadMatch (invalid parameter attributes)
>>>> 
>>>> Can I just disregard these? Reports are still being produced.
>>> 
>>> 
>>> I have never seen these before. It might be a problem specific to your
>>> (slightly broken?) R installation.
>>> 
>>> 
>>>> Also, have methods changed from arrayQualityMetrics 2.6.0 ->    3.10?
>>>> Some arrays which previously did not pass some tests, not pass the
>>>> tests. And vice versa.
>>> 
>>> 
>>> Yes. Hence the different major version number. The new methods for outlier
>>> detection are documented in the report - please let me know if you have
>>> questions or comments about these.
>>> 
>>> Of course, outlier detection is a poorly defined question, and there is no
>>> 'right' or 'wrong' answer. These are hints which are intended to be followed
>>> up manually. If you want to automate outlier detection, you need to limit
>>> the scope to a particular platform and experimental design, and then choose
>>> and calibrate the metrics used. I have added an extra note to this effect to
>>> the introduction of the report.
>>> 
>>>        Best wishes
>>>        Wolfgang
>>> 
>>> 
>>>> For instance, in version 2.6.0, using data from
>>>> http://www.ebi.ac.uk/arrayexpress/experiments/E-MEXP-2261, 2 arrays
>>>> failed 1 test (p0742_O11_120_24.CEL and p0742_O3_000_11.CEL), 1 array
>>>> failed 2 tests (p0742_O3_120_12.CEL), and 1 array failed 3 tests
>>>> (p0742_O15_120_40.CEL
>>>> In version 3.10, 1 array failed 1 test (p0742_O3_120_12.CEL) and 1
>>>> array failed 2 tests (p0742_O15_120_40.CEL).
>>>> 
>>>> Sessioninfo:
>>>>> 
>>>>> sessionInfo()
>>>> 
>>>> R version 2.14.1 (2011-12-22)
>>>> Platform: ia64-unknown-linux-gnu (64-bit)
>>>> 
>>>> locale:
>>>> [1] C
>>>> 
>>>> attached base packages:
>>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>> 
>>>> other attached packages:
>>>> [1] nugohs1a520180cdf_2.4.1    hgu133plus2cdf_2.9.1
>>>> [3] AnnotationDbi_1.16.18      affy_1.32.1
>>>> [5] Biobase_2.14.0             arrayQualityMetrics_3.10.0
>>>> 
>>>> loaded via a namespace (and not attached):
>>>>  [1] BiocInstaller_1.2.1   Biostrings_2.22.0     Cairo_1.5-1
>>>>  [4] DBI_0.2-5             Hmisc_3.9-2           IRanges_1.12.6
>>>>  [7] KernSmooth_2.23-7     RColorBrewer_1.0-5    RSQLite_0.11.1
>>>> [10] SVGAnnotation_0.93-1  XML_3.9-4             affyPLM_1.30.0
>>>> [13] affyio_1.22.0         annotate_1.32.1       beadarray_2.4.1
>>>> [16] cluster_1.14.2        genefilter_1.36.0     grid_2.14.1
>>>> [19] hwriter_1.3           lattice_0.20-0        latticeExtra_0.6-19
>>>> [22] limma_3.10.3          preprocessCore_1.16.0 setRNG_2009.11-1
>>>> [25] splines_2.14.1        survival_2.36-12      tools_2.14.1
>>>> [28] vsn_3.22.0            xtable_1.7-0          zlibbioc_1.0.1
>>>> 
>>>> Best,
>>>> David
>>>> 
>>>> 2012/3/5 David Westergaard<david@harsk.dk>:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I did not express myself clearly enough - I actually didn't have
>>>>> trouble with beadarray. The package giving me trouble was Cairo, but I
>>>>> solved that by installing newest cairoDevice pacakge, followed by
>>>>> Cairo-1.4-5. I'm now running R-2.14 with arrayQualityMetrics v3.10 -
>>>>> I'll let you know if I encounter any problems.
>>>>> 
>>>>> Best,
>>>>> David
>>>>> 
>>>>> 2012/3/4 Dan Tenenbaum<dtenenba@fhcrc.org>:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> On Sun, Mar 4, 2012 at 2:44 PM, David Westergaard<david@harsk.dk>
>>>>>>  wrote:
>>>>>>> 
>>>>>>> Hi Wolfgang,
>>>>>>> 
>>>>>>> The problem hasn't really resolved itself. I can't update any further,
>>>>>>> since I'm having trouble installing arrayQualityMatrics with R-2.14 on
>>>>>>> the server I have access to. (beadarray, which is a requirement, needs
>>>>>>> R>=2.13)
>>>>>> 
>>>>>> 
>>>>>> R 2.14 is>= R 2.13, so beadarray works on R-2.14.
>>>>>> What is the specific error message (and sessionInfo()) you get when
>>>>>> trying to install arrayQualityMetrics (or beadarray) on R 2.14?
>>>>>> 
>>>>>> Dan
>>>>>> 
>>>>>> 
>>>>>>> Cairo fails to install, giving two errors:
>>>>>>> cairotalk.c:894: error: 'CAIRO_EXTEND_PAD' undeclared (first use in
>>>>>>> this function)
>>>>>>> cairotalk.c:322: error: 'CAIRO_SURFACE_TYPE_IMAGE' undeclared (first
>>>>>>> use in this function)
>>>>>>> 
>>>>>>> I can install both fine on my own computer, however, but I do not have
>>>>>>> enough memory to process the files myself. Are there any options
>>>>>>> besides spatial=FALSE to reduce memory usage?
>>>>>>> 
>>>>>>> 
>>>>>>> Here's the output of sessionInfo()
>>>>>>>> 
>>>>>>>> sessionInfo()
>>>>>>> 
>>>>>>> R version 2.11.0 (2010-04-22)
>>>>>>> ia64-unknown-linux-gnu
>>>>>>> 
>>>>>>> locale:
>>>>>>> [1] C
>>>>>>> 
>>>>>>> attached base packages:
>>>>>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>>>>> 
>>>>>>> other attached packages:
>>>>>>> [1] arrayQualityMetrics_2.6.0 affyPLM_1.24.1
>>>>>>> [3] preprocessCore_1.10.0     gcrma_2.20.0
>>>>>>> [5] affy_1.26.1               Biobase_2.8.0
>>>>>>> 
>>>>>>> loaded via a namespace (and not attached):
>>>>>>>  [1] AnnotationDbi_1.10.0 Biostrings_2.16.9    DBI_0.2-5
>>>>>>>  [4] IRanges_1.6.8        RColorBrewer_1.0-2   RSQLite_0.9-4
>>>>>>>  [7] affyio_1.16.0        annotate_1.26.0      beadarray_1.16.0
>>>>>>> [10] genefilter_1.30.0    grid_2.11.0          hwriter_1.2
>>>>>>> [13] lattice_0.18-5       latticeExtra_0.6-18  limma_3.4.5
>>>>>>> [16] marray_1.26.0        simpleaffy_2.24.0    splines_2.11.0
>>>>>>> [19] stats4_2.11.0        survival_2.35-8      tools_2.11.0
>>>>>>> [22] vsn_3.16.0           xtable_1.5-6
>>>>>>> 
>>>>>>> Best,
>>>>>>> David
>>>>>>> 
>>>>>>> 2012/3/4 Wolfgang Huber<whuber@embl.de>:
>>>>>>>> 
>>>>>>>> Dear David
>>>>>>>> 
>>>>>>>> thanks. What's the output of 'sessionInfo()', and have you tried with
>>>>>>>> an
>>>>>>>> up-to-date version of arrayQualityMetrics?
>>>>>>>> 
>>>>>>>> 
>>>>>>>> http://www.bioconductor.org/packages/devel/bioc/html/arrayQualityMetrics.html
>>>>>>>> or at least
>>>>>>>> 
>>>>>>>> http://www.bioconductor.org/packages/release/bioc/html/arrayQualityMetrics.html
>>>>>>>> 
>>>>>>>> Let me know if the problem persists.
>>>>>>>> 
>>>>>>>>        Best wishes
>>>>>>>>        Wolfgang
>>>>>>>> 
>>>>>>>> Mar/4/12 11:02 AM, David Westergaard scripsit::
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Hello,
>>>>>>>>> 
>>>>>>>>> I am trying to use the BioC package arrayQualityMetrics to asses the
>>>>>>>>> quality of a range of experiments. I am, however, running into
>>>>>>>>> errors,
>>>>>>>>> when processing Affymetrix Hugene designs, particularly
>>>>>>>>> http://www.ebi.ac.uk/arrayexpress/experiments/E-GEOD-33443
>>>>>>>>> 
>>>>>>>>> I'm using the following code:
>>>>>>>>> 
>>>>>>>>> library('arrayQualityMetrics'); library('affy')
>>>>>>>>> mixture.batch<- ReadAffy()
>>>>>>>>> arrayQualityMetrics(expressionset=mixture.batch,
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>  outdir=paste("/home/projects/rgroups/cheminf/dwe/figures/self_processed/QA/",veggie[i],sep=""),
>>>>>>>>>        do.logtransform=TRUE,
>>>>>>>>>        force=TRUE
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>> And get the error:
>>>>>>>>> 
>>>>>>>>> Error in setQCEnvironment(cdfn) :
>>>>>>>>>   Could not find array definition file ' hugene10stv1cdf.qcdef '.
>>>>>>>>> Simpleaffy does not know the QC parameters for this array type.
>>>>>>>>> See the package vignette for details about how to specify QC
>>>>>>>>> parameters manually.
>>>>>>>>> 
>>>>>>>>> Error in density.default(as.matrix(log2(mm(expressionset))), ...) :
>>>>>>>>>   'x' contains missing values
>>>>>>>>> In addition: Warning message:
>>>>>>>>> In aqm.qcstats(expressionset) :
>>>>>>>>>   'plot(qcStats)' from the package 'simpleaffy' failed for this
>>>>>>>>> dataset.
>>>>>>>>> Error in obj[[i]]$legend : $ operator is invalid for atomic vectors
>>>>>>>>> In addition: Warning message:
>>>>>>>>> In arrayQualityMetrics(expressionset = mixture.batch, outdir =
>>>>>>>>> 
>>>>>>>>> paste("/home/projects/rgroups/cheminf/dwe/figures/self_processed/QA/",
>>>>>>>>>  :
>>>>>>>>>   Cannot draw the Perfect Match versus MisMatch plot
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Now, from what I've read in an older mail to this list, Hugene is a
>>>>>>>>> PM-only type design, building my own .qcdef wouldn't really do no
>>>>>>>>> good. Googling around didn't really give any useful information. So
>>>>>>>>> how do I get by this problem?
>>>>>>>>> 
>>>>>>>>> Also, why do only some array types output a complete index.html,
>>>>>>>>> providing the numbers for outlier detection?
>>>>>>>>> 
>>>>>>>>> Best Regards,
>>>>>>>>> David Westergaard
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> Bioconductor mailing list
>>>>>>>>> Bioconductor@r-project.org
>>>>>>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>>>>>>> Search the archives:
>>>>>>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Best wishes
>>>>>>>>        Wolfgang
>>>>>>>> 
>>>>>>>> Wolfgang Huber
>>>>>>>> EMBL
>>>>>>>> http://www.embl.de/research/units/genome_biology/huber
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Bioconductor mailing list
>>>>>>>> Bioconductor@r-project.org
>>>>>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>>>>>> Search the archives:
>>>>>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Bioconductor mailing list
>>>>>>> Bioconductor@r-project.org
>>>>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>>>>> Search the archives:
>>>>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Bioconductor mailing list
>>>> Bioconductor@r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>>> Search the archives:
>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>> 
>>> 
>>> 
>>> --
>>> Best wishes
>>>        Wolfgang
>>> 
>>> Wolfgang Huber
>>> EMBL
>>> http://www.embl.de/research/units/genome_biology/huber
>>> 
>>> _______________________________________________
>>> Bioconductor mailing list
>>> Bioconductor@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>> Search the archives:
>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
> 
> 
> -- 
> Best wishes
> 	Wolfgang
> 
> Wolfgang Huber
> EMBL
> http://www.embl.de/research/units/genome_biology/huber
> 
> _______________________________________________
> Bioconductor mailing list
> Bioconductor@r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor


	[[alternative HTML version deleted]]

