Does that happen with the other methods or just "["? As a last resort, you could just drop the import (because "[" is a primitive, it should just work).
On Tue, Oct 7, 2014 at 3:08 AM, Robert Castelo <robert.cast...@upf.edu> wrote: > hi Martin, > > On 10/06/2014 07:24 PM, Martin Morgan wrote: > [...] > > There are two 'as.vector' generics, one defined in Matrix and one in >> BiocGenerics (and made available via IRanges). These generics have >> different methods >> >> > showMethods(Matrix::as.vector) >> Function: as.vector (package base) >> x="abIndex", mode="ANY" >> x="abIndex", mode="character" >> x="ANY", mode="ANY" >> x="dgCMatrix", mode="missing" >> x="dgeMatrix", mode="missing" >> x="diagonalMatrix", mode="missing" >> x="dsCMatrix", mode="missing" >> x="ldenseMatrix", mode="missing" >> x="Matrix", mode="missing" >> x="ndenseMatrix", mode="missing" >> x="sparseVector", mode="character" >> x="sparseVector", mode="missing" >> >> > showMethods(BiocGenerics::as.vector) >> Function: as.vector (package BiocGenerics) >> x="ANY" >> x="AtomicList" >> x="Rle" >> x="XDouble" >> x="XInteger" >> x="XRaw" >> x="XString" >> x="XStringSet" >> >> so it's important that your code clearly distinguish between generics. >> One possibility is to remove importMethodsFrom(IRanges, as.vector) from >> the NAMESPACE, and explicitly use IRanges::as.vector(...) in your code. >> > > ok, i've done this as it is the easiest at the moment to meet the release > schedule. i guess that in the future i should try to avoid using the '::' > operator by importing exclusively what is needed from each package. > > codetoolsBioC::writeNamespaceImports("qpgraph") might provide you with >> some guidance (it's not 100% reliable; available via svn at >> https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/codetoolsBioC >> ) >> about what functionality is being imported. >> > > thanks for the heads up about codetoolsBioC, i've tried it out and seen > that some of the suggested imports are not necessary but some others i was > really missing them (which makes me wonder how was it possible that he > package did not break at those points). > > one further question related to NAMESPACE. i subset GRanges objects in the > package via the '[' operator, i've included this into the NAMESPACE file as: > > importMethodsFrom(GenomicRanges, > c, cbind, rbind, > "mcols<-", start, end, strand, sort, > "[", "[<-", "[[", "[[<-", "$", "$<-") > > however, when the package reaches a subset operation x[i] with x being a > GRanges object, an entire package loading sequence starts: > > Loading required package: GenomicRanges > Loading required package: BiocGenerics > Loading required package: parallel > > Attaching package: ‘BiocGenerics’ > [... etc ...] > > which may look a bit odd to the user. for every other imported method the > package uses them silently without loading the corresponding package, am i > importing '[' for GRanges objects from the wrong package? is there a way to > import '[' so that my package can use it without triggering that package > loading sequence? > > > thanks again! > robert. > > > _______________________________________________ > Bioc-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/bioc-devel > [[alternative HTML version deleted]] _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel