The convention in IRanges is to match by order, rather than by name, as is done with ordinary R vectors, for element-wise vector operations. findOverlaps does not fall into this category, as it is a "search" operation.
Michael On Mon, Sep 6, 2010 at 12:41 AM, Aaron Statham <[email protected]>wrote: > Hi all, > > Just a gotcha I ran into today - when running Views() on > RleList,RangesList arguments, the ranges are applied to the RleList by > order of the list, not by matching up names. > Consequently I had views running off the edge of a RleList with no > warning or error being thrown. > > Example: > > rle1 <- RleList(chr1=Rle(1:50), chr2=Rle(1:10)) > > ranges1 <- RangesList(chr2=IRanges(c(1,3), width=5), > chr1=IRanges(c(5,15), width=5)) > > rle1 > SimpleRleList of length 2 > $chr1 > 'integer' Rle of length 50 with 50 runs > Lengths: 1 1 1 1 1 1 1 1 1 1 1 ... 1 1 1 1 1 1 1 1 1 > 1 > Values : 1 2 3 4 5 6 7 8 9 10 11 ... 41 42 43 44 45 46 47 48 49 > 50 > > $chr2 > 'integer' Rle of length 10 with 10 runs > Lengths: 1 1 1 1 1 1 1 1 1 1 > Values : 1 2 3 4 5 6 7 8 9 10 > > > ranges1 > SimpleRangesList of length 2 > $chr2 > IRanges of length 2 > start end width > [1] 1 5 5 > [2] 3 7 5 > > $chr1 > IRanges of length 2 > start end width > [1] 5 9 5 > [2] 15 19 5 > > > Views(rle1, ranges1) > SimpleRleViewsList of length 2 > $chr1 > Views on a 50-length Rle subject > > views: > start end width > [1] 1 5 5 [1 2 3 4 5] > [2] 3 7 5 [3 4 5 6 7] > > $chr2 > Views on a 10-length Rle subject > > views: > start end width > [1] 5 9 5 [5 6 7 8 9] > [2] 15 19 5 [ ] > > > sessionInfo() > R version 2.12.0 Under development (unstable) (2010-07-06 r52460) > Platform: x86_64-unknown-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C > [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8 > [5] LC_MONETARY=C LC_MESSAGES=en_AU.UTF-8 > [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] IRanges_1.7.32 > > A quick fix would be to in RleViewsList() to check for names in > rleList & rangesList (as is done in findOverlaps methods) and reorder > one before the call to Map(Views, ...) > > Cheers, > Aaron > > -- > Aaron Statham > Postgraduate Scholar, Cancer Epigenetics > Garvan Institute of Medical Research Tel: (02) 9295 8393 > 384 Victoria St Darlinghurst 2010 Fax: (02) 9295 8316 > NSW Australia email: [email protected] > > _______________________________________________ > Bioc-sig-sequencing mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing > [[alternative HTML version deleted]] _______________________________________________ Bioc-sig-sequencing mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/bioc-sig-sequencing
