[Bioc-devel] NAMESPACE question
Robert Castelo
robert.castelo at upf.edu
Tue Oct 7 17:15:17 CEST 2014
hi, it happens only with "[", that's why i'm puzzled.
it behaves as if you load a GRanges object 'x' and try to subset it
x[1]
without loading 'GenomicRanges' first.
robert.
On 10/07/2014 05:05 PM, Michael Lawrence wrote:
> 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.castelo at upf.edu
> <mailto:robert.castelo at 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
> <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 at r-project.org <mailto:Bioc-devel at r-project.org> mailing list
> https://stat.ethz.ch/mailman/__listinfo/bioc-devel
> <https://stat.ethz.ch/mailman/listinfo/bioc-devel>
>
>
--
Robert Castelo, PhD
Associate Professor
Dept. of Experimental and Health Sciences
Universitat Pompeu Fabra (UPF)
Barcelona Biomedical Research Park (PRBB)
Dr Aiguader 88
E-08003 Barcelona, Spain
telf: +34.933.160.514
fax: +34.933.160.550
More information about the Bioc-devel
mailing list