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

2014-07-16 Thread Martin Morgan

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.3BBmisc_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.1cluster_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.2Formula_1.1-2
[21] GenomeInfoDb_1.1.12  GenomicAlignments_1.1.21
GenomicFeatures_1.17.12  GenomicRanges_1.17.24GGally_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.5reshape2_1.4
Rsamtools_1.17.31RSQLite_0.11.4   rtracklayer_1.25.13
[46] S4Vectors_0.1.2  scales_0.2.4 sendmailR_1.1-2
  splines_3.1.0stats4_3.1.0
[51] stringr_0.6.2survival_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@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


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

2014-07-16 Thread Michael Lawrence
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 mtmor...@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.3BBmisc_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.1cluster_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.2Formula_1.1-2
 [21] GenomeInfoDb_1.1.12  GenomicAlignments_1.1.21
 GenomicFeatures_1.17.12  GenomicRanges_1.17.24GGally_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.5reshape2_1.4
 Rsamtools_1.17.31RSQLite_0.11.4   rtracklayer_1.25.13
 [46] S4Vectors_0.1.2  scales_0.2.4 sendmailR_1.1-2
   splines_3.1.0stats4_3.1.0
 [51] stringr_0.6.2survival_2.37-7  tools_3.1.0
   XML_3.98-1.1 XVector_0.5.7
 [56] zlibbioc_1.11.1


 packageVersion(ggbio)

 [1] 

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

2014-07-16 Thread Hervé Pagès

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 mtmor...@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.3BBmisc_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.1cluster_1.15.2   codetools_0.2-8