[Bioc-devel] validity method of eSet

Martin Morgan mtmorgan at fhcrc.org
Mon Oct 25 13:59:21 CEST 2010


On 10/25/2010 02:46 AM, Simon Anders wrote:
> Hi,
> 
> I have a small complaint about eSet's validity method.

Thanks Simon, updated in devel. Martin

> 
> The whole point of an eSet is to ensure consistency between data and
> meta data, and hence, eSet should give a useful error message, if the
> user performs an operation that violates this.
> 
> 
> The following works fine:
> 
> I subclass eSet and instantiate it with a 10x20 data matrix 'm':
> 
>> setClass( "Foo",
> +    contains = "eSet" )
> [1] "Foo"
>>
>> m <- matrix( 0, nrow=10, ncol=20 )
>>
>> a <- new( "Foo",
> +    assayData = list( data = m ),
> +    phenoData = annotatedDataFrameFrom( m, byrow=FALSE ),
> +    featureData = annotatedDataFrameFrom( m, byrow=TRUE ) )
>>
>> validObject(a)
> [1] TRUE
> 
> 
> Now, I attempt to replace the dat matrix with one of wrong dimensions,
> and get a proper error message:
> 
>> assayData(a) <- list( data = matrix( 0, nrow=1, ncol=1 ) )
>> validObject(a)
> Error in validObject(a) :
> invalid class "Foo" object: 1: feature numbers differ between assayData
>    and featureData
> invalid class "Foo" object: 2: featureNames differ between assayData
>    and featureData
> invalid class "Foo" object: 3: sample numbers differ between assayData
>    and phenoData
> invalid class "Foo" object: 4: sampleNames differ between assayData
>    and phenoData
> 
> 
> However, I might be tempted to do this here:
>> assayData(a) <- list( data = 0 )
> 
> Now, 'validObject' is confused:
> 
> 1> validObject(a)
> Error in rep("...", nrow(d) - 2) : invalid 'times' argument
> 
> However, this here gives a proper error message:
> 
>> assayDataValidMembers(assayData(a))
> [1] "'AssayData' elements with invalid dimensions: 'data'"
> 
> 
> The problem is hence that eSet's validity method first checks the
> dimensions of the assayData and only then calls 'assayDataValidMembers'.
> 
> Can we simply turn this around? If so, see attached patch (vs r50433).
> 
> Best
>    Simon
> 
> 
> 1> sessionInfo()
> R version 2.12.0 (2010-10-15)
> Platform: x86_64-unknown-linux-gnu (64-bit)
> 
> locale:
>  [1] LC_CTYPE=en_US.utf8       LC_NUMERIC=C
>  [3] LC_TIME=en_US.utf8        LC_COLLATE=en_US.utf8
>  [5] LC_MONETARY=C             LC_MESSAGES=en_US.utf8
>  [7] LC_PAPER=en_US.utf8       LC_NAME=C
>  [9] LC_ADDRESS=C              LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.utf8 LC_IDENTIFICATION=C
> 
> attached base packages:
> [1] grid      stats     graphics  grDevices utils     datasets  methods
> [8] base
> 
> other attached packages:
> [1] GenomicRanges_1.2.0 IRanges_1.8.0       GenomeGraphs_1.9.0
> [4] biomaRt_2.6.0       Biobase_2.10.0
> 
> loaded via a namespace (and not attached):
> [1] RCurl_1.4-3 XML_3.2-0
> 
> 
> 
> +---
> | Dr. Simon Anders, Dipl.-Phys.
> | European Molecular Biology Laboratory (EMBL), Heidelberg
> | office phone +49-6221-387-8632
> | preferred (permanent) e-mail: sanders at fs.tum.de
> 
> 
> 
> _______________________________________________
> Bioc-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel


-- 
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109

Location: M1-B861
Telephone: 206 667-2793



More information about the Bioc-devel mailing list