[BioC] problem extending Category classes

Martin Morgan mtmorgan at fhcrc.org
Thu Dec 23 20:33:47 CET 2010


Hi Robert --

On 12/23/2010 09:48 AM, Robert M. Flight wrote:
> Hi All,
> 
> I am trying to make my own package a little easier to use, and want to
> extend some of the Category parameter classes. I can easily extend the
> primary virtual class without any problems, but I run into
> difficulties if I first extend the virtual class, and then try and
> extend that, or extend any of the other classes already built on it. I
> want to add just one slot to the classes, but would rather not
> redefine a bunch of stuff if the previously defined classes already
> have what I need (which is what I would do if I extended the
> HyperGParams class directly).
> 
> Two examples should illustrate what I am trying to do and the problem.
> 
> 
> Extend the VIRTUAL class "HyperGParams", works as expected
> 
>> setClass("T1",
> +          contains="HyperGParams",
> +          representation=representation(numrep="numeric"),
> +          prototype=prototype(numrep=1))
> [1] "T1"

not quite --

> new("T1")
Loading required package: .db
Error in DatPkgFactory(annotation) : 
  annotation package '.db' not available
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called '.db'

And simpler

> setClass("H", "HyperGParams")
[1] "H"
> new("H")
Loading required package: .db
Error in DatPkgFactory(annotation) : 
  annotation package '.db' not available
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called '.db'

A solution is to provide a default for the 'annotation' slot, along the lines of

> setClass("H", "HyperGParams",
+          prototype=prototype(annotation="GO"))
[1] "H"
> new("H")
A H instance
  category:  
annotation: GO 

Martin

> 
> 
> Now lets extend it to something like the "GOHyperGParams"
> 
>> setClass("GOT1",
> + contains="T1",
> +         representation=representation(ontology="character",
> +                         conditional="logical"),
> +         prototype=prototype(categoryName="GO",
> +            conditional=FALSE))
> Loading required package: .db
> Error in DatPkgFactory(annotation) :
>   annotation package '.db' not available
> In addition: Warning message:
> In library(package, lib.loc = lib.loc, character.only = TRUE,
> logical.return = TRUE,  :
>   there is no package called '.db'
> 
> 
> This behavior seems to be caused by the DatPkgFactory function in
> Category, but I can't figure out how to get around it in the class
> definition
> 
> 
> Ok, what about trying to extend the GOHyperGParams directly then?
> 
>> setClass("T2",
> +          contains="GOHyperGParams",
> +          representation=representation(numrep="numeric"),
> +          prototype=prototype(numrep=1))
> Loading required package: .db
> Error in DatPkgFactory(annotation) :
>   annotation package '.db' not available
> In addition: Warning message:
> In library(package, lib.loc = lib.loc, character.only = TRUE,
> logical.return = TRUE,  :
>   there is no package called '.db'
> 
> Same problem. Is this expected behavior? Is there a way to get around
> this? I would really appreciate any insight someone might have into
> this.
> 
>> sessionInfo()
> R version 2.12.0 (2010-10-15)
> Platform: x86_64-pc-mingw32/x64 (64-bit)
> 
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> 
> other attached packages:
> [1] GOstats_2.16.0       RSQLite_0.9-3        DBI_0.2-5
> [4] graph_1.28.0         Category_2.16.0      AnnotationDbi_1.12.0
> [7] Biobase_2.10.0
> 
> loaded via a namespace (and not attached):
>  [1] annotate_1.28.0   genefilter_1.32.0 GO.db_2.4.5       GSEABase_1.12.1
>  [5] RBGL_1.26.0       splines_2.12.0    survival_2.36-1   tools_2.12.0
>  [9] XML_3.2-0.2       xtable_1.5-6
> 
> 
> Regards,
> 
> -Robert
> 
> Robert M. Flight, Ph.D.
> University of Louisville Bioinformatics Laboratory
> University of Louisville
> Louisville, KY
> 
> PH 502-852-0467
> EM robert.flight at louisville.edu
> EM rflight79 at gmail.com
> 
> Williams and Holland's Law:
>        If enough data is collected, anything may be proven by
> statistical methods.
> 
> _______________________________________________
> 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


-- 
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 Bioconductor mailing list