Thank you for any help.
Bests,
Renaud
##############################
# Toy example:
##############################
R --vanilla --quiet <<EOF
setClass('B', contains = 'character')
setClass('C', contains = 'character')
setClass('D', contains = 'C')
setClassUnion('A', c('B', 'C'))
setGeneric('myfun', function(x, ...) standardGeneric('myfun'))
setMethod('myfun', 'A', function(x) print(class(x)) )
# works on C
myfun(new('C'))
# works on D
try( myfun(new('D')) )
# seems that inherits does not catch the inheritance
d <- new('D')
is(d, 'A')
inherits(d, 'A')
extends(class(d), 'A')
EOF
## OUTPUT FOR TOY EXAMPLE
setClass('B', contains = 'character')
setClass('C', contains = 'character')
setClass('D', contains = 'C')
setClassUnion('A', c('B', 'C'))
setGeneric('myfun', function(x, ...) standardGeneric('myfun'))
[1] "myfun"
setMethod('myfun', 'A', function(x) print(class(x)) )
[1] "myfun"
# works on C
myfun(new('C'))
[1] "C"
attr(,"package")
[1] ".GlobalEnv"
# works on D
try( myfun(new('D')) )
[1] "D"
attr(,"package")
[1] ".GlobalEnv"
# seems that inherits does not catch the inheritance
d <- new('D')
is(d, 'A')
[1] TRUE
inherits(d, 'A')
[1] TRUE
extends(class(d), 'A')
[1] TRUE
#####################################################
# Concrete example with ExpressionSet and LumiBatch objects:
#####################################################
### RUN
R --vanilla <<EOF
library(Biobase)
setGeneric('myfun', function(x, ...) standardGeneric('myfun'))
setClassUnion('A', c('matrix', 'ExpressionSet'))
setMethod('myfun', 'A', function(x){
print(class(x))
})
# works on ExpressionSet
data(sample.ExpressionSet)
myfun(sample.ExpressionSet)
# not working on LumiBatch
library(lumi)
data(example.lumi)
try( myfun(example.lumi) )
# seems that inherits does not catch the inheritance
is(example.lumi, 'A')
inherits(example.lumi, 'A')
extends(class(example.lumi), 'A')
# define method for ExpressionSet ?
setMethod('myfun', 'ExpressionSet', function(x){
message('ExpressionSet method')
print(class(x))
})
# works well
myfun(sample.ExpressionSet)
myfun(example.lumi)
# Session info
sessionInfo()
EOF
##################
#### OUTPUT FOR EXPRESSIONSET
##################
R version 3.0.0 (2013-04-03) -- "Masked Marvel"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: i686-pc-linux-gnu (32-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
library(Biobase)
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: ‘BiocGenerics’
The following objects are masked from ‘package:parallel’:
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB
The following object is masked from ‘package:stats’:
xtabs
The following objects are masked from ‘package:base’:
anyDuplicated, as.data.frame, cbind, colnames, duplicated, eval,
Filter, Find, get, intersect, lapply, Map, mapply, match, mget,
order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,
rbind, Reduce, rep.int, rownames, sapply, setdiff, sort, table,
tapply, union, unique, unlist
Welcome to Bioconductor
Vignettes contain introductory material; view with
'browseVignettes()'. To cite Bioconductor, see
'citation("Biobase")', and for packages 'citation("pkgname")'.
setGeneric('myfun', function(x, ...) standardGeneric('myfun'))
[1] "myfun"
setClassUnion('A', c('matrix', 'ExpressionSet'))
setMethod('myfun', 'A', function(x){
+ print(class(x))
+ })
[1] "myfun"
# works on ExpressionSet
data(sample.ExpressionSet)
myfun(sample.ExpressionSet)
[1] "ExpressionSet"
attr(,"package")
[1] "Biobase"
# not working on LumiBatch
library(lumi)
KernSmooth 2.23 loaded
Copyright M. P. Wand 1997-2009
Warning messages:
1: replacing previous import ‘image’ when loading ‘graphics’
2: replacing previous import ‘nleqslv’ when loading ‘nleqslv’
data(example.lumi)
try( myfun(example.lumi) )
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘myfun’ for signature
‘"LumiBatch"’
# seems that inherits does not catch the inheritance
is(example.lumi, 'A')
[1] TRUE
inherits(example.lumi, 'A')
[1] FALSE
extends(class(example.lumi), 'A')
[1] TRUE
# define method for ExpressionSet ?
setMethod('myfun', 'ExpressionSet', function(x){
+ message('ExpressionSet method')
+ print(class(x))
+ })
[1] "myfun"
# works well
myfun(sample.ExpressionSet)
ExpressionSet method
[1] "ExpressionSet"
attr(,"package")
[1] "Biobase"
myfun(example.lumi)
ExpressionSet method
[1] "LumiBatch"
attr(,"package")
[1] "lumi"
# Session info
sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: i686-pc-linux-gnu (32-bit)
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=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] lumi_2.12.0 Biobase_2.20.0 BiocGenerics_0.6.0
loaded via a namespace (and not attached):
[1] affy_1.38.1 affyio_1.28.0 annotate_1.38.0
[4] AnnotationDbi_1.22.5 beanplot_1.1 BiocInstaller_1.10.1
[7] Biostrings_2.28.0 colorspace_1.2-2 DBI_0.2-6
[10] GenomicRanges_1.12.2 grid_3.0.0 illuminaio_0.2.0
[13] IRanges_1.18.0 KernSmooth_2.23-10 lattice_0.20-15
[16] limma_3.16.3 MASS_7.3-26 Matrix_1.0-12
[19] matrixStats_0.8.1 mclust_4.1 methylumi_2.6.1
[22] mgcv_1.7-22 minfi_1.6.0 multtest_2.16.0
[25] nleqslv_2.0 nlme_3.1-109 nor1mix_1.1-4
[28] preprocessCore_1.22.0 RColorBrewer_1.0-5 reshape_0.8.4
[31] R.methodsS3_1.4.2 RSQLite_0.11.3 siggenes_1.34.0
[34] splines_3.0.0 stats4_3.0.0 survival_2.37-4
[37] tools_3.0.0 XML_3.96-1.1 xtable_1.7-1
[40] zlibbioc_1.6.0
[[alternative HTML version deleted]]
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel