[Bioc-devel] ggbio 1.13.11 fails to load due to namespace change in IRanges

Hervé Pagès hpages at fhcrc.org
Thu Jul 17 01:11:36 CEST 2014


Basically I agree with Stephanie, Martin, and Michael. I'm probably
a little biased when I'm advocating the "import all" approach.
I must also admit that I use a few selective imports in the
packages I maintain, exactly in the situations you guys describe,
that is, when I just need very few things from some other packages
(however these packages are base packages hence very stable).
Advantage: if I make a change in my package and don't need that
only function I import from the foo package anymore, then I
can remove that importFrom(foo, bar) line and hopefully will
also remember to remove foo from the Imports field, so I don't
depend on foo anymore.

So thanks for your more nuanced view on the "import all vs import
selectively" question.

@Leo: Try to update VariantAnnotation directly from svn. It was
updated in svn to reflect the changes in IRanges/S4Vectors but
didn't propagate because of other problems that prevent it from
propagating. Let me know if that still doesn't solve the problem.

Cheers,
H.


On 07/16/2014 12:38 PM, Michael Lawrence wrote:
> I think it's a per-dependency judgement call. If you're making broad use of
> a package, then it makes sense to import(), but if the dependency on some
> package is minimal, it makes sense to specify symbols with importFrom(), as
> the link is more tenuous and there is less risk to things moving around.
>
>
>
>
> On Wed, Jul 16, 2014 at 11:59 AM, Martin Morgan <mtmorgan at fhcrc.org> wrote:
>
>> On 07/16/2014 11:39 AM, Leonardo Collado Torres wrote:
>>
>>> Hi Tengfei and BioC-devel,
>>>
>>> ggbio 1.13.11 fails to load due to recent changes in IRanges'
>>> namespace as shown further below. Basically, some of IRanges previous
>>> code now lives in S4Vectors.
>>>
>>> On a recent thread Hervé exposed his view on specific imports versus
>>> importing the whole package (see
>>> https://stat.ethz.ch/pipermail/bioc-devel/2014-July/005943.html and
>>> Stephanie's reply
>>> https://stat.ethz.ch/pipermail/bioc-devel/2014-July/005948.html ).
>>>
>>> I have been using specific imports because I thought it was the best
>>> practice and that it would also help me learn more about what are the
>>> functions/methods I'm relying on exactly. But as Hervé exposed, using
>>> specific imports involves a lot of maintenance overhead. That is why,
>>> in general I'll try to use general imports now.
>>>
>>
>> That should really be a judgement call -- a nice tidy package might well
>> import a very limited number of functions from a small number of packages,
>> with the use of each function limited to specific and well-know locations,
>> and with changes to the code being very considered -- I no longer need to
>> import pkg::foo because I made a very specific change to the code. Indeed
>> for less experienced developers it might be worth focusing on this as a
>> kind of discipline -- write code that _is_ restricted in this way, doing a
>> small number of tasks well rather than trying to do everything.
>>
>> For the large and comprehensive packages Herve and others work on, this
>> will certainly get tedious. For a more focused developer it is perhaps not
>> so bad.
>>
>> Martin
>>
>>
>>
>>> Cheers,
>>> Leo
>>>
>>>
>>>
>>>   library(ggbio)
>>>>
>>> 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, append, as.data.frame, as.vector, cbind, colnames,
>>> do.call, duplicated, eval, evalq, Filter, Find, get,
>>>       intersect, is.unsorted, 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
>>>
>>> Loading required package: ggplot2
>>> No methods found in "IRanges" for requests: Rle, substring, ifelse,
>>> as.factor
>>> Error : object ‘runValue’ is not exported by 'namespace:IRanges'
>>> Error: package or namespace load failed for ‘ggbio’
>>>
>>>> traceback()
>>>>
>>> 2: stop(gettextf("package or namespace load failed for %s",
>>> sQuote(package)),
>>>          call. = FALSE, domain = NA)
>>> 1: library(ggbio)
>>>
>>>> sessionInfo()
>>>>
>>> R version 3.1.0 (2014-04-10)
>>> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>>>
>>> locale:
>>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
>>>
>>> attached base packages:
>>> [1] parallel  stats     graphics  grDevices utils     datasets
>>> methods   base
>>>
>>> other attached packages:
>>> [1] ggplot2_1.0.0       BiocGenerics_0.11.3
>>>
>>> loaded via a namespace (and not attached):
>>>    [1] AnnotationDbi_1.27.8     BatchJobs_1.3            BBmisc_1.7
>>>            Biobase_2.25.0           BiocParallel_0.7.7
>>>    [6] biomaRt_2.21.1           Biostrings_2.33.12       bitops_1.0-6
>>>            brew_1.0-6               BSgenome_1.33.8
>>> [11] checkmate_1.1            cluster_1.15.2           codetools_0.2-8
>>>            colorspace_1.2-4         DBI_0.2-7
>>> [16] dichromat_2.0-0          digest_0.6.4             fail_1.2
>>>            foreach_1.4.2            Formula_1.1-2
>>> [21] GenomeInfoDb_1.1.12      GenomicAlignments_1.1.21
>>> GenomicFeatures_1.17.12  GenomicRanges_1.17.24    GGally_0.4.6
>>> [26] grid_3.1.0               gridExtra_0.9.1          gtable_0.1.2
>>>            Hmisc_3.14-4             IRanges_1.99.22
>>> [31] iterators_1.0.7          lattice_0.20-29
>>> latticeExtra_0.6-26      MASS_7.3-33              munsell_0.4.2
>>> [36] plyr_1.8.1               proto_0.3-10
>>> RColorBrewer_1.0-5       Rcpp_0.11.2              RCurl_1.95-4.1
>>> [41] reshape_0.8.5            reshape2_1.4
>>> Rsamtools_1.17.31        RSQLite_0.11.4           rtracklayer_1.25.13
>>> [46] S4Vectors_0.1.2          scales_0.2.4             sendmailR_1.1-2
>>>            splines_3.1.0            stats4_3.1.0
>>> [51] stringr_0.6.2            survival_2.37-7          tools_3.1.0
>>>            XML_3.98-1.1             XVector_0.5.7
>>> [56] zlibbioc_1.11.1
>>>
>>>>
>>>> packageVersion("ggbio")
>>>>
>>> [1] ‘1.13.11’
>>>
>>>>
>>>>
>>> _______________________________________________
>>> Bioc-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>
>>>
>>
>> --
>> 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
>>
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>
> 	[[alternative HTML version deleted]]
>
>
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the Bioc-devel mailing list