Lovely. Hadn't even thought about the VRanges aspect in a while, but this is essentially the use case I had as well. Thanks!
--t > On May 5, 2014, at 1:25 AM, Julian Gehring <julian.gehr...@embl.de> wrote: > > Hi Tim, > > I was looking for a similar function a while ago, and created the > 'grangesPlain' function in 'SomaticSignatures': > > grangesPlain <- > function (x) > { > mcols(x) = NULL > x = as(x, "GRanges") > return(x) > } > > It removes the metadata columns, as Michael described. Further, it performs > an explicit conversion to a 'GRanges' object - in case that 'x' has a derived > class like a 'VRanges'. > > The main motivation for an extra function is that you can use it inline, e.g > > resize(sort(grangesPlain(x)), ...) > > works. It would be great to have such functionality as part of the bioc core. > > Best wishes > Julian > > >> On 05.05.2014 01:56, Michael Lawrence wrote: >> Why not just do >> >> mcols(gr) <- NULL >> >> It's way more obvious than granges(gr). And that should happen virtually >> instantaneously in R 3.1, regardless of the length. >> >> >> >> >> On Sun, May 4, 2014 at 3:55 PM, Tim Triche, Jr. <tim.tri...@gmail.com>wrote: >> >>> Right, what I was wondering however is whether it's possible not to create >>> or modify the object at all, but rather access only the necessary bits. >>> >>> It seems like a slightly different structure that puts all the location in >>> one place (say @granges) and the metadata in another (as it presently is) >>> might be handy to avoid this hoohah. That's rather a larger change. >>> >>> --t >>> >>>> On May 4, 2014, at 3:23 PM, "Johnston, Jeffrey" <j...@stowers.org> wrote: >>>> >>>> >>>>> On May 4, 2014, at 3:50 PM, Tim Triche, Jr. <tim.tri...@gmail.com> >>> wrote: >>>>> >>>>> I wanted something to extract @ranges from a GRanges object along with >>> its >>>>> @seqnames, @strand, and @seqinfo. Essentially, everything but the >>> mcols. >>>>> >>>>> Does this make sense? Is there a lighter-weight way to avoid any >>> copying >>>>> in-flight? >>>>> >>>>> >>>>> setMethod("granges", "GRanges", function(x) { >>>>> GRanges(seqnames=seqnames(x), >>>>> ranges=ranges(x), >>>>> strand=strand(x), >>>>> seqinfo=seqinfo(x)) >>>>> }) >>>>> >>>>> >>>>> The fact that I'm constructing an entire new GRanges makes me a little >>>>> queasy... that said, it has turned out to be useful when I just want a >>>>> short list of locations, as for debugging plotting functions, profile >>>>> plots, or what have you. >>>> >>>> >>>> Perhaps just this: >>>> >>>> setMethod("granges", "GRanges", function(x) { >>>> mcols(x) <- NULL >>>> x >>>> }) >>> >>> _______________________________________________ >>> 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 >> _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel