[Bioc-devel] Different behavior of get() between 2.9.0 and later versions`

Luigi Marchionni marchion at jhu.edu
Wed Nov 4 08:07:25 CET 2009


Maybe you all guys already discussed that, but the  
stringsAsFactors=TRUE as global setting for R in genomics can be a  
problem.
Clearly this is not the case for the problem I raised (or maybe it  
is,,, in my .Rprofile I set it to FALSE..., il check this), however,  
for annotation purposes factors (and cbind, data.frame, and the like)  
do not work.
I ask you to make a major philosophical decision here...
Either everybody set the option to FALSE in the code, orx the base  
setting change. or. I do not know.
Or maybe there is a shortcut I am not aware of.
You cannot really anticipate what the end-user will do...
but if  stringsAsFactors=TRUE is the scenario, one must take to keep  
it in mind.
Am I making too complicate?
Is that irrelevant?
Luigi
PS:abusing of your patience, I know

On Nov 4, 2009, at 12:54 AM, Seth Falcon wrote:

> Hi Luigi,
>
> On 11/3/09 8:37 PM, Luigi Marchionni wrote:
>> here is Luigi. I am developing a package which heavily relies on
>> AnnotationDbi, annotate, and metadatata packages from bioconductor.
>> I noticed I weird behavior of the get() function for the  
>> mgug4122a.db()
>> package moving from 2.9.1 to later versions (2.10.0 and 2.11.0 the  
>> one I
>> am running).
>> Basically, an ID pointing to an 'NA' is not properly handled in the
>> newer versions, see below.
>> The same ID in one case returns 'NA', in the other case returns an  
>> error.
>> If also checked if this happened with other package (hgu133a.db)  
>> and the
>> behavior is different, for both an ID that was there and now is  
>> missing,
>> and an ID that was not there, and now is not there as well....
>> I give you the details below. Do you have any idea of what is going  
>> on?
>
> Partial details...
>
> When you call get() or otherwise retrieve a value from an annotation  
> package object using a key, like a probe ID, there are three  
> situations:
>
> 1. The probe ID is valid and maps to a value in the given object.
> 2. The probe ID is valid, but does not map to a value so NA is  
> returned.
> 3. The probe ID is not valid, an error is raised.
>
> So using a part of your example I see:
>
> > get("A_52_P71146", mgug4122aSYMBOL)
> Error in .checkKeys(value, Lkeys(x), x at ifnotfound) :
>  value for "A_52_P71146" not found
> > "A_52_P71146" %in% keys(mgug4122aSYMBOL)
> [1] FALSE
>
> I'll let someone else take a crack at why the key sets would have  
> changed.
>
> + seth
>
> > sessionInfo()
> R version 2.11.0 Under development (unstable) (--)
> x86_64-unknown-linux-gnu
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
> [9] LC_ADDRESS=C               LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices datasets  utils     methods   base
>
> other attached packages:
> [1] mgug4122a.db_2.3.5  org.Mm.eg.db_2.3.6  RSQLite_0.7-3
> [4] DBI_0.2-4           AnnotationDbi_1.9.0 Biobase_2.5.8
>
> loaded via a namespace (and not attached):
> [1] tools_2.11.0
>
>
>>
>> Luigi
>>
>> ########################################################
>> ###FOR R-2.9.1:
>> ########################################################
>> > sessionInfo()
>> R version 2.9.1 (2009-06-26)
>> i386-apple-darwin9.7.0
>>
>> locale:
>> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets
>> [6] methods base
>>
>> other attached packages:
>> [1] hgu133a.db_2.2.12 mgug4122a.db_2.2.11
>> [3] RSQLite_0.7-3 DBI_0.2-4
>> [5] AnnotationDbi_1.6.1 Biobase_2.4.1
>>
>> > get("A_52_P71146", mgug4122aSYMBOL)
>> [1] NA
>>
>> > get("201265_at", hgu133aSYMBOL)
>> [1] NA
>>
>> > get("200080_s_at", hgu133aSYMBOL)
>> [1] "H3F3A"
>>
>> ########################################################
>> ###FOR R-2.10.0:
>> ########################################################
>> > sessionInfo()
>> R version 2.10.0 (2009-10-26)
>> i386-apple-darwin9.8.0
>>
>> locale:
>> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets
>> [6] methods base
>>
>> other attached packages:
>> [1] hgu133a.db_2.3.5 org.Hs.eg.db_2.3.6
>> [3] mgug4122a.db_2.3.5 org.Mm.eg.db_2.3.6
>> [5] RSQLite_0.7-3 DBI_0.2-4
>> [7] AnnotationDbi_1.8.0 Biobase_2.6.0
>>
>> > get("A_52_P71146", mgug4122aSYMBOL)
>> Error in .checkKeys(value, Lkeys(x), x at ifnotfound) :
>> value for "A_52_P71146" not found
>>
>> > get("201265_at", hgu133aSYMBOL)
>> [1] NA
>>
>> > get("200080_s_at", hgu133aSYMBOL)
>> [1] NA
>>
>>
>>
>> --
>> Ulisse: "Considerate la vostra semenza:
>> fatti non foste a viver come bruti,
>> ma per seguir virtute e canoscenza".
>> (Dante, Divina Commedia, Canto XXVI)
>> --
>> G-C
>> T---A Luigi Marchionni, M.D., Ph.D.
>> C----G The Sidney Kimmel Comprehensive Cancer Center
>> G-------C Johns Hopkins University - School of Medicine
>> A------T 1550 Orleans St., CRB2, Rm 554
>> C----G Baltimore, MD, 21231, USA
>> G--C Tel: (001) 410-502-8179
>> C-G Fax: (001) 410-502-5742
>> T---A e-mail: marchion at jhmi.edu
>> G-----C URL: http://astor.som.jhmi.edu/~marchion/
>> A-------T
>>
>> _______________________________________________
>> Bioc-devel at stat.math.ethz.ch mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>



More information about the Bioc-devel mailing list