[Bioc-devel] Gviz AnnotationTrack fails when "["-operator is defined

Martin Morgan mtmorgan at fhcrc.org
Tue May 6 15:25:04 CEST 2014


On 05/06/2014 02:25 AM, Hahne, Florian wrote:
> Thanks Martin,
> Btw, is there some sort of disconnect on BioC Devel right now with regards
> to the latest package versions? Since the release there are some rather
> strict requirements in my DESCRIPTION file, but some of the packages
> versions are not available from BiocLite:

The short answer is that things will fix themselves.

The longer answer is that IRanges has been divided into IRanges and S4Vectors,
and reverse dependencies were broken in such a way that ~ 130 packages,
including for instance the updated rtacklayer, failed to build over the weekend.
It took time some but I believe the builds today (10amish Seattle time) will be
much better, and the new versions for most of these packages will be available.
 Always risky to predict the future, though.

Unfortunately this can lead to quite a challenging situation, where over the
last several days the only solution has been to install particular packages from
svn. Going forward I can imagine that user 'devel' installations, especially on
Windows and Mac, might also require re-installation of packages whose version
has not changed.

I'll ask Herve to provide an update in a separate thread.

Martin


> 
> [s_itoxadm at chbslx1501:~/Rpacks/Gviz]$ svn blame DESCRIPTION
>   62472  m.carlson Package: Gviz
>   89967     fhahne Version: 1.9.3
>   62472  m.carlson Title: Plotting data and annotation information along
> genomic coordinates
>   80543     fhahne Author: Florian Hahne, Steffen Durinck, Robert Ivanek,
> Arne Mueller, Steve Lianoglou, Ge Tan <ge.tan09 at imperial.ac.uk>
>   62472  m.carlson Maintainer: Florian Hahne <florian.hahne at novartis.com>
>   89957 hpages at fhcrc.org Depends:  R (>= 2.10.0), methods, grid,
> BiocGenerics (>= 0.11.2), S4Vectors (>= 0.0.1), IRanges (>= 1.99.1),
> GenomeInfoDb (>= 1.1.3), GenomicRanges (>= 1.17.11)
>   89957 hpages at fhcrc.org Imports: XVector (>= 0.5.3), rtracklayer (>=
> 1.25.5), lattice, RColorBrewer, biomaRt (>= 2.11.0), AnnotationDbi (>=
> 1.27.5), Biobase (>= 2.15.3), GenomicFeatures (>= 1.17.5), BSgenome (>=
> 1.33.1), Biostrings (>= 2.33.3), biovizBase (>= 1.13.7), Rsamtools (>=
> 1.17.8), latticeExtra (>= 0.6-26), matrixStats (>= 0.8.14),
> GenomicAlignments (>= 1.1.9)
>   85562     fhahne Suggests: xtable, BSgenome.Hsapiens.UCSC.hg19, BiocStyle
>   62472  m.carlson biocViews: Visualization, Microarray
>   62472  m.carlson Description: Genomic data analyses requires integrated
> visualization of known genomic information and new experimental data.
> Gviz uses the biomaRt and the rtracklayer packages to perform live
> annotation queries to Ensembl and UCSC and translates this to e.g.
> gene/transcript structures in viewports of the grid graphics package. This
> results in genomic information plotted together with your data.
>   62472  m.carlson Collate: Gviz.R AllGenerics.R AllClasses.R Gviz-methods.R
>   62472  m.carlson License: Artistic-2.0
>   62472  m.carlson LazyLoad: yes
>   62472  m.carlson
> 
> Available rtracklayer for example is only 1.25.4
> http://www.bioconductor.org/packages/devel/bioc/html/rtracklayer.html
> But the version in the svn is Version: 1.25.5
> 
> Any idea what went wrong there?
> Florian
> 
> 
> 
> 
> On 06/05/14 01:09, "Martin Morgan" <mtmorgan at fhcrc.org> wrote:
> 
>> On 05/05/2014 10:56 AM, Sebastian Gibb wrote:
>>> Dear Florian,
>>>
>>> On 2014-05-05 16:17:41, florian.hahne at novartis.com wrote:
>>>> Hm, this looks odd indeed. I am wondering whether this is some sort of
>>>> name space problem. Does the same happen when you create your ³A² dummy
>>>> class and the ³[³ method in a little dummy package with its own name
>>>> space?
>>> Your guess was right! I created a small dummy package
>>> ( https://github.com/sgibb/dummyA ). And after loading it with `library`
>>> everything works like expected.
>>> But if I load it with devtools' `load_all` it crashes with the same
>>> error:
>>>
>>> Error in callNextMethod(x, i) :
>>>     bad object found as method (class "function")
>>>
>>> Kind regards,
>>>
>>> Sebastian
>>>
>>> On 2014-05-05 16:17:41, florian.hahne at novartis.com wrote:
>>>> Something seems to be messing up the methods table when you define
>>>> the ³[³ method from the global environment.
>>>> Any advice from the name space gurus on the list?
>>
>> I looked a little at this, and it seems like a methods bug in
>> callNextMethod
>> when invoked inside a .local function. It can be worked around by
>> revising Gviz
>> "[" method definitions as
>>
>> setMethod("[", signature(x="StackedTrack"), function(x, i, j, ...,
>> drop=TRUE) {
>>      x <- callNextMethod(x,i)
>>      x at stacks <- x at stacks[i]
>>      return(x)})
>>
>>
>> A simple reproducible example is
>>
>>     .A = setClass("A", "numeric")
>>     setMethod("[", "A", function(x, i) callNextMethod(x, i))
>>
>> and then
>>
>>> .A()[]
>> Error in callNextMethod(x, i) :
>>    bad object found as method (class “function”)
>>
>> Martin
>>
>>>> Florian
>>>>
>>>> On 04/05/14 13:48, "Sebastian Gibb" <sgibb.debian at gmail.com> wrote:
>>>>
>>>>> Dear Florian, dear all,
>>>>>
>>>>> I want to use Gviz::AnnotationTrack to visualize my own class. This
>>>>> class
>>>>> overloads the "[" operator. It seems that just the definition of my
>>>>> own
>>>>> "["
>>>>> results in a method dispatching error:
>>>>>
>>>>> Error in callNextMethod(x, i) :
>>>>>    bad object found as method (class ³function²)
>>>>>
>>>>> After defining "[" even AnnotationTrack instances that are not using
>>>>> my
>>>>> class
>>>>> throw this error.
>>>>>
>>>>> I do not understand the error. Did I something wrong? Can somebody
>>>>> enlighten me?
>>>>>
>>>>> Please find a minimal reproducible example below.
>>>>>
>>>>> Kind regards,
>>>>>
>>>>> Sebastian
>>>>>
>>>>> ###
>>>>> library("Gviz")
>>>>>
>>>>> ## create dummy class
>>>>> setClass("A",
>>>>>           slots = list(start = "numeric", end = "numeric"),
>>>>>           prototype = prototype(
>>>>>            start = integer(),
>>>>>            end = integer()))
>>>>>
>>>>> ## define a plotting function for A
>>>>> plotGVizA <- function(obj) {
>>>>>    aTrack <- AnnotationTrack(start=obj at start, end=obj at end, name = "a",
>>>>>                              chromosome = "chr0", genome = "all")
>>>>>    plotTracks(aTrack, from = min(obj at start), to = max(obj at end))
>>>>> }
>>>>>
>>>>> ## define a plotting function without any A
>>>>> plotGViz <- function() {
>>>>>    aTrack <- AnnotationTrack(start=c(1, 5), end=c(3, 10), name = "a",
>>>>>                              chromosome = "chr0", genome = "all")
>>>>>    plotTracks(aTrack, from = 1, to = 10)
>>>>> }
>>>>>
>>>>> ## create an object of class A
>>>>> a <- new("A", start=c(1, 5), end=c(3, 10))
>>>>>
>>>>> ## works
>>>>> plotGViz()
>>>>> plotGVizA(a)
>>>>>
>>>>> ## define the "[" operator for A
>>>>> setMethod("[", "A", function(x, i, j, ...) { return(c(x at start[i],
>>>>> x at end[i])) })
>>>>>
>>>>> ## crashes with the following error message:
>>>>> ## Error in callNextMethod(x, i) :
>>>>> ##  bad object found as method (class ³function²)
>>>>> plotGVizA(a)
>>>>> plotGViz()
>>>>>
>>>>> traceback()
>>>>> #12: stop(gettextf("bad object found as method (class %s)",
>>>>> # dQuote(class(method))), domain = NA)
>>>>> #11: callNextMethod(x, i)
>>>>> #10: .local(x, i, ...)
>>>>> #9: GdObject[seqnames(GdObject) == chromosome(GdObject)]
>>>>> #8: .computeGroupRange(GdObject, hasAxis = hasAxis, hasTitle =
>>>>> hasTitle,
>>>>> #       title.width = title.width)
>>>>> #7: .local(GdObject, ...)
>>>>> #6: FUN(X[[1L]], ...)
>>>>> #5: FUN(X[[1L]], ...)
>>>>> #4: lapply(trackList, consolidateTrack, chromosome = chromosome,
>>>>> #       any(.needsAxis(trackList)), any(.needsTitle(trackList)),
>>>>> #       title.width, alpha = hasAlpha, ...)
>>>>> #3: lapply(trackList, consolidateTrack, chromosome = chromosome,
>>>>> #       any(.needsAxis(trackList)), any(.needsTitle(trackList)),
>>>>> #       title.width, alpha = hasAlpha, ...)
>>>>> #2: plotTracks(aTrack, from = 1, to = 10) at #4
>>>>> #1: plotGViz()
>>>>>
>>>>> sessionInfo()
>>>>> #R version 3.1.0 (2014-04-10)
>>>>> #Platform: x86_64-pc-linux-gnu (64-bit)
>>>>> #
>>>>> #locale:
>>>>> # [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>>>>> # [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>>>>> # [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>>>>> # [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
>>>>> # [9] LC_ADDRESS=C               LC_TELEPHONE=C
>>>>> #[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>>> #
>>>>> #attached base packages:
>>>>> #[1] parallel  grid      stats     graphics  grDevices utils
>>>>> datasets
>>>>> #[8] methods   base
>>>>> #
>>>>> #other attached packages:
>>>>> #[1] XVector_0.4.0       IRanges_1.22.6      Gviz_1.8.0
>>>>> #[4] BiocGenerics_0.10.0 devtools_1.5        vimcom.plus_0.9-93
>>>>> #[7] setwidth_1.0-3      colorout_1.0-2
>>>>> #
>>>>> #loaded via a namespace (and not attached):
>>>>> # [1] AnnotationDbi_1.26.0     BatchJobs_1.2
>>>>> # [3] BBmisc_1.6               Biobase_2.24.0
>>>>> # [5] BiocParallel_0.6.0       biomaRt_2.20.0
>>>>> # [7] Biostrings_2.32.0        biovizBase_1.12.1
>>>>> # [9] bitops_1.0-6             brew_1.0-6
>>>>> #[11] BSgenome_1.32.0          cluster_1.15.2
>>>>> #[13] codetools_0.2-8          colorspace_1.2-4
>>>>> #[15] DBI_0.2-7                dichromat_2.0-0
>>>>> #[17] digest_0.6.4             evaluate_0.5.5
>>>>> #[19] fail_1.2                 foreach_1.4.2
>>>>> #[21] Formula_1.1-1            GenomeInfoDb_1.0.2
>>>>> #[23] GenomicAlignments_1.0.1  GenomicFeatures_1.16.0
>>>>> #[25] GenomicRanges_1.16.3     Hmisc_3.14-4
>>>>> #[27] httr_0.3                 iterators_1.0.7
>>>>> #[29] lattice_0.20-29          latticeExtra_0.6-26
>>>>> #[31] matrixStats_0.8.14       memoise_0.2.1
>>>>> #[33] munsell_0.4.2            plyr_1.8.1
>>>>> #[35] RColorBrewer_1.0-5       Rcpp_0.11.1
>>>>> #[37] RCurl_1.95-4.1           R.methodsS3_1.6.1
>>>>> #[39] Rsamtools_1.16.0         RSQLite_0.11.4
>>>>> #[41] rtracklayer_1.24.0       scales_0.2.4
>>>>> #[43] sendmailR_1.1-2          splines_3.1.0
>>>>> #[45] stats4_3.1.0             stringr_0.6.2
>>>>> #[47] survival_2.37-7          tools_3.1.0
>>>>> #[49] VariantAnnotation_1.10.1 whisker_0.3-2
>>>>> #[51] XML_3.98-1.1             zlibbioc_1.10.0
>>>>
>>>
>>> _______________________________________________
>>> 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
> 


-- 
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



More information about the Bioc-devel mailing list