[BioC] arrayQualityMetrics and NChannelSets

Wolfgang Huber whuber at embl.de
Thu Sep 29 00:45:31 CEST 2011


Dear Tim

thank you. You were right: previous versions of the 
'arrayQualityMetrics' function expected elements 'R' and 'G' in the 
'assayData' slot of the 'NChannelSet', and otherwise failed with the 
cryptic error message that you reported.

I have now added some logic to the 'arrayQualityMetrics' function so 
that if it sees an 'exprs' element in 'assayData' (what you have in 
'nc') it simply invokes the same behaviour as for 'ExpressionSet'.

I also added better error reporting if neither of these two cases apply, 
and documented this behaviour in the vignette. See arrayQualityMetrics 
 >=  3.9.5, and also here:
http://www-huber.embl.de/users/whuber/bioc-list/110929/Report_for_nc
which was produced by

library("arrayQualityMetrics")
load("nc.RData")
arrayQualityMetrics(nc, do.logtransform=TRUE)

To respond to your below questions, I think the behaviour of the 
validity method of NChannelSet class does the right thing. The problem 
lied on the side of 'arrayQualityMetrics' function, who assumed more 
specific properties of these objects (namely, the number and name of its 
assayData elements).

Thanks again for this useful feedback, it helps a lot to make this 
package run on a wide variety of datasets.

	Hope this helps
	Wolfgang



Sep/27/11 11:54 AM, Tim Rayner scripsit::
> Dear Wolfgang,
>
> Thank you very much for your reply. I've tried using the latest devel
> version of arrayQualityMetrics and I'm afraid the error persists
> (sessionInfo is below). The offending nc object is in my public
> dropbox, here: http://dl.dropbox.com/u/1225281/nc.RData
>
> I've also tried coercing the NChannelSet object to an ExpressionSet,
> but that also fails:
>
>> as(nc, 'ExpressionSet')
> Error in updateOldESet(from, "ExpressionSet") :
>    no slot of name "pData" for this object of class "AnnotatedDataFrame"
>
> I've tried loading the convert library (v 1.28.0) but that doesn't
> make any difference. Converting from the original GeneFeatureSet
> object also fails with the same message. I can load the CCl4 object
> and confirm that arrayQualityMetrics runs without problems on that
> object.
>
> Having looked through the code I've come to the conclusion that the
> problem is likely to be me attempting to use the wrong data class; I
> guess NChannelSet is designed solely for use with two-channel data, so
> "N" in this scenario shouldn't equal 1. The assayData slot for nc
> contains a slot named 'exprs', rather than the 'R', 'G', 'Rb', 'Gb',
> etc. slots which are expected. Why the validObject() function fails to
> flag this is probably a topic for a separate discussion.
>
> Given that I presumably shouldn't be using NChannelSet, and the
> coercion from GeneFeatureSet to ExpressionSet currently doesn't work,
> I'm wondering if there's any way to run arrayQualityMetrics on
> unnormalised data sets prepared using the oligo package?
>
> Many thanks again,
>
> Tim
>
>
>> sessionInfo()
> R version 2.13.0 (2011-04-13)
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>
> locale:
> [1] C
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
>   [1] arrayQualityMetrics_3.9.4 pd.hugene.1.0.st.v1_3.2.0
>   [3] oligo_1.16.2              preprocessCore_1.14.0
>   [5] oligoClasses_1.14.0       RSQLite_0.9-4
>   [7] DBI_0.2-5                 SmithLabArray_0.5.5
>   [9] limma_3.8.3               Biobase_2.12.2
>
> loaded via a namespace (and not attached):
>   [1] AnnotationDbi_1.14.1 Biostrings_2.20.3    Cairo_1.4-9
>   [4] Hmisc_3.8-3          IRanges_1.10.6       RColorBrewer_1.0-5
>   [7] SVGAnnotation_0.9-0  XML_3.4-3            affxparser_1.24.0
> [10] affy_1.30.0          affyPLM_1.28.5       affyio_1.20.0
> [13] annotate_1.30.1      beadarray_2.2.0      bit_1.1-7
> [16] cluster_1.14.0       ff_2.2-3             gdata_2.8.1
> [19] genefilter_1.34.0    gplots_2.10.1        grid_2.13.0
> [22] gtools_2.6.2         hopach_2.12.0        hwriter_1.3
> [25] lattice_0.19-33      latticeExtra_0.6-18  setRNG_2009.11-1
> [28] splines_2.13.0       survival_2.36-9      vsn_3.20.0
> [31] xtable_1.5-6
>
>
>
> On 26 September 2011 09:30, Wolfgang Huber<whuber at embl.de>  wrote:
>> Dear Tim
>>
>> thank you for your feedback and sorry for the delayed reply.
>> arrayQualityMetrics has changed a lot recently, and there may be some
>> hickups.
>>
>> Can you please try with a more recent (devel) version of
>> arrayQualityMetrics, and if the problem persists, send me the offending
>> object 'nc'?
>>
>> As a quick workaround, can you try with converting to 'ExpressionSet'
>> instead of 'NChannelSet'?
>>
>> I have just tried
>>
>> library(CCl4)
>> library(arrayQualityMetrics)
>> data(CCl4)
>> arrayQualityMetrics(CCl4)
>>
>> which worked without error,and also this quality report
>> http://www-huber.embl.de/users/whuber/bioc-list/110916/Report_for_nCCl4_with_RIN
>> was made by code in the package vignette from the NChannelSet nCCl4.
>>
>>         Best wishes
>>         Wolfgang
>>
>>
>>> sessionInfo()
>> R Under development (unstable) (2011-09-25 r57072)
>> Platform: x86_64-apple-darwin10.8.0/x86_64 (64-bit)
>>
>> locale:
>> [1] C
>>
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>
>> other attached packages:
>> [1] arrayQualityMetrics_3.9.4 CCl4_1.0.9
>> [3] limma_3.9.18              Biobase_2.13.9
>> [5] fortunes_1.4-2
>>
>> loaded via a namespace (and not attached):
>>   [1] AnnotationDbi_1.15.21 BiocInstaller_1.1.28  Biostrings_2.21.9
>>   [4] Cairo_1.4-9           DBI_0.2-5             Hmisc_3.8-3
>>   [7] IRanges_1.11.27       KernSmooth_2.23-6     RColorBrewer_1.0-5
>> [10] RSQLite_0.9-4         SVGAnnotation_0.9-0   XML_3.4-3
>> [13] affy_1.31.5           affyPLM_1.29.3        affyio_1.21.2
>> [16] annotate_1.31.1       beadarray_2.3.8       cluster_1.14.0
>> [19] genefilter_1.35.0     grid_2.14.0           hwriter_1.3
>> [22] lattice_0.19-33       latticeExtra_0.6-18   preprocessCore_1.15.0
>> [25] reshape_0.8.4         setRNG_2009.11-1      splines_2.14.0
>> [28] survival_2.36-9       tools_2.14.0          vsn_3.21.2
>> [31] xtable_1.5-6          zlibbioc_0.1.7
>>
>>
>>
>> Sep/22/11 12:29 PM, Tim Rayner scripsit::
>>>
>>> Hi,
>>>
>>> Just a quick note to observe that the current stable version of
>>> arrayQualityMetrics seems to have a problem with NChannelSet objects:
>>>
>>>> nc
>>>
>>> NChannelSet (storageMode: lockedEnvironment)
>>> assayData: 1178100 features, 50 samples
>>>    element names: exprs
>>> protocolData
>>>    rowNames: GWAS16.10_160_CD16.CEL GWAS16.11_158_CD16.CEL ...
>>>      GWAS16.L_148_CD16.CEL (50 total)
>>>    varLabels: exprs dates
>>>    varMetadata: labelDescription channel
>>> phenoData
>>>    rowNames: GWAS16.10_160_CD16.CEL GWAS16.11_158_CD16.CEL ...
>>>      GWAS16.L_148_CD16.CEL (50 total)
>>>    varLabels: info.batch.name operator ... visual_check (62 total)
>>>    varMetadata: labelDescription channel
>>> featureData: none
>>> experimentData: use 'experimentData(object)'
>>> Annotation: pd.hugene.1.1.st.v1
>>>
>>>
>>>> arrayQualityMetrics(nc)
>>>
>>> The directory 'arrayQualityMetrics report for nc' has been created.
>>> Error in rep("#1F78B4", x$numArrays) : invalid 'times' argument
>>>
>>>
>>>> traceback()
>>>
>>> 4: intgroupColors(x)
>>> 3: append(x, intgroupColors(x))
>>> 2: prepdata(expressionset, intgroup = intgroup, do.logtransform =
>>> do.logtransform)
>>> 1: arrayQualityMetrics(nc)
>>>
>>>
>>>> validObject(nc)
>>>
>>> [1] TRUE
>>>
>>>
>>>> sessionInfo()
>>>
>>> R version 2.13.1 (2011-07-08)
>>> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>>>
>>> locale:
>>> [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
>>>
>>> attached base packages:
>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> other attached packages:
>>>   [1] arrayQualityMetrics_3.8.0 pd.hugene.1.1.st.v1_3.2.0
>>>   [3] oligo_1.16.0              preprocessCore_1.14.0
>>>   [5] oligoClasses_1.14.0       RSQLite_0.9-4
>>>   [7] DBI_0.2-5                 ClinStudyWeb_0.2.4
>>>   [9] rjson_0.2.5               SmithLabArray_0.5.5
>>> [11] limma_3.8.3               Biobase_2.12.2
>>>
>>> loaded via a namespace (and not attached):
>>>   [1] affxparser_1.24.0    affy_1.30.0          affyio_1.20.0
>>>   [4] affyPLM_1.28.5       annotate_1.30.1      AnnotationDbi_1.14.1
>>>   [7] beadarray_2.2.0      Biostrings_2.20.3    bit_1.1-7
>>> [10] Cairo_1.4-9          cluster_1.14.0       ff_2.2-3
>>> [13] gdata_2.8.1          genefilter_1.34.0    gplots_2.10.1
>>> [16] grid_2.13.1          gtools_2.6.2         Hmisc_3.8-3
>>> [19] hopach_2.12.0        hwriter_1.3          IRanges_1.10.6
>>> [22] lattice_0.19-33      latticeExtra_0.6-18  RColorBrewer_1.0-5
>>> [25] RCurl_1.6-10         setRNG_2009.11-1     splines_2.13.1
>>> [28] survival_2.36-9      SVGAnnotation_0.9-0  tcltk_2.13.1
>>> [31] tools_2.13.1         vsn_3.20.0           XML_3.4-3
>>> [34] xtable_1.5-6
>>>
>>> Given that the documentation claims to support such objects I'm
>>> assuming this is a bug? I'm currently coercing GeneFeatureSet objects
>>> to NChannelSet and as you can see the conversion yields valid objects.
>>> As a workaround, is there an alternative class to which I should be
>>> coercing?
>>>
>>> Many thanks,
>>>
>>> Tim Rayner
>>>
>>
>>
>> --
>>
>>
>> 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
>>


-- 


Wolfgang Huber
EMBL
http://www.embl.de/research/units/genome_biology/huber



More information about the Bioconductor mailing list