[Bioc-devel] GenomicRanges List subclass and apply
Jack Fu
jfu14 @ending from jhu@edu
Tue May 15 01:07:00 CEST 2018
Thanks all -> I definitely see the appeal of vectorization.
I'm going to take a few pokes to do just that.
Best,
Jack
Hervé Pagès wrote:
>
> Hi Jack,
>
> You can use
>
> sapply(seq_along(gr), function(i) print(gr[i]))
>
> instead of
>
> sapply(gr, print)
>
> But yes, as Michael noted, looping on a GRanges or IRanges object
> is generally not efficient and should be avoided. There is almost
> always a "vectorized" solution and it's generally much faster.
> However, depending on what you are trying to do exactly, coming up
> with a "vectorized" solution can be tricky.
>
> Cheers,
> H.
>
> On 05/14/2018 07:28 AM, Jack Fu wrote:
>> Hey all,
>>
>> I think some of the recent changes to GRanges has affected using the
>> apply class functions with GRanges objects:
>>
>> o GenomicRanges now is a List subclass. This means that GRanges
>> objects
>> and their derivatives are now considered list-like objects
>> (even though
>> [[ don't work on them yet, this will be implemented in
>> Bioconductor 3.8).
>>
>>
>> The following code will throw:
>> gr <- GRanges(1, IRanges(1:2, 3:4))
>> sapply(gr, print)
>>
>> Error in (function (classes, fdef, mtable) :
>> unable to find an inherited method for function 'getListElement' for
>> signature '"GRanges"'
>>
>> Access using gr[1], gr[1:2] still works normally.
>> Are there any recommendations on a workaround for this issue without
>> resorting back to for loops?
>>
>> Thanks all,
>> Jack
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=k5vpJVkh58WH_4jBoE8Hcz_bmop9lW6D_bqF-tDiDm8&s=s_wv4S9c-aOZ3KFs8bcPcZL8UJUz0xC6cOi4LMqmkRc&e=
>>
>>
>
More information about the Bioc-devel
mailing list