Hi all, I sometimes want to test whether a GRanges object (or some object with a GRanges slot, e.g., a SummarizedExperiment object) is (un)sorted. There is no is.unsorted,GRanges-method or, rather, it defers to is.unsorted,ANY-method. I'm unsure that deferring to the is.unsorted,ANY-method is what is really desired when a user calls is.unsorted on a GRanges object, and it will certainly return a (possibly unrelated) warning - "In is.na(x) : is.na() applied to non-(list or vector) of type 'S4'".
For this reason, I tend to use is.unsorted(order(x)) when x is a GRanges object. This workaround is also used, for example, by minfi (https://github.com/kasperdanielhansen/minfi/blob/master/R/blocks.R#L121). However, this is slow because it essentially sorts the object to test whether it is already sorted. So, to my questions: 1. Have I overlooked a fast way to test whether a GRanges object is sorted? 2a. Could a is.unsorted,GenomicRanges-method be added to the GenomicRanges package? Side note, I'm unsure at which level to define this method, e.g., GRanges vs. GenomicRanges. 2b. Is it possible to have a sensible definition and implementation for is.unsorted,GRangesList-method? 2c. Could a is.unsorted,RangedSummarizedExperiment-method be added to the SummarizedExperiment package? I started working on a patch for 2a/2c, but wanted to ensure I hadn't overlooked something obvious. Also, I'm sure 2a/2b/2c could be written much more efficiently at the C-level but I'm afraid this might be a bit beyond my abilities to integrate nicely with the existing code. Thanks, Pete _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel