On 04/25/2016 03:53 PM, Michael Lawrence wrote:
Yea, this is a bug in R, in my opinion. The class cache circumvents
the namespace imports. In my working copy I've fixed it by falling
back to the namespace search when there are multiple hits. That at
least fixes this case.

This also fixes it

Index: src/library/methods/R/SClasses.R
===================================================================
--- src/library/methods/R/SClasses.R    (revision 70547)
+++ src/library/methods/R/SClasses.R    (working copy)
@@ -524,7 +524,7 @@
        superClass <- exti@superClass
        if(!exti@simple && !is(object, superClass))
            next ## skip conditional relations that don't hold for this object
-       superDef <- getClassDef(superClass, where = where)
+       superDef <- getClassDef(superClass, package = packageSlot(exti))
        if(is.null(superDef)) {
            errors <- c(errors,
                        paste0("superclass \"", superClass,


There's another problem seen by loading the packages in reverse order

> suppressPackageStartupMessages({ library(RNeXML); library(GenomicRanges) }) Found more than one class "Annotated" in cache; using the first, from namespace 'RNeXML'
Also defined by 'S4Vectors'
...

which is from

[[17]]
S4Vectors:::setDefaultSlotValue("XRaw", "shared", new("SharedRaw"),
    where = asNamespace(pkgname))

[[18]]
resetClass(classname, classdef, where = where)

[[19]]
completeClassDefinition(Class, classDef, where)

[[20]]
.completeClassSlots(ClassDef, where)

[[21]]
isClass(eClass, where = where)

[[22]]
getClassDef(Class, where)

[[23]]
.getClassFromCache(Class, where, package = package, resolve.msg = resolve.msg)

but I haven't quite got to the bottom of that. Also, I think these are both different from but related to

> suppressPackageStartupMessages(library(Statomica))
Error in .mergeMethodsTable(generic, mtable, tt, attach) :
trying to get slot "defined" from an object of a basic class ("list") with no slots
Error: package or namespace load failed for 'Statomica'


You can disable the message in the short term by setting the
"getClass.msg" option to FALSE.

Michael

On Sun, Apr 24, 2016 at 12:50 PM, davide risso <risso.dav...@gmail.com> wrote:
Dear list,

we are developing a new package that defines a class that builds on
SummarizedExperiment and also imports the CRAN package phylobase.

The class "Annotated" is defined both in the S4Vectors package (a
dependency of SummarizedExperiment) and in the RNeXML package (a dependency
of phylobase). Note that we want the former. This causes the following
message to be thrown every time we create a new object.

Found more than one class "Annotated" in cache; using the first, from
namespace 'S4Vectors'


A minimal example is the following.

library(SummarizedExperiment)> SummarizedExperiment()class: SummarizedExperiment
dim: 0 0
metadata(0):
assays(0):
rownames: NULL
rowData names(0):
colnames: NULL
colData names(0):> library(phylobase)> SummarizedExperiment()Found
more than one class "Annotated" in cache; using the first, from
namespace 'S4Vectors'class: SummarizedExperiment
dim: 0 0
metadata(0):
assays(0):
rownames: NULL
rowData names(0):
colnames: NULL
colData names(0):

sessionInfo()R Under development (unstable) (2016-03-07 r70284)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux stretch/sid

locale:
  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
LC_TIME=en_US.UTF-8
  [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
LC_ADDRESS=C
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=C

attached base packages:
[1] stats4    parallel  stats     graphics  grDevices utils
datasets  methods
[9] base

other attached packages:
[1] phylobase_0.8.2             SummarizedExperiment_1.1.21
[3] Biobase_2.31.3              GenomicRanges_1.23.23
[5] GenomeInfoDb_1.7.6          IRanges_2.5.39
[7] S4Vectors_0.9.41            BiocGenerics_0.17.3

loaded via a namespace (and not attached):
  [1] Rcpp_0.12.3      plyr_1.8.3       XVector_0.11.7   iterators_1.0.8
  [5] tools_3.3.0      zlibbioc_1.17.0  uuid_0.1-2       jsonlite_0.9.19
  [9] nlme_3.1-125     lattice_0.20-33  foreach_1.4.3    DBI_0.3.1
[13] httr_1.1.0       stringr_1.0.0    dplyr_0.4.3      xml2_0.1.2
[17] ade4_1.7-4       grid_3.3.0       rredlist_0.1.0   reshape_0.8.5
[21] data.table_1.9.6 R6_2.1.2         XML_3.98-1.4     RNeXML_2.0.6
[25] reshape2_1.4.1   tidyr_0.4.1      magrittr_1.5     codetools_0.2-14
[29] assertthat_0.1   bold_0.3.5       taxize_0.7.5     ape_3.4
[33] stringi_1.0-1    rncl_0.6.0       lazyeval_0.1.10  rotl_0.5.0
[37] chron_2.3-47


Since we need to import both packages, is there a way to explicitly use the
correct definition of "Annotated" or to not import the class "Annotated"
from RNeXML?

Or is this something that could be addressed in the SummarizedExperiment
package?

These are our DESCRIPTION and NAMESPACE file (note that we are importing
only what we need from phylobase):
https://github.com/epurdom/clusterExperiment/blob/develop/DESCRIPTION
https://github.com/epurdom/clusterExperiment/blob/develop/NAMESPACE

See also Henrik's comment at:
https://github.com/epurdom/clusterExperiment/issues/66

Thank you in advance for any help!

Best,
davide

         [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel



This email message may contain legally privileged and/or confidential 
information.  If you are not the intended recipient(s), or the employee or 
agent responsible for the delivery of this message to the intended 
recipient(s), you are hereby notified that any disclosure, copying, 
distribution, or use of this email message is prohibited.  If you have received 
this message in error, please notify the sender immediately by e-mail and 
delete this email message from your computer. Thank you.

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to