gdata affects LumiBatch::combine method
1
0
Entering edit mode
Mark Cowley ▴ 910
@mark-cowley-2951
Last seen 9.6 years ago
Dear list, i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? cheers, Mark ### lumi, then gdata > suppressPackageStartupMessages(library(lumi)) Warning messages: 1: found methods to import for function ?eapply? but not the generic itself 2: replacing previous import ?image? when loading ?graphics? > load("Rmisc/n525.RDa") > load("Rmisc/s295.RDa") > showMethods("combine") Function: combine (package BiocGenerics) x="AnnotatedDataFrame", y="AnnotatedDataFrame" x="ANY", y="missing" x="AssayData", y="AssayData" x="data.frame", y="data.frame" x="eSet", y="eSet" x="ExpressionSet", y="LumiBatch" x="LumiBatch", y="ExpressionSet" x="LumiBatch", y="LumiBatch" x="matrix", y="matrix" x="MethyLumiM", y="MethyLumiM" x="MethyLumiQC", y="MethyLumiQC" x="MethyLumiSet", y="MethyLumiSet" x="MIAME", y="MIAME" > a <- combine(n525, s295) > class(a) [1] "LumiBatch" attr(,"package") [1] "lumi" ## the expected output > suppressPackageStartupMessages(library(gdata)) > showMethods("combine") Function: combine (package BiocGenerics) x="AnnotatedDataFrame", y="AnnotatedDataFrame" x="ANY", y="missing" x="AssayData", y="AssayData" x="data.frame", y="data.frame" x="environment", y="environment" (inherited from: x="AssayData", y="AssayData") x="eSet", y="eSet" x="ExpressionSet", y="LumiBatch" x="LumiBatch", y="ExpressionSet" x="LumiBatch", y="LumiBatch" x="matrix", y="matrix" x="MethyLumiM", y="MethyLumiM" x="MethyLumiQC", y="MethyLumiQC" x="MethyLumiSet", y="MethyLumiSet" x="MIAME", y="MIAME" > a <- combine(n525, s295) > class(a) [1] "data.frame" > #### gdata then lumi > suppressPackageStartupMessages(library(gdata)) > suppressPackageStartupMessages(library(lumi)) Warning messages: 1: found methods to import for function ?eapply? but not the generic itself 2: replacing previous import ?image? when loading ?graphics? > load("Rmisc/n525.RDa") > load("Rmisc/s295.RDa") > showMethods("combine") Function: combine (package BiocGenerics) x="AnnotatedDataFrame", y="AnnotatedDataFrame" x="ANY", y="missing" x="AssayData", y="AssayData" x="data.frame", y="data.frame" x="eSet", y="eSet" x="ExpressionSet", y="LumiBatch" x="LumiBatch", y="ExpressionSet" x="LumiBatch", y="LumiBatch" x="matrix", y="matrix" x="MethyLumiM", y="MethyLumiM" x="MethyLumiQC", y="MethyLumiQC" x="MethyLumiSet", y="MethyLumiSet" x="MIAME", y="MIAME" > a <- combine(n525, s295) > class(a) [1] "LumiBatch" attr(,"package") [1] "lumi" > sessionInfo() R version 2.15.1 (2012-06-22) Platform: i386-apple-darwin9.8.0/i386 (32-bit) locale: [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 [5] gdata_2.12.0 loaded via a namespace (and not attached): [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0
lumi lumi • 1.4k views
ADD COMMENT
0
Entering edit mode
@martin-morgan-1513
Last seen 3 days ago
United States
On 10/08/2012 09:40 PM, Mark Cowley wrote: > Dear list, > i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. > In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. > As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? Hi Mark -- unfortunately, this is not easily avoidable. gdata (a CRAN package) defines its own function combine that masks the version used by lumi and other Bioconductor packages. The work-around is to invoke lumi's combine with, e.g., lumi::combine(x = example.lumi[, 1], y = example.lumi[, 3]) If gdata were in Bioconductor, we could coerce the author into writing a method for combine, as defined in BiocGenerics. If you were writing a package, then you could importMethodsFrom(lumi, combine) and use combine safely in your own package code whether or not gdata was on the search path. Martin > cheers, > Mark > > ### lumi, then gdata >> suppressPackageStartupMessages(library(lumi)) > Warning messages: > 1: found methods to import for function ?eapply? but not the generic itself > 2: replacing previous import ?image? when loading ?graphics? >> load("Rmisc/n525.RDa") >> load("Rmisc/s295.RDa") >> showMethods("combine") > Function: combine (package BiocGenerics) > x="AnnotatedDataFrame", y="AnnotatedDataFrame" > x="ANY", y="missing" > x="AssayData", y="AssayData" > x="data.frame", y="data.frame" > x="eSet", y="eSet" > x="ExpressionSet", y="LumiBatch" > x="LumiBatch", y="ExpressionSet" > x="LumiBatch", y="LumiBatch" > x="matrix", y="matrix" > x="MethyLumiM", y="MethyLumiM" > x="MethyLumiQC", y="MethyLumiQC" > x="MethyLumiSet", y="MethyLumiSet" > x="MIAME", y="MIAME" > >> a <- combine(n525, s295) >> class(a) > [1] "LumiBatch" > attr(,"package") > [1] "lumi" > ## the expected output > >> suppressPackageStartupMessages(library(gdata)) >> showMethods("combine") > Function: combine (package BiocGenerics) > x="AnnotatedDataFrame", y="AnnotatedDataFrame" > x="ANY", y="missing" > x="AssayData", y="AssayData" > x="data.frame", y="data.frame" > x="environment", y="environment" > (inherited from: x="AssayData", y="AssayData") > x="eSet", y="eSet" > x="ExpressionSet", y="LumiBatch" > x="LumiBatch", y="ExpressionSet" > x="LumiBatch", y="LumiBatch" > x="matrix", y="matrix" > x="MethyLumiM", y="MethyLumiM" > x="MethyLumiQC", y="MethyLumiQC" > x="MethyLumiSet", y="MethyLumiSet" > x="MIAME", y="MIAME" > >> a <- combine(n525, s295) >> class(a) > [1] "data.frame" >> > > > #### gdata then lumi >> suppressPackageStartupMessages(library(gdata)) >> suppressPackageStartupMessages(library(lumi)) > Warning messages: > 1: found methods to import for function ?eapply? but not the generic itself > 2: replacing previous import ?image? when loading ?graphics? >> load("Rmisc/n525.RDa") >> load("Rmisc/s295.RDa") >> showMethods("combine") > Function: combine (package BiocGenerics) > x="AnnotatedDataFrame", y="AnnotatedDataFrame" > x="ANY", y="missing" > x="AssayData", y="AssayData" > x="data.frame", y="data.frame" > x="eSet", y="eSet" > x="ExpressionSet", y="LumiBatch" > x="LumiBatch", y="ExpressionSet" > x="LumiBatch", y="LumiBatch" > x="matrix", y="matrix" > x="MethyLumiM", y="MethyLumiM" > x="MethyLumiQC", y="MethyLumiQC" > x="MethyLumiSet", y="MethyLumiSet" > x="MIAME", y="MIAME" > >> a <- combine(n525, s295) >> class(a) > [1] "LumiBatch" > attr(,"package") > [1] "lumi" > > >> sessionInfo() > R version 2.15.1 (2012-06-22) > Platform: i386-apple-darwin9.8.0/i386 (32-bit) > > locale: > [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 > [5] gdata_2.12.0 > > loaded via a namespace (and not attached): > [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 > [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 > [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 > [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 > [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 > [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 > [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 > [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0 > > _______________________________________________ > 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: Arnold Building M1 B861 Phone: (206) 667-2793
ADD COMMENT
0
Entering edit mode
Thanks Martin, Unfortunately, explicitly specifying lumi::combine seems to interfere with the S4 calling mechanism in an interactive session: ### only lumi library(lumi) load("Rmisc/n525.RDa") load("Rmisc/s217.RDa") load("Rmisc/s295.RDa") a <- lumi::combine(s217, n525, s295) Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : 'callGeneric' must be called from a generic function or method a <- combine(s217, n525, s295) class(a) # [1] "LumiBatch" ##### gdata then lumi library(gdata) library(lumi) load("Rmisc/n525.RDa") load("Rmisc/s217.RDa") load("Rmisc/s295.RDa") a <- lumi::combine(s217, n525, s295) Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : 'callGeneric' must be called from a generic function or method a <- combine(s217, n525, s295) class(a) # [1] "LumiBatch" #### lumi then gdata library(lumi) library(gdata) load("Rmisc/n525.RDa") load("Rmisc/s217.RDa") load("Rmisc/s295.RDa") a <- lumi::combine(s217, n525, s295) Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : 'callGeneric' must be called from a generic function or method a <- combine(s217, n525, s295) class(a) # [1] "data.frame" > sessionInfo() R version 2.15.1 (2012-06-22) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8 [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods [7] base other attached packages: [1] gdata_2.11.0 lumi_2.8.0 nleqslv_1.9.3 [4] methylumi_2.2.0 ggplot2_0.9.1 reshape2_1.2.1 [7] scales_0.2.1 Biobase_2.16.0 BiocGenerics_0.2.0 loaded via a namespace (and not attached): [1] affy_1.34.0 affyio_1.24.0 [3] annotate_1.34.1 AnnotationDbi_1.18.1 [5] bigmemory_4.2.11 BiocInstaller_1.4.7 [7] Biostrings_2.24.1 bitops_1.0-4.1 [9] BSgenome_1.24.0 colorspace_1.1-1 [11] DBI_0.2-5 dichromat_1.2-4 [13] digest_0.5.2 DNAcopy_1.30.0 [15] GenomicRanges_1.8.12 genoset_1.6.0 [17] grid_2.15.1 gtools_2.7.0 [19] hdrcde_2.16 IRanges_1.14.4 [21] KernSmooth_2.23-8 labeling_0.1 [23] lattice_0.20-10 MASS_7.3-20 [25] Matrix_1.0-6 memoise_0.1 [27] mgcv_1.7-20 munsell_0.3 [29] nlme_3.1-104 plyr_1.7.1 [31] preprocessCore_1.18.0 proto_0.3-9.2 [33] RColorBrewer_1.0-5 RCurl_1.91-1 [35] Rsamtools_1.8.6 RSQLite_0.11.1 [37] rtracklayer_1.16.3 stats4_2.15.1 [39] stringr_0.6.1 tools_2.15.1 [41] XML_3.9-4 xtable_1.7-0 [43] zlibbioc_1.2.0 Reordering my package loads so that lumi is last, and just using 'combine' works. cheers, Mark On 10/10/2012, at 7:06 AM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: > On 10/08/2012 09:40 PM, Mark Cowley wrote: >> Dear list, >> i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. >> In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. >> As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? > > Hi Mark -- unfortunately, this is not easily avoidable. gdata (a CRAN package) defines its own function combine that masks the version used by lumi and other Bioconductor packages. The work-around is to invoke lumi's combine with, e.g., > > lumi::combine(x = example.lumi[, 1], y = example.lumi[, 3]) > > If gdata were in Bioconductor, we could coerce the author into writing a method for combine, as defined in BiocGenerics. If you were writing a package, then you could importMethodsFrom(lumi, combine) and use combine safely in your own package code whether or not gdata was on the search path. > > Martin > >> cheers, >> Mark >> >> ### lumi, then gdata >>> suppressPackageStartupMessages(library(lumi)) >> Warning messages: >> 1: found methods to import for function ?eapply? but not the generic itself >> 2: replacing previous import ?image? when loading ?graphics? >>> load("Rmisc/n525.RDa") >>> load("Rmisc/s295.RDa") >>> showMethods("combine") >> Function: combine (package BiocGenerics) >> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >> x="ANY", y="missing" >> x="AssayData", y="AssayData" >> x="data.frame", y="data.frame" >> x="eSet", y="eSet" >> x="ExpressionSet", y="LumiBatch" >> x="LumiBatch", y="ExpressionSet" >> x="LumiBatch", y="LumiBatch" >> x="matrix", y="matrix" >> x="MethyLumiM", y="MethyLumiM" >> x="MethyLumiQC", y="MethyLumiQC" >> x="MethyLumiSet", y="MethyLumiSet" >> x="MIAME", y="MIAME" >> >>> a <- combine(n525, s295) >>> class(a) >> [1] "LumiBatch" >> attr(,"package") >> [1] "lumi" >> ## the expected output >> >>> suppressPackageStartupMessages(library(gdata)) >>> showMethods("combine") >> Function: combine (package BiocGenerics) >> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >> x="ANY", y="missing" >> x="AssayData", y="AssayData" >> x="data.frame", y="data.frame" >> x="environment", y="environment" >> (inherited from: x="AssayData", y="AssayData") >> x="eSet", y="eSet" >> x="ExpressionSet", y="LumiBatch" >> x="LumiBatch", y="ExpressionSet" >> x="LumiBatch", y="LumiBatch" >> x="matrix", y="matrix" >> x="MethyLumiM", y="MethyLumiM" >> x="MethyLumiQC", y="MethyLumiQC" >> x="MethyLumiSet", y="MethyLumiSet" >> x="MIAME", y="MIAME" >> >>> a <- combine(n525, s295) >>> class(a) >> [1] "data.frame" >>> >> >> >> #### gdata then lumi >>> suppressPackageStartupMessages(library(gdata)) >>> suppressPackageStartupMessages(library(lumi)) >> Warning messages: >> 1: found methods to import for function ?eapply? but not the generic itself >> 2: replacing previous import ?image? when loading ?graphics? >>> load("Rmisc/n525.RDa") >>> load("Rmisc/s295.RDa") >>> showMethods("combine") >> Function: combine (package BiocGenerics) >> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >> x="ANY", y="missing" >> x="AssayData", y="AssayData" >> x="data.frame", y="data.frame" >> x="eSet", y="eSet" >> x="ExpressionSet", y="LumiBatch" >> x="LumiBatch", y="ExpressionSet" >> x="LumiBatch", y="LumiBatch" >> x="matrix", y="matrix" >> x="MethyLumiM", y="MethyLumiM" >> x="MethyLumiQC", y="MethyLumiQC" >> x="MethyLumiSet", y="MethyLumiSet" >> x="MIAME", y="MIAME" >> >>> a <- combine(n525, s295) >>> class(a) >> [1] "LumiBatch" >> attr(,"package") >> [1] "lumi" >> >> >>> sessionInfo() >> R version 2.15.1 (2012-06-22) >> Platform: i386-apple-darwin9.8.0/i386 (32-bit) >> >> locale: >> [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 >> [5] gdata_2.12.0 >> >> loaded via a namespace (and not attached): >> [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 >> [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 >> [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 >> [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 >> [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 >> [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 >> [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 >> [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0 >> >> _______________________________________________ >> 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: Arnold Building M1 B861 > Phone: (206) 667-2793
ADD REPLY
0
Entering edit mode
On 10/10/2012 09:25 PM, Mark Cowley wrote: > Thanks Martin, > Unfortunately, explicitly specifying lumi::combine seems to interfere with the S4 calling mechanism in an interactive session: > > ### only lumi > library(lumi) > load("Rmisc/n525.RDa") > load("Rmisc/s217.RDa") > load("Rmisc/s295.RDa") > a <- lumi::combine(s217, n525, s295) > Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : > 'callGeneric' must be called from a generic function or method I can replicate that with example(LumiBatch) and then lumi::combine(example.lumi[,1], example.lumi[,2], example.lumi[,3]) I'd say this was an issue in methods, and the work-around (again!) would be to make the recursion here > lumi::combine nonstandardGenericFunction for "combine" defined from package "BiocGenerics" function (x, y, ...) { if (length(list(...)) > 0L) { callGeneric(x, do.call(callGeneric, list(y, ...))) } else { standardGeneric("combine") } } <environment: 0x1f53748=""> into an iteration: res = example.lumi[,1] for (i in 2:3) res = combine(res, example.lumi[,i]) Martin > > a <- combine(s217, n525, s295) > class(a) > # [1] "LumiBatch" > > ##### gdata then lumi > library(gdata) > library(lumi) > load("Rmisc/n525.RDa") > load("Rmisc/s217.RDa") > load("Rmisc/s295.RDa") > a <- lumi::combine(s217, n525, s295) > Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : > 'callGeneric' must be called from a generic function or method > > a <- combine(s217, n525, s295) > class(a) > # [1] "LumiBatch" > > #### lumi then gdata > library(lumi) > library(gdata) > load("Rmisc/n525.RDa") > load("Rmisc/s217.RDa") > load("Rmisc/s295.RDa") > a <- lumi::combine(s217, n525, s295) > Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : > 'callGeneric' must be called from a generic function or method > > a <- combine(s217, n525, s295) > class(a) > # [1] "data.frame" > >> sessionInfo() > R version 2.15.1 (2012-06-22) > Platform: x86_64-unknown-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C > [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8 > [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 > [7] LC_PAPER=C LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods > [7] base > > other attached packages: > [1] gdata_2.11.0 lumi_2.8.0 nleqslv_1.9.3 > [4] methylumi_2.2.0 ggplot2_0.9.1 reshape2_1.2.1 > [7] scales_0.2.1 Biobase_2.16.0 BiocGenerics_0.2.0 > > loaded via a namespace (and not attached): > [1] affy_1.34.0 affyio_1.24.0 > [3] annotate_1.34.1 AnnotationDbi_1.18.1 > [5] bigmemory_4.2.11 BiocInstaller_1.4.7 > [7] Biostrings_2.24.1 bitops_1.0-4.1 > [9] BSgenome_1.24.0 colorspace_1.1-1 > [11] DBI_0.2-5 dichromat_1.2-4 > [13] digest_0.5.2 DNAcopy_1.30.0 > [15] GenomicRanges_1.8.12 genoset_1.6.0 > [17] grid_2.15.1 gtools_2.7.0 > [19] hdrcde_2.16 IRanges_1.14.4 > [21] KernSmooth_2.23-8 labeling_0.1 > [23] lattice_0.20-10 MASS_7.3-20 > [25] Matrix_1.0-6 memoise_0.1 > [27] mgcv_1.7-20 munsell_0.3 > [29] nlme_3.1-104 plyr_1.7.1 > [31] preprocessCore_1.18.0 proto_0.3-9.2 > [33] RColorBrewer_1.0-5 RCurl_1.91-1 > [35] Rsamtools_1.8.6 RSQLite_0.11.1 > [37] rtracklayer_1.16.3 stats4_2.15.1 > [39] stringr_0.6.1 tools_2.15.1 > [41] XML_3.9-4 xtable_1.7-0 > [43] zlibbioc_1.2.0 > > > Reordering my package loads so that lumi is last, and just using 'combine' works. > > cheers, > Mark > > On 10/10/2012, at 7:06 AM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: > >> On 10/08/2012 09:40 PM, Mark Cowley wrote: >>> Dear list, >>> i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. >>> In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. >>> As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? >> >> Hi Mark -- unfortunately, this is not easily avoidable. gdata (a CRAN package) defines its own function combine that masks the version used by lumi and other Bioconductor packages. The work-around is to invoke lumi's combine with, e.g., >> >> lumi::combine(x = example.lumi[, 1], y = example.lumi[, 3]) >> >> If gdata were in Bioconductor, we could coerce the author into writing a method for combine, as defined in BiocGenerics. If you were writing a package, then you could importMethodsFrom(lumi, combine) and use combine safely in your own package code whether or not gdata was on the search path. >> >> Martin >> >>> cheers, >>> Mark >>> >>> ### lumi, then gdata >>>> suppressPackageStartupMessages(library(lumi)) >>> Warning messages: >>> 1: found methods to import for function ?eapply? but not the generic itself >>> 2: replacing previous import ?image? when loading ?graphics? >>>> load("Rmisc/n525.RDa") >>>> load("Rmisc/s295.RDa") >>>> showMethods("combine") >>> Function: combine (package BiocGenerics) >>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>> x="ANY", y="missing" >>> x="AssayData", y="AssayData" >>> x="data.frame", y="data.frame" >>> x="eSet", y="eSet" >>> x="ExpressionSet", y="LumiBatch" >>> x="LumiBatch", y="ExpressionSet" >>> x="LumiBatch", y="LumiBatch" >>> x="matrix", y="matrix" >>> x="MethyLumiM", y="MethyLumiM" >>> x="MethyLumiQC", y="MethyLumiQC" >>> x="MethyLumiSet", y="MethyLumiSet" >>> x="MIAME", y="MIAME" >>> >>>> a <- combine(n525, s295) >>>> class(a) >>> [1] "LumiBatch" >>> attr(,"package") >>> [1] "lumi" >>> ## the expected output >>> >>>> suppressPackageStartupMessages(library(gdata)) >>>> showMethods("combine") >>> Function: combine (package BiocGenerics) >>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>> x="ANY", y="missing" >>> x="AssayData", y="AssayData" >>> x="data.frame", y="data.frame" >>> x="environment", y="environment" >>> (inherited from: x="AssayData", y="AssayData") >>> x="eSet", y="eSet" >>> x="ExpressionSet", y="LumiBatch" >>> x="LumiBatch", y="ExpressionSet" >>> x="LumiBatch", y="LumiBatch" >>> x="matrix", y="matrix" >>> x="MethyLumiM", y="MethyLumiM" >>> x="MethyLumiQC", y="MethyLumiQC" >>> x="MethyLumiSet", y="MethyLumiSet" >>> x="MIAME", y="MIAME" >>> >>>> a <- combine(n525, s295) >>>> class(a) >>> [1] "data.frame" >>>> >>> >>> >>> #### gdata then lumi >>>> suppressPackageStartupMessages(library(gdata)) >>>> suppressPackageStartupMessages(library(lumi)) >>> Warning messages: >>> 1: found methods to import for function ?eapply? but not the generic itself >>> 2: replacing previous import ?image? when loading ?graphics? >>>> load("Rmisc/n525.RDa") >>>> load("Rmisc/s295.RDa") >>>> showMethods("combine") >>> Function: combine (package BiocGenerics) >>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>> x="ANY", y="missing" >>> x="AssayData", y="AssayData" >>> x="data.frame", y="data.frame" >>> x="eSet", y="eSet" >>> x="ExpressionSet", y="LumiBatch" >>> x="LumiBatch", y="ExpressionSet" >>> x="LumiBatch", y="LumiBatch" >>> x="matrix", y="matrix" >>> x="MethyLumiM", y="MethyLumiM" >>> x="MethyLumiQC", y="MethyLumiQC" >>> x="MethyLumiSet", y="MethyLumiSet" >>> x="MIAME", y="MIAME" >>> >>>> a <- combine(n525, s295) >>>> class(a) >>> [1] "LumiBatch" >>> attr(,"package") >>> [1] "lumi" >>> >>> >>>> sessionInfo() >>> R version 2.15.1 (2012-06-22) >>> Platform: i386-apple-darwin9.8.0/i386 (32-bit) >>> >>> locale: >>> [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 >>> [5] gdata_2.12.0 >>> >>> loaded via a namespace (and not attached): >>> [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 >>> [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 >>> [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 >>> [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 >>> [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 >>> [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 >>> [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 >>> [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0 >>> >>> _______________________________________________ >>> 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: Arnold Building M1 B861 >> Phone: (206) 667-2793 > -- Computational Biology / Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109 Location: Arnold Building M1 B861 Phone: (206) 667-2793
ADD REPLY
0
Entering edit mode
cheers Martin, that makes sense. as much as i love a bit of recursion, I'll submit a patch to Pan Du & hopefully he can update lumi. cheers, Mark On 11/10/2012, at 3:33 PM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: > On 10/10/2012 09:25 PM, Mark Cowley wrote: >> Thanks Martin, >> Unfortunately, explicitly specifying lumi::combine seems to interfere with the S4 calling mechanism in an interactive session: >> >> ### only lumi >> library(lumi) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method > > I can replicate that with example(LumiBatch) and then > > lumi::combine(example.lumi[,1], example.lumi[,2], example.lumi[,3]) > > I'd say this was an issue in methods, and the work-around (again!) would be to make the recursion here > > > lumi::combine > nonstandardGenericFunction for "combine" defined from package "BiocGenerics" > > function (x, y, ...) > { > if (length(list(...)) > 0L) { > callGeneric(x, do.call(callGeneric, list(y, ...))) > } > else { > standardGeneric("combine") > } > } > <environment: 0x1f53748=""> > > into an iteration: > > res = example.lumi[,1] > for (i in 2:3) > res = combine(res, example.lumi[,i]) > > Martin > >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "LumiBatch" >> >> ##### gdata then lumi >> library(gdata) >> library(lumi) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "LumiBatch" >> >> #### lumi then gdata >> library(lumi) >> library(gdata) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "data.frame" >> >>> sessionInfo() >> R version 2.15.1 (2012-06-22) >> Platform: x86_64-unknown-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C >> [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8 >> [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 >> [7] LC_PAPER=C LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods >> [7] base >> >> other attached packages: >> [1] gdata_2.11.0 lumi_2.8.0 nleqslv_1.9.3 >> [4] methylumi_2.2.0 ggplot2_0.9.1 reshape2_1.2.1 >> [7] scales_0.2.1 Biobase_2.16.0 BiocGenerics_0.2.0 >> >> loaded via a namespace (and not attached): >> [1] affy_1.34.0 affyio_1.24.0 >> [3] annotate_1.34.1 AnnotationDbi_1.18.1 >> [5] bigmemory_4.2.11 BiocInstaller_1.4.7 >> [7] Biostrings_2.24.1 bitops_1.0-4.1 >> [9] BSgenome_1.24.0 colorspace_1.1-1 >> [11] DBI_0.2-5 dichromat_1.2-4 >> [13] digest_0.5.2 DNAcopy_1.30.0 >> [15] GenomicRanges_1.8.12 genoset_1.6.0 >> [17] grid_2.15.1 gtools_2.7.0 >> [19] hdrcde_2.16 IRanges_1.14.4 >> [21] KernSmooth_2.23-8 labeling_0.1 >> [23] lattice_0.20-10 MASS_7.3-20 >> [25] Matrix_1.0-6 memoise_0.1 >> [27] mgcv_1.7-20 munsell_0.3 >> [29] nlme_3.1-104 plyr_1.7.1 >> [31] preprocessCore_1.18.0 proto_0.3-9.2 >> [33] RColorBrewer_1.0-5 RCurl_1.91-1 >> [35] Rsamtools_1.8.6 RSQLite_0.11.1 >> [37] rtracklayer_1.16.3 stats4_2.15.1 >> [39] stringr_0.6.1 tools_2.15.1 >> [41] XML_3.9-4 xtable_1.7-0 >> [43] zlibbioc_1.2.0 >> >> >> Reordering my package loads so that lumi is last, and just using 'combine' works. >> >> cheers, >> Mark >> >> On 10/10/2012, at 7:06 AM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: >> >>> On 10/08/2012 09:40 PM, Mark Cowley wrote: >>>> Dear list, >>>> i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. >>>> In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. >>>> As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? >>> >>> Hi Mark -- unfortunately, this is not easily avoidable. gdata (a CRAN package) defines its own function combine that masks the version used by lumi and other Bioconductor packages. The work-around is to invoke lumi's combine with, e.g., >>> >>> lumi::combine(x = example.lumi[, 1], y = example.lumi[, 3]) >>> >>> If gdata were in Bioconductor, we could coerce the author into writing a method for combine, as defined in BiocGenerics. If you were writing a package, then you could importMethodsFrom(lumi, combine) and use combine safely in your own package code whether or not gdata was on the search path. >>> >>> Martin >>> >>>> cheers, >>>> Mark >>>> >>>> ### lumi, then gdata >>>>> suppressPackageStartupMessages(library(lumi)) >>>> Warning messages: >>>> 1: found methods to import for function ?eapply? but not the generic itself >>>> 2: replacing previous import ?image? when loading ?graphics? >>>>> load("Rmisc/n525.RDa") >>>>> load("Rmisc/s295.RDa") >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "LumiBatch" >>>> attr(,"package") >>>> [1] "lumi" >>>> ## the expected output >>>> >>>>> suppressPackageStartupMessages(library(gdata)) >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="environment", y="environment" >>>> (inherited from: x="AssayData", y="AssayData") >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "data.frame" >>>>> >>>> >>>> >>>> #### gdata then lumi >>>>> suppressPackageStartupMessages(library(gdata)) >>>>> suppressPackageStartupMessages(library(lumi)) >>>> Warning messages: >>>> 1: found methods to import for function ?eapply? but not the generic itself >>>> 2: replacing previous import ?image? when loading ?graphics? >>>>> load("Rmisc/n525.RDa") >>>>> load("Rmisc/s295.RDa") >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "LumiBatch" >>>> attr(,"package") >>>> [1] "lumi" >>>> >>>> >>>>> sessionInfo() >>>> R version 2.15.1 (2012-06-22) >>>> Platform: i386-apple-darwin9.8.0/i386 (32-bit) >>>> >>>> locale: >>>> [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 >>>> [5] gdata_2.12.0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 >>>> [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 >>>> [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 >>>> [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 >>>> [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 >>>> [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 >>>> [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 >>>> [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0 >>>> >>>> _______________________________________________ >>>> 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: Arnold Building M1 B861 >>> Phone: (206) 667-2793 >> > > > -- > Computational Biology / Fred Hutchinson Cancer Research Center > 1100 Fairview Ave. N. > PO Box 19024 Seattle, WA 98109 > > Location: Arnold Building M1 B861 > Phone: (206) 667-2793
ADD REPLY
0
Entering edit mode
Hi again, Your workaround definitely works in an interactive session, but I was expecting to fix the problem by fixing it within lumi::combine? I rebuilt & installed lumi after removing the recursion within lumi's combine, however even when explicitly calling lumi::combine I still got the error. it turns out that its the recursion that's still present within the BiocGenerics::combine function that throws the error, despite the signature(c("LumiBatch", "LumiBatch")) not being defined there? I've clearly got plenty of learning still to do with S4... cheers, Mark I changed code from: setMethod("combine", signature=c(x="LumiBatch", y="LumiBatch"), function(x, y, ...) { if (missing(y)) return(x) if (length(list(...)) > 0L) { callGeneric(x, do.call(callGeneric, list(y, ...))) ? to: setMethod("combine", signature=c(x="LumiBatch", y="LumiBatch"), function(x, y, ...) { if (missing(y)) return(x) if (length(list(...)) > 0) { res <- combine(x, y) extras <- list(...) for(i in seq(along=extras)) { res <- combine(res, extras[[i]]) } return( res ) } # ?. build, install, > library(lumi) > data(example.lumi) > lumi::combine(example.lumi[,1], example.lumi[,2], example.lumi[,3]) Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : 'callGeneric' must be called from a generic function or method > traceback() 3: stop("'callGeneric' must be called from a generic function or method") 2: callGeneric(x, do.call(callGeneric, list(y, ...))) 1: lumi::combine(example.lumi[, 1], example.lumi[, 2], example.lumi[, 3]) > lumi::combine nonstandardGenericFunction for "combine" defined from package "BiocGenerics" function (x, y, ...) { if (length(list(...)) > 0L) { callGeneric(x, do.call(callGeneric, list(y, ...))) } else { standardGeneric("combine") } } <environment: 0xc69b2c=""> ### ie, the one that's defined in BiocGenerics On 11/10/2012, at 3:33 PM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: > On 10/10/2012 09:25 PM, Mark Cowley wrote: >> Thanks Martin, >> Unfortunately, explicitly specifying lumi::combine seems to interfere with the S4 calling mechanism in an interactive session: >> >> ### only lumi >> library(lumi) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method > > I can replicate that with example(LumiBatch) and then > > lumi::combine(example.lumi[,1], example.lumi[,2], example.lumi[,3]) > > I'd say this was an issue in methods, and the work-around (again!) would be to make the recursion here > > > lumi::combine > nonstandardGenericFunction for "combine" defined from package "BiocGenerics" > > function (x, y, ...) > { > if (length(list(...)) > 0L) { > callGeneric(x, do.call(callGeneric, list(y, ...))) > } > else { > standardGeneric("combine") > } > } > <environment: 0x1f53748=""> > > into an iteration: > > res = example.lumi[,1] > for (i in 2:3) > res = combine(res, example.lumi[,i]) > > Martin > >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "LumiBatch" >> >> ##### gdata then lumi >> library(gdata) >> library(lumi) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "LumiBatch" >> >> #### lumi then gdata >> library(lumi) >> library(gdata) >> load("Rmisc/n525.RDa") >> load("Rmisc/s217.RDa") >> load("Rmisc/s295.RDa") >> a <- lumi::combine(s217, n525, s295) >> Error in callGeneric(x, do.call(callGeneric, list(y, ...))) : >> 'callGeneric' must be called from a generic function or method >> >> a <- combine(s217, n525, s295) >> class(a) >> # [1] "data.frame" >> >>> sessionInfo() >> R version 2.15.1 (2012-06-22) >> Platform: x86_64-unknown-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C >> [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8 >> [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 >> [7] LC_PAPER=C LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods >> [7] base >> >> other attached packages: >> [1] gdata_2.11.0 lumi_2.8.0 nleqslv_1.9.3 >> [4] methylumi_2.2.0 ggplot2_0.9.1 reshape2_1.2.1 >> [7] scales_0.2.1 Biobase_2.16.0 BiocGenerics_0.2.0 >> >> loaded via a namespace (and not attached): >> [1] affy_1.34.0 affyio_1.24.0 >> [3] annotate_1.34.1 AnnotationDbi_1.18.1 >> [5] bigmemory_4.2.11 BiocInstaller_1.4.7 >> [7] Biostrings_2.24.1 bitops_1.0-4.1 >> [9] BSgenome_1.24.0 colorspace_1.1-1 >> [11] DBI_0.2-5 dichromat_1.2-4 >> [13] digest_0.5.2 DNAcopy_1.30.0 >> [15] GenomicRanges_1.8.12 genoset_1.6.0 >> [17] grid_2.15.1 gtools_2.7.0 >> [19] hdrcde_2.16 IRanges_1.14.4 >> [21] KernSmooth_2.23-8 labeling_0.1 >> [23] lattice_0.20-10 MASS_7.3-20 >> [25] Matrix_1.0-6 memoise_0.1 >> [27] mgcv_1.7-20 munsell_0.3 >> [29] nlme_3.1-104 plyr_1.7.1 >> [31] preprocessCore_1.18.0 proto_0.3-9.2 >> [33] RColorBrewer_1.0-5 RCurl_1.91-1 >> [35] Rsamtools_1.8.6 RSQLite_0.11.1 >> [37] rtracklayer_1.16.3 stats4_2.15.1 >> [39] stringr_0.6.1 tools_2.15.1 >> [41] XML_3.9-4 xtable_1.7-0 >> [43] zlibbioc_1.2.0 >> >> >> Reordering my package loads so that lumi is last, and just using 'combine' works. >> >> cheers, >> Mark >> >> On 10/10/2012, at 7:06 AM, Martin Morgan <mtmorgan at="" fhcrc.org=""> wrote: >> >>> On 10/08/2012 09:40 PM, Mark Cowley wrote: >>>> Dear list, >>>> i'm trying to combine two LumiBatch objects, using the S4 combine("LumiBatch","LumiBatch") method, defined originally in BiocGenerics, and enhanced within lumi. >>>> In a fresh session, with just lumi loaded, everything works fine, i.e. I get a LumiBatch object. >>>> As soon as I load gdata, this breaks the combine method, instead returning a data.frame with very odd dimensions. This is true if I load gdata before, or after lumi. Note that showMethods("lumi") doesn't change after loading gdata. Any ideas? >>> >>> Hi Mark -- unfortunately, this is not easily avoidable. gdata (a CRAN package) defines its own function combine that masks the version used by lumi and other Bioconductor packages. The work-around is to invoke lumi's combine with, e.g., >>> >>> lumi::combine(x = example.lumi[, 1], y = example.lumi[, 3]) >>> >>> If gdata were in Bioconductor, we could coerce the author into writing a method for combine, as defined in BiocGenerics. If you were writing a package, then you could importMethodsFrom(lumi, combine) and use combine safely in your own package code whether or not gdata was on the search path. >>> >>> Martin >>> >>>> cheers, >>>> Mark >>>> >>>> ### lumi, then gdata >>>>> suppressPackageStartupMessages(library(lumi)) >>>> Warning messages: >>>> 1: found methods to import for function ?eapply? but not the generic itself >>>> 2: replacing previous import ?image? when loading ?graphics? >>>>> load("Rmisc/n525.RDa") >>>>> load("Rmisc/s295.RDa") >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "LumiBatch" >>>> attr(,"package") >>>> [1] "lumi" >>>> ## the expected output >>>> >>>>> suppressPackageStartupMessages(library(gdata)) >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="environment", y="environment" >>>> (inherited from: x="AssayData", y="AssayData") >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "data.frame" >>>>> >>>> >>>> >>>> #### gdata then lumi >>>>> suppressPackageStartupMessages(library(gdata)) >>>>> suppressPackageStartupMessages(library(lumi)) >>>> Warning messages: >>>> 1: found methods to import for function ?eapply? but not the generic itself >>>> 2: replacing previous import ?image? when loading ?graphics? >>>>> load("Rmisc/n525.RDa") >>>>> load("Rmisc/s295.RDa") >>>>> showMethods("combine") >>>> Function: combine (package BiocGenerics) >>>> x="AnnotatedDataFrame", y="AnnotatedDataFrame" >>>> x="ANY", y="missing" >>>> x="AssayData", y="AssayData" >>>> x="data.frame", y="data.frame" >>>> x="eSet", y="eSet" >>>> x="ExpressionSet", y="LumiBatch" >>>> x="LumiBatch", y="ExpressionSet" >>>> x="LumiBatch", y="LumiBatch" >>>> x="matrix", y="matrix" >>>> x="MethyLumiM", y="MethyLumiM" >>>> x="MethyLumiQC", y="MethyLumiQC" >>>> x="MethyLumiSet", y="MethyLumiSet" >>>> x="MIAME", y="MIAME" >>>> >>>>> a <- combine(n525, s295) >>>>> class(a) >>>> [1] "LumiBatch" >>>> attr(,"package") >>>> [1] "lumi" >>>> >>>> >>>>> sessionInfo() >>>> R version 2.15.1 (2012-06-22) >>>> Platform: i386-apple-darwin9.8.0/i386 (32-bit) >>>> >>>> locale: >>>> [1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8 >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] lumi_2.10.0 nleqslv_1.9.4 Biobase_2.18.0 BiocGenerics_0.4.0 >>>> [5] gdata_2.12.0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] affy_1.36.0 affyio_1.26.0 annotate_1.36.0 >>>> [4] AnnotationDbi_1.20.0 BiocInstaller_1.8.1 colorspace_1.1-1 >>>> [7] DBI_0.2-5 grid_2.15.1 gtools_2.7.0 >>>> [10] IRanges_1.16.2 KernSmooth_2.23-8 lattice_0.20-10 >>>> [13] MASS_7.3-22 Matrix_1.0-9 methylumi_2.4.0 >>>> [16] mgcv_1.7-21 nlme_3.1-104 parallel_2.15.1 >>>> [19] preprocessCore_1.20.0 RSQLite_0.11.2 stats4_2.15.1 >>>> [22] XML_3.95-0.1 xtable_1.7-0 zlibbioc_1.4.0 >>>> >>>> _______________________________________________ >>>> 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: Arnold Building M1 B861 >>> Phone: (206) 667-2793 >> > > > -- > Computational Biology / Fred Hutchinson Cancer Research Center > 1100 Fairview Ave. N. > PO Box 19024 Seattle, WA 98109 > > Location: Arnold Building M1 B861 > Phone: (206) 667-2793
ADD REPLY

Login before adding your answer.

Traffic: 590 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6