[BioC] namespace error with goProfiles package
Martin Morgan
mtmorgan at fhcrc.org
Fri Jun 13 21:46:07 CEST 2008
Juerg --
Thanks for the report.
Most packages use 'GO.db', but 'safe' Depends on 'GO'. The first time
you run your code, the search path looks something like
> search()
[1] ".GlobalEnv" "package:goProfiles" "package:GO.db"
[4] "package:AnnotationDbi" "package:RSQLite" "package:DBI"
[7] "package:Biobase" "package:tools" "package:stats"
[10] "package:graphics" "package:utils" "package:datasets"
[13] "package:grDevices" "package:methods" "Autoloads"
[16] "package:base"
whereas after loading 'safe' you get
> search()
[1] ".GlobalEnv" "package:safe" "package:GO"
[4] "package:SparseM" "package:annotate" "package:xtable"
[7] "package:goProfiles" "package:GO.db" "package:AnnotationDbi"
[10] "package:RSQLite" "package:DBI" "package:Biobase"
[13] "package:tools" "package:stats" "package:graphics"
[16] "package:utils" "package:datasets" "package:grDevices"
[19] "package:methods" "Autoloads" "package:base"
Note 'package:GO' in position 3. goProfiles tries to perform an
operation (toTable) that works with objects from GO.db but not from GO.
Unfortunately, goProfiles looks on the search path (implicitly) instead
of asking for GO.db in particular. This means that after loading safe it
finds the mapping in GO, and the error occurs.
There are three different solutions.
1. You can work around this by issuing
> detach('package:GO')
after library(safe). This might cause problems if 'safe' really only
works with GO, and not with GO.db
2. the 'safe' maintainer (cc'd) can update their package to use 'GO.db'
instead of GO. This will have to be done before the next release anyway.
3. The 'goProfiiles' maintainer (also cc'd) can modify their package
code to explicitly request the appropriate version of GO, e.g.,
library(annotate)
getAnnMap("TERM", "GO.db")
Thanks again for the report.
Martin
Straubhaar, Juerg wrote:
> The following code is from the goProfiles package and works fine:
>
> require(goProfiles)
> data(prostateIds)
> welsh.MF <- basicProfile(welsh01EntrezIDs, onto = "MF",level = 2, orgPackage = "org.Hs.eg.db")
> singh.MF <- basicProfile(singh01EntrezIDs, onto = "MF",level = 2, orgPackage = "org.Hs.eg.db")
> welsh.singh.MF <- mergeProfilesLists(welsh.MF,singh.MF, profNames = c("Welsh", "Singh"))
> printProfiles(welsh.singh.MF, percentage = TRUE)
>
> But if I load the libraries:
>
> library(mouse4302.db)
> library(annaffy)
> library(annotate)
> library(GSEAlm)
> library(safe)
>
> and run the above code an error is produced:
>
> Error in function (classes, fdef, mtable) :
> unable to find an inherited method for function "toTable", for signature "environment"
>
>> sessionInfo()
> R version 2.7.0 (2008-04-22)
> x86_64-pc-linux-gnu
>
> locale:
> C
>
> attached base packages:
> [1] tools stats graphics grDevices utils datasets methods
> [8] base
>
> other attached packages:
> [1] org.Hs.eg.db_2.2.0 goProfiles_1.2.0 safe_2.2.0
> [4] GO_2.2.0 SparseM_0.78 GSEAlm_1.0.0
> [7] annotate_1.18.0 xtable_1.5-2 annaffy_1.12.1
> [10] KEGG.db_2.2.0 GO.db_2.2.0 mouse4302.db_2.2.0
> [13] AnnotationDbi_1.2.1 RSQLite_0.6-8 DBI_0.2-4
> [16] Biobase_2.0.1
>
> If I load only the libraries:
>
> library(mouse4302.db)
> library(annaffy)
> library(annotate)
> library(GSEAlm)
>
> or only the library
>
> library(safe)
>
> the above code works.
>
> Kind regards,
> Juerg
> UMASS Med School
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
--
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M2 B169
Phone: (206) 667-2793
More information about the Bioconductor
mailing list