[Bioc-devel] GenomicRanges List subclass and apply
Hervé Pagès
hp@ge@ @ending from fredhutch@org
Mon May 14 20:15:01 CEST 2018
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=
>
--
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 fredhutch.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the Bioc-devel
mailing list