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@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: hpa...@fredhutch.org Phone: (206) 667-5791 Fax: (206) 667-1319 _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel