Saw the fix: could this be considered a bug in the methods package? It
seems callNextMethod gets confused with .local(). That said, I like
explicit argument passing.


On Tue, Oct 29, 2013 at 2:15 PM, Hervé Pagès <hpa...@fhcrc.org> wrote:

> Hi Thomas,
>
> This is addressed in IRanges 1.20.4 (release) and 1.21.7 (devel).
> Both should become available thru biocLite() in the next 24 hours
> or so.
>
> Cheers,
> H.
>
>
>
> On 10/28/2013 04:01 PM, Hervé Pagès wrote:
>
>> On 10/28/2013 11:16 AM, Hervé Pagès wrote:
>>
>>> Hi Thomas,
>>>
>>> Thanks for the report. I'm looking at this. Will let you know
>>> when the problem is fixed.
>>>
>>
>> What has changed in BioC 2.13 is that, by default, the RleList()
>> constructor now returns a CompressedRleList object instead of a
>> SimpleRleList object:
>>
>>    return_rles <- RleList(Rle(values=TRUE,lengths=151),
>>                           Rle(values=TRUE,lengths=151),
>>                           Rle(values=TRUE,lengths=151))
>> Then:
>>
>>    > class(return_rles)      # used to be SimpleRleList (in BioC < 2.13)
>>    [1] "CompressedRleList"
>>    attr(,"package")
>>    [1] "IRanges"
>>
>> and `[<-` doesn't work (and never has) on a CompressedRleList object
>> when the subscript is a list-like object:
>>
>>    > return_rles[ list(20:108, 41:131, 21:105) ] <- TRUE
>>    Error in callNextMethod() :
>>      in processing 'callNextMethod', found a '...' in the matched call,
>>      but no corresponding '...' argument
>>
>> So an immeadiate work-around for you is to call RleList() with
>> 'compress=FALSE' to create a SimpleRleList object:
>>
>>    return_rles <- RleList(Rle(values=TRUE,lengths=151),
>>                           Rle(values=TRUE,lengths=151),
>>                           Rle(values=TRUE,lengths=151),
>>                           compress=FALSE)
>>
>> Then:
>>
>>    > return_rles[ list(20:108, 41:131, 21:105) ] <- TRUE
>>
>> This also works with an IRangesList subscript:
>>
>>    keep_ranges <- IRangesList(IRanges(start=20, end=108),
>>                               IRanges(start=41, end=131),
>>                               IRanges(start=21, end=105))
>>
>> Then:
>>
>>    > return_rles[ keep_ranges ] <- TRUE
>>
>> 2 issues that need to be addressed:
>>    (1) `[<-` should work on a CompressedRleList object when using a
>>        list-like subscript.
>>    (2) The RleList() constructor should warn that its behavior has
>>        changed when called without specifying the 'compress' arg.
>> A fix is on its way.
>>
>> H.
>>
>>
>>
>>> H.
>>>
>>>
>>> On 10/25/2013 11:33 AM, Thomas Sandmann wrote:
>>>
>>>> Sorry, forgot that attachments don't make it through.
>>>> Here's how to generate the example objects and reproduce the error:
>>>>
>>>> library(IRanges)
>>>> keep_ranges <- IRangesList( IRanges( start=20, end=108), IRanges(
>>>> start=41,
>>>> end=131), IRanges( start=21, end=105))
>>>> return_rles <- RleList( Rle(values=TRUE,lengths=151),
>>>>   Rle(values=TRUE,lengths=151),  Rle(values=TRUE,lengths=151))
>>>> return_rles[ keep_ranges ] <- TRUE
>>>>
>>>> return_rles[ keep_ranges ] ## subsetting works
>>>> return_rles[ keep_ranges ] <- TRUE ## assignment doesn't work
>>>> Error in callNextMethod() :
>>>>    in processing 'callNextMethod', found a '...' in the matched call,
>>>> but no
>>>> corresponding '...' argument
>>>>
>>>>
>>>>
>>>> On Fri, Oct 25, 2013 at 11:23 AM, Thomas Sandmann <sandm...@gene.com>
>>>> wrote:
>>>>
>>>>  Dear BioC developers,
>>>>>
>>>>> I am trying to subset an RleList with an IRangesList (see attached
>>>>> rdata
>>>>> object). Unfortunately, the following line fails with IRanges 1.20.0:
>>>>>
>>>>> return_rles[keep_ranges] <- TRUE
>>>>> Error in subsetListByList_replace(x, i, value) :
>>>>>    cannot subscript an unnamed list-like object by a named list-like
>>>>> object
>>>>>
>>>>> Unnaming the IRangesList doesn't help, either:
>>>>>
>>>>> return_rles[unname(keep_ranges)] <- TRUE
>>>>> Error in callNextMethod() :
>>>>>    in processing 'callNextMethod', found a '...' in the matched call,
>>>>> but
>>>>> no corresponding '...' argument
>>>>>
>>>>> The same operation worked with IRanges 1.18.2 using the (now
>>>>> deprecated)
>>>>> seqselect method:
>>>>>
>>>>> seqselect( return_rles, keep_ranges ) <- TRUE
>>>>>
>>>>> Any hints ?
>>>>>
>>>>> Thanks,
>>>>> Thomas
>>>>>
>>>>> SessionInfo()
>>>>> R version 3.0.2 (2013-09-25)
>>>>> 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] BiocInstaller_1.12.0 IRanges_1.20.0       BiocGenerics_0.8.0
>>>>> devtools_1.3
>>>>>
>>>>> loaded via a namespace (and not attached):
>>>>> [1] digest_0.6.3   evaluate_0.5.1 httr_0.2       memoise_0.1
>>>>>   RCurl_1.95-4.1 stats4_3.0.2   stringr_0.6.2
>>>>> [8] tools_3.0.2    whisker_0.3-2
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
> --
> 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: hpa...@fhcrc.org
> Phone:  (206) 667-5791
> Fax:    (206) 667-1319
>
> _______________________________________________
> 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

Reply via email to