[BioC] arrayQualityMetrics error and question

Wolfgang Huber whuber at embl.de
Wed Mar 7 15:04:33 CET 2012


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 at 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 at 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 at fhcrc.org>:
>>>>>
>>>>> Hi,
>>>>>
>>>>> On Sun, Mar 4, 2012 at 2:44 PM, David Westergaard<david at 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 at 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 at 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 at 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 at 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 at 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 at 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



More information about the Bioconductor mailing list