[BioC] Error when trying to build a package that needs to import GO.db, GOstats, ath1121501.db packages

Rich Savage r.s.savage at warwick.ac.uk
Wed Oct 29 15:54:07 CET 2008


Hi Martin,

That worked perfectly!  Thanks :-)


I added the following line to my NAMESPACE file:

importMethodsFrom(AnnotationDbi, eapply)


Plus, I changed my DESCRIPTION file to include this dependency:

Depends: methods, BHC, GO.db, GOstats, ath1121501.db, AnnotationDbi

('BHC' is my own package)


My package now runs perfectly happily.

Thanks again for your help,

Rich

-- 
------------------------------------------------------------------
   Dr. Richard Savage			Tel: +44 (0)24 765 50243
   Systems Biology Centre		
   University of Warwick
   Coventry
   CV4 7AL
   United Kingdom

   Web:  http://www.programming4scientists.com/
   	http://wsbc.warwick.ac.uk/~richsavage/
------------------------------------------------------------------




Martin Morgan wrote:
> Hi Rich --
> 
> Rich Savage <r.s.savage at warwick.ac.uk> writes:
> 
>> Hi all,
>>
>> I am trying to build a small package that contains some specific
>> functions to perform GO annotation and have encountered an error when
>> running 'R CMD check' on the package I (try to) build.  Specifically:
>>
>> [1] "S4"
>>             Length             Class              Mode
>>              25369 GOTermsAnnDbBimap                S4
>> TERM map for GO (object of class "GOTermsAnnDbBimap")
>> Error in eapply(GOTERM, function(x) { : argument must be an environment
>> Calls: WriteGoAnnotationToCsv -> AnnotateClusters -> unlist -> eapply
>> Execution halted
> 
> eapply is a generic defined in base, but the method for bimaps (which
> the GO object extends) is defined in AnnotationDbi.  So...
> 
>> The relevant code in my package (that generates the above) is:
>>
>>    print(mode(GOTERM))
>>    print(summary(GOTERM))
>>    print(GOTERM)
>>    print(is.environment(GOTERM))
>>
>>    goTermMaster  <- unlist(eapply(GOTERM, function(x) {x at Term}));
>>
>>
>> These functions work fine when I just 'source' them and run them via a
>> script. The example in my package that 'check' is testing also runs
> 
> Likely your global environment has AnnotationDbi on its search() path
> (you loaded AnnotationDbi, or one of the packages you've loaded has
> AnnotationDbi in the Depends: field of their name space). In contrast,
> inside your package, AnnotationDbi is likely NOT imported, and hence
> not on the search path used by the name space. So...
> 
>> fine when I cut-and-paste it into R (having sourced the relevant
>> functions).  Then problem only occurs with the package version.
>>
>> My concern is that I might not be importing something properly into my
>> package.   My NAMESPACE file looks like this:
>>
>> export(WriteGoAnnotationToCsv)
>> export(WriteGoAnnotationToLatex)
>> import(GO.db)
>> import(GOstats)
>> import(ath1121501.db)
> 
> Your name space has access to 'base' by default, but not AnnotationDbi
> & it's methods. When import the *db packages above you import the
> maps, but not the methods that operate on them.
> 
> So what you need, I think, is
> 
> importMethodsFrom(AnnotationDbi, eapply)
> 
> with perahps other functions listed after eapply.
> 
>> (both the exports are my own functions)
>>
>>
>> Finally, I've also noticed that when I use the above print statements
>> in R on GOTERM, I get different info.  Compare:
> 
> These differences are likely because verrsions of 'mode', 'summary',
> etc `work' on AnnotationDbi objects, but of course give the
> information the base version is supposed to give. The in-R versions
> are finding the AnnotationDbi-defined methods. This is a variant of
> your original problem.
> 
> Hope that helps, and is not too misleading.
> 
> Martin
> 
>> CODE
>> ----
>> print(mode(GOTERM))
>> print(summary(GOTERM))
>> print(GOTERM)
>>
>>
>> PACKAGE-BUILDING
>> ----------------
>> [1] "S4"
>>             Length             Class              Mode
>>              25369 GOTermsAnnDbBimap                S4
>> TERM map for GO (object of class "GOTermsAnnDbBimap")
>>
>>
>> IN R ITSELF
>> -----------
>>  >   print(mode(GOTERM))
>> [1] "S4"
>>  >   print(summary(GOTERM))
>> TERM map for GO (object of class "GOTermsAnnDbBimap")
>> |
>> | Lkeyname: go_id (Ltablename: go_term)
>> |    Lkeys: "GO:0000001", "GO:0000002", ... (total=25369/mapped=25369)
>> |
>> | Rkeyname: go_id (Rtablename: go_term)
>> |    Rkeys: "GO:0000001", "GO:0000002", ... (total=25369/mapped=25369)
>> |
>> | direction: L --> R
>> NULL
>>  >   print(GOTERM)
>> TERM map for GO (object of class "GOTermsAnnDbBimap")
>>
>>
>>
>>
>>
>> SESSION INFO
>> R version 2.8.0 (2008-10-20)
>> i386-apple-darwin8.11.1
>>
>> locale:
>> en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
>>
>> attached base packages:
>> [1] splines   tools     stats     graphics  grDevices utils
>> datasets methods   base
>>
>> other attached packages:
>>   [1] BHC.GoAnnotation_1.2 ath1121501.db_2.2.7  GOstats_2.8.0
>> Category_2.8.0
>>   [5] genefilter_1.22.0    survival_2.34-1      RBGL_1.18.0
>> annotate_1.20.0
>>   [9] xtable_1.5-4         graph_1.20.0         GO.db_2.2.5
>> RSQLite_0.7-0
>> [13] DBI_0.2-4            AnnotationDbi_1.4.0  Biobase_2.2.0
>> BHC_1.2.0 
>>
>>
>> loaded via a namespace (and not attached):
>> [1] GSEABase_1.4.0  XML_1.98-1      cluster_1.11.11
>>
>>
>>
>> Thanks very much for any help you can offer!
>>
>> Rich
>>
>>
>> -- 
>> ------------------------------------------------------------------
>>    Dr. Richard Savage			Tel: +44 (0)24 765 50243
>>    Systems Biology Centre		
>>    University of Warwick
>>    Coventry
>>    CV4 7AL
>>    United Kingdom
>>
>>    Web:  http://www.programming4scientists.com/
>>    	http://wsbc.warwick.ac.uk/~richsavage/
>>
>> _______________________________________________
>> 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
>



More information about the Bioconductor mailing list