GenomicRanges: nearest() for GRanges not returning overlaps
1
0
Entering edit mode
james perkins ▴ 300
@james-perkins-2675
Last seen 10.2 years ago
Hi, I read this: https://mailman.stat.ethz.ch/pipermail/bioconductor/2012- June/046287.html However, after reading it I'm a little confused as to what the default behaviour should be when using nearest with '*', and also how to get back to what I believe was the previous, "IRanges" style behaviour. Is nearest on GRanges supposed to act like nearest on IRanges, or is it instead supposed to return the nearest neighbour OTHER than the query one? I.e. > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > nearest(query, subject) [1] 1 1 3 Because, it seems to be behaving differently, i.e. returning the neighbour only, i.e. > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), c(2, 7, 12))) > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), c(3, 6, 12))) > nearest(query2, subject2) [1] 1 3 2 > > sessionInfo() R version 2.15.1 (2012-06-22) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US LC_NUMERIC=C [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 loaded via a namespace (and not attached): [1] stats4_2.15.1 However, what makes me confused is that the previous behaviour was like IRanges: > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > nearest(query, subject) [1] 1 1 3 > > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), c(2, 7, 12))) > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), c(3, 6, 12))) > nearest(query2, subject2) [1] 1 1 3 > > sessionInfo() R version 2.15.0 (2012-03-30) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 loaded via a namespace (and not attached): [1] stats4_2.15.0 And in fact, this has always been the behaviour right? i.e.: for R 2.13.1 > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > nearest(query, subject) [1] 1 1 3 > > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), c(2, 7, 12))) > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), c(3, 6, 12))) > nearest(query2, subject2) [1] 1 1 3 > > sessionInfo() R version 2.13.1 (2011-07-08) Platform: x86_64-pc-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] GenomicRanges_1.4.8 IRanges_1.10.6 Is ignore.strand=TRUE intended to get the IRanges-like behaviour? Because I have problems with this too: nearest(x = query2, subject = subject2, ignore.strand=TRUE) Error in strand(x) <- strand(subject) <- "+" : object 'x' not found Thanks! Jim
IRanges IRanges • 1.7k views
ADD COMMENT
0
Entering edit mode
@michael-lawrence-3846
Last seen 3.0 years ago
United States
The way IRanges works is that the self hits are excluded (by default) when only one argument is passed to nearest(). They should not be excluded when the same object is passed as both arguments. Michael On Tue, Jul 3, 2012 at 7:09 AM, James Perkins <jperkins@biochem.ucl.ac.uk>wrote: > Hi, > > I read this: > https://mailman.stat.ethz.ch/pipermail/bioconductor/2012-June/046287 .html > > However, after reading it I'm a little confused as to what the default > behaviour should be when using nearest with '*', and also how to get > back to what I believe was the previous, "IRanges" style behaviour. > > Is nearest on GRanges supposed to act like nearest on IRanges, or is > it instead supposed to return the nearest neighbour OTHER than the > query one? > > I.e. > > > > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > > nearest(query, subject) > [1] 1 1 3 > > Because, it seems to be behaving differently, i.e. returning the > neighbour only, i.e. > > > > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), > c(2, 7, 12))) > > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), > c(3, 6, 12))) > > nearest(query2, subject2) > [1] 1 3 2 > > > > sessionInfo() > R version 2.15.1 (2012-06-22) > Platform: x86_64-unknown-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_US LC_NUMERIC=C > [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 > [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 > [7] LC_PAPER=C LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 > > loaded via a namespace (and not attached): > [1] stats4_2.15.1 > > > However, what makes me confused is that the previous behaviour was like > IRanges: > > > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > > nearest(query, subject) > [1] 1 1 3 > > > > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), > c(2, 7, 12))) > > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), > c(3, 6, 12))) > > nearest(query2, subject2) > [1] 1 1 3 > > > > sessionInfo() > R version 2.15.0 (2012-03-30) > Platform: x86_64-unknown-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C > [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 > [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 > [7] LC_PAPER=C LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 > > loaded via a namespace (and not attached): > [1] stats4_2.15.0 > > > And in fact, this has always been the behaviour right? i.e.: for R 2.13.1 > > > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) > > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) > > nearest(query, subject) > [1] 1 1 3 > > > > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), > c(2, 7, 12))) > > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), > c(3, 6, 12))) > > nearest(query2, subject2) > [1] 1 1 3 > > > > sessionInfo() > R version 2.13.1 (2011-07-08) > Platform: x86_64-pc-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C > [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 > [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 > [7] LC_PAPER=en_US.UTF-8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] GenomicRanges_1.4.8 IRanges_1.10.6 > > > Is ignore.strand=TRUE intended to get the IRanges-like behaviour? > Because I have problems with this too: > > nearest(x = query2, subject = subject2, ignore.strand=TRUE) > Error in strand(x) <- strand(subject) <- "+" : object 'x' not found > > Thanks! > > Jim > > _______________________________________________ > Bioconductor mailing list > Bioconductor@r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor > [[alternative HTML version deleted]]
ADD COMMENT
0
Entering edit mode
Thanks, But it appears in the example (using GenomicRanges_1.8.7), the second range is being excluded? I.e. 3-7 matches 5-6 (and 1-3) and thus is > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), + >> > c(3, 6, 12))) > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), c(3, 6, 12))) > query2 GRanges with 3 ranges and 0 elementMetadata cols: seqnames ranges strand <rle> <iranges> <rle> [1] chr1 [1, 2] * [2] chr1 [3, 7] * [3] chr1 [9, 10] * --- seqlengths: chr1 NA > subject2 GRanges with 3 ranges and 0 elementMetadata cols: seqnames ranges strand <rle> <iranges> <rle> [1] chr1 [ 3, 3] * [2] chr1 [ 5, 6] * [3] chr1 [12, 12] * --- seqlengths: chr1 NA > nearest(query2, subject2) [1] 1 3 3 > nearest(subject2, query2) [1] 1 1 3 Similarly nearest(query2, query2) [1] 2 1 2 should surely be "1 2 3"? Or have I missed something? IRanges is as I would expect: > nearest(ranges(query2), ranges(subject2)) [1] 1 1 3 Jim On 3 July 2012 19:40, Michael Lawrence <lawrence.michael at="" gene.com=""> wrote: > The way IRanges works is that the self hits are excluded (by default) when > only one argument is passed to nearest(). They should not be excluded when > the same object is passed as both arguments. > > Michael > > On Tue, Jul 3, 2012 at 7:09 AM, James Perkins <jperkins at="" biochem.ucl.ac.uk=""> > wrote: >> >> Hi, >> >> I read this: >> https://mailman.stat.ethz.ch/pipermail/bioconductor/2012-June/04628 7.html >> >> However, after reading it I'm a little confused as to what the default >> behaviour should be when using nearest with '*', and also how to get >> back to what I believe was the previous, "IRanges" style behaviour. >> >> Is nearest on GRanges supposed to act like nearest on IRanges, or is >> it instead supposed to return the nearest neighbour OTHER than the >> query one? >> >> I.e. >> >> >> > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) >> > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) >> > nearest(query, subject) >> [1] 1 1 3 >> >> Because, it seems to be behaving differently, i.e. returning the >> neighbour only, i.e. >> >> >> > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 3, 9), >> > c(2, 7, 10))) >> > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >> > c(3, 6, 12))) >> > nearest(query2, subject2) >> [1] 1 3 2 >> > >> > sessionInfo() >> R version 2.15.1 (2012-06-22) >> Platform: x86_64-unknown-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_US LC_NUMERIC=C >> [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 >> [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 >> [7] LC_PAPER=C LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 >> >> loaded via a namespace (and not attached): >> [1] stats4_2.15.1 >> >> >> However, what makes me confused is that the previous behaviour was like >> IRanges: >> >> > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) >> > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) >> > nearest(query, subject) >> [1] 1 1 3 >> > >> > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >> > c(2, 7, 12))) >> > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >> > c(3, 6, 12))) >> > nearest(query2, subject2) >> [1] 1 1 3 >> > >> > sessionInfo() >> R version 2.15.0 (2012-03-30) >> Platform: x86_64-unknown-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 >> [7] LC_PAPER=C LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 >> >> loaded via a namespace (and not attached): >> [1] stats4_2.15.0 >> >> >> And in fact, this has always been the behaviour right? i.e.: for R 2.13.1 >> >> > query <- IRanges(c(1, 3, 9), c(2, 7, 10)) >> > subject <- IRanges(c(3, 5, 12), c(3, 6, 12)) >> > nearest(query, subject) >> [1] 1 1 3 >> > >> > query2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >> > c(2, 7, 12))) >> > subject2 <- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >> > c(3, 6, 12))) >> > nearest(query2, subject2) >> [1] 1 1 3 >> > >> > sessionInfo() >> R version 2.13.1 (2011-07-08) >> Platform: x86_64-pc-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 >> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] GenomicRanges_1.4.8 IRanges_1.10.6 >> >> >> Is ignore.strand=TRUE intended to get the IRanges-like behaviour? >> Because I have problems with this too: >> >> nearest(x = query2, subject = subject2, ignore.strand=TRUE) >> Error in strand(x) <- strand(subject) <- "+" : object 'x' not found >> >> Thanks! >> >> Jim >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor > >
ADD REPLY
0
Entering edit mode
Hi James, Thanks for the bug report. The nearest,GRanges method is currently not selecting any range that includes itself. It should behave like IRanges and excluded self hits when one argument is supplied but not when the same argument is both query and subject. I'll post back here when it is fixed. Here is an example that will help explain how '*' is treated as far as matching. For precede(), follow() and nearest() the '*' strand is treated as '+' and '-' when looking for potential matches. > q <- GRanges("chr1", IRanges(c(1, 3, 9), c(2, 7, 10))) > q GRanges with 3 ranges and 0 elementMetadata cols: seqnames ranges strand <rle> <iranges> <rle> [1] chr1 [1, 2] * [2] chr1 [3, 7] * [3] chr1 [9, 10] * --- seqlengths: chr1 NA ## The second range could be seen as preceding range 3 on '+' ## or preceding range 1 on '-'. Range 1 is closer so it is chosen. ## The third range precedes no range on '+' but precedes ## range 2 on '-' so range 2 is chosen. > precede(q) [1] 2 1 2 > precede(ranges(q)) [1] 2 3 NA ## When the strand is '+' GRanges and IRanges behave the same. > strand(q) <- "+" > precede(q) [1] 2 3 NA > precede(ranges(q)) [1] 2 3 NA ## When the strand is '-' GRanges treats the ranges as '-' but ## IRanges is unstranded so they are treated as '+'. > strand(q) <- "-" > precede(q) [1] NA 1 2 > precede(ranges(q)) [1] 2 3 NA Valerie On 07/03/12 10:58, James Perkins wrote: > Thanks, > > But it appears in the example (using GenomicRanges_1.8.7), the second > range is being excluded? I.e. 3-7 matches 5-6 (and 1-3) and thus is > >> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), > +>> > c(3, 6, 12))) >> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), c(3, 6, 12))) >> query2 > GRanges with 3 ranges and 0 elementMetadata cols: > seqnames ranges strand > <rle> <iranges> <rle> > [1] chr1 [1, 2] * > [2] chr1 [3, 7] * > [3] chr1 [9, 10] * > --- > seqlengths: > chr1 > NA >> subject2 > GRanges with 3 ranges and 0 elementMetadata cols: > seqnames ranges strand > <rle> <iranges> <rle> > [1] chr1 [ 3, 3] * > [2] chr1 [ 5, 6] * > [3] chr1 [12, 12] * > --- > seqlengths: > chr1 > NA >> nearest(query2, subject2) > [1] 1 3 3 >> nearest(subject2, query2) > [1] 1 1 3 > > Similarly > > nearest(query2, query2) > [1] 2 1 2 > > should surely be "1 2 3"? Or have I missed something? > > IRanges is as I would expect:> nearest(ranges(query2), ranges(subject2)) > [1] 1 1 3 > > > Jim > > > On 3 July 2012 19:40, Michael Lawrence<lawrence.michael at="" gene.com=""> wrote: >> The way IRanges works is that the self hits are excluded (by default) when >> only one argument is passed to nearest(). They should not be excluded when >> the same object is passed as both arguments. >> >> Michael >> >> On Tue, Jul 3, 2012 at 7:09 AM, James Perkins<jperkins at="" biochem.ucl.ac.uk=""> >> wrote: >>> Hi, >>> >>> I read this: >>> https://mailman.stat.ethz.ch/pipermail/bioconductor/2012-June/0462 87.html >>> >>> However, after reading it I'm a little confused as to what the default >>> behaviour should be when using nearest with '*', and also how to get >>> back to what I believe was the previous, "IRanges" style behaviour. >>> >>> Is nearest on GRanges supposed to act like nearest on IRanges, or is >>> it instead supposed to return the nearest neighbour OTHER than the >>> query one? >>> >>> I.e. >>> >>> >>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>> nearest(query, subject) >>> [1] 1 1 3 >>> >>> Because, it seems to be behaving differently, i.e. returning the >>> neighbour only, i.e. >>> >>> >>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 3, 9), >>>> c(2, 7, 10))) >>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>> c(3, 6, 12))) >>>> nearest(query2, subject2) >>> [1] 1 3 2 >>>> sessionInfo() >>> R version 2.15.1 (2012-06-22) >>> Platform: x86_64-unknown-linux-gnu (64-bit) >>> >>> locale: >>> [1] LC_CTYPE=en_US LC_NUMERIC=C >>> [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 >>> [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 >>> [7] LC_PAPER=C LC_NAME=C >>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>> [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 >>> >>> loaded via a namespace (and not attached): >>> [1] stats4_2.15.1 >>> >>> >>> However, what makes me confused is that the previous behaviour was like >>> IRanges: >>> >>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>> nearest(query, subject) >>> [1] 1 1 3 >>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>> c(2, 7, 12))) >>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>> c(3, 6, 12))) >>>> nearest(query2, subject2) >>> [1] 1 1 3 >>>> sessionInfo() >>> R version 2.15.0 (2012-03-30) >>> Platform: x86_64-unknown-linux-gnu (64-bit) >>> >>> locale: >>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 >>> [7] LC_PAPER=C LC_NAME=C >>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 >>> >>> loaded via a namespace (and not attached): >>> [1] stats4_2.15.0 >>> >>> >>> And in fact, this has always been the behaviour right? i.e.: for R 2.13.1 >>> >>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>> nearest(query, subject) >>> [1] 1 1 3 >>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>> c(2, 7, 12))) >>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>> c(3, 6, 12))) >>>> nearest(query2, subject2) >>> [1] 1 1 3 >>>> sessionInfo() >>> R version 2.13.1 (2011-07-08) >>> Platform: x86_64-pc-linux-gnu (64-bit) >>> >>> locale: >>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 >>> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C >>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] GenomicRanges_1.4.8 IRanges_1.10.6 >>> >>> >>> Is ignore.strand=TRUE intended to get the IRanges-like behaviour? >>> Because I have problems with this too: >>> >>> nearest(x = query2, subject = subject2, ignore.strand=TRUE) >>> Error in strand(x)<- strand(subject)<- "+" : object 'x' not found >>> >>> Thanks! >>> >>> Jim >>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at r-project.org >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: >>> http://news.gmane.org/gmane.science.biology.informatics.conductor >> > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD REPLY
0
Entering edit mode
Thanks a lot Valerie! So precede with "*" is analogous to nearest? Since the nearest will also be preceding it either + or - direction? Jim On 3 July 2012 21:04, Valerie Obenchain <vobencha at="" fhcrc.org=""> wrote: > Hi James, > > Thanks for the bug report. The nearest,GRanges method is currently not > selecting any range that includes itself. It should behave like IRanges and > excluded self hits when one argument is supplied but not when the same > argument is both query and subject. I'll post back here when it is fixed. > > Here is an example that will help explain how '*' is treated as far as > matching. For precede(), follow() and nearest() the '*' strand is treated as > '+' and '-' when looking for potential matches. > >> q <- GRanges("chr1", IRanges(c(1, 3, 9), c(2, 7, 10))) > >> q > GRanges with 3 ranges and 0 elementMetadata cols: > seqnames ranges strand > <rle> <iranges> <rle> > [1] chr1 [1, 2] * > [2] chr1 [3, 7] * > [3] chr1 [9, 10] * > --- > seqlengths: > chr1 > NA > > ## The second range could be seen as preceding range 3 on '+' > ## or preceding range 1 on '-'. Range 1 is closer so it is chosen. > ## The third range precedes no range on '+' but precedes > ## range 2 on '-' so range 2 is chosen. >> precede(q) > [1] 2 1 2 >> precede(ranges(q)) > [1] 2 3 NA > > ## When the strand is '+' GRanges and IRanges behave the same. >> strand(q) <- "+" >> precede(q) > [1] 2 3 NA >> precede(ranges(q)) > [1] 2 3 NA > > ## When the strand is '-' GRanges treats the ranges as '-' but > ## IRanges is unstranded so they are treated as '+'. >> strand(q) <- "-" >> precede(q) > [1] NA 1 2 >> precede(ranges(q)) > [1] 2 3 NA > > Valerie > > > On 07/03/12 10:58, James Perkins wrote: >> >> Thanks, >> >> But it appears in the example (using GenomicRanges_1.8.7), the second >> range is being excluded? I.e. 3-7 matches 5-6 (and 1-3) and thus is >> >>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >> >> +>> > c(3, 6, 12))) >>> >>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>> c(3, 6, 12))) >>> query2 >> >> GRanges with 3 ranges and 0 elementMetadata cols: >> seqnames ranges strand >> <rle> <iranges> <rle> >> [1] chr1 [1, 2] * >> [2] chr1 [3, 7] * >> [3] chr1 [9, 10] * >> --- >> seqlengths: >> chr1 >> NA >>> >>> subject2 >> >> GRanges with 3 ranges and 0 elementMetadata cols: >> seqnames ranges strand >> <rle> <iranges> <rle> >> [1] chr1 [ 3, 3] * >> [2] chr1 [ 5, 6] * >> [3] chr1 [12, 12] * >> --- >> seqlengths: >> chr1 >> NA >>> >>> nearest(query2, subject2) >> >> [1] 1 3 3 >>> >>> nearest(subject2, query2) >> >> [1] 1 1 3 >> >> Similarly >> >> nearest(query2, query2) >> [1] 2 1 2 >> >> should surely be "1 2 3"? Or have I missed something? >> >> IRanges is as I would expect:> nearest(ranges(query2), ranges(subject2)) >> [1] 1 1 3 >> >> >> Jim >> >> >> On 3 July 2012 19:40, Michael Lawrence<lawrence.michael at="" gene.com=""> wrote: >>> >>> The way IRanges works is that the self hits are excluded (by default) >>> when >>> only one argument is passed to nearest(). They should not be excluded >>> when >>> the same object is passed as both arguments. >>> >>> Michael >>> >>> On Tue, Jul 3, 2012 at 7:09 AM, James Perkins<jperkins at="" biochem.ucl.ac.uk=""> >>> wrote: >>>> >>>> Hi, >>>> >>>> I read this: >>>> >>>> https://mailman.stat.ethz.ch/pipermail/bioconductor/2012-June/046 287.html >>>> >>>> However, after reading it I'm a little confused as to what the default >>>> behaviour should be when using nearest with '*', and also how to get >>>> back to what I believe was the previous, "IRanges" style behaviour. >>>> >>>> Is nearest on GRanges supposed to act like nearest on IRanges, or is >>>> it instead supposed to return the nearest neighbour OTHER than the >>>> query one? >>>> >>>> I.e. >>>> >>>> >>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>> nearest(query, subject) >>>> >>>> [1] 1 1 3 >>>> >>>> Because, it seems to be behaving differently, i.e. returning the >>>> neighbour only, i.e. >>>> >>>> >>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 3, 9), >>>>> c(2, 7, 10))) >>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>> c(3, 6, 12))) >>>>> nearest(query2, subject2) >>>> >>>> [1] 1 3 2 >>>>> >>>>> sessionInfo() >>>> >>>> R version 2.15.1 (2012-06-22) >>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>> >>>> locale: >>>> [1] LC_CTYPE=en_US LC_NUMERIC=C >>>> [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 >>>> [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 >>>> [7] LC_PAPER=C LC_NAME=C >>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>> [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] stats4_2.15.1 >>>> >>>> >>>> However, what makes me confused is that the previous behaviour was like >>>> IRanges: >>>> >>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>> nearest(query, subject) >>>> >>>> [1] 1 1 3 >>>>> >>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>>> c(2, 7, 12))) >>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>> c(3, 6, 12))) >>>>> nearest(query2, subject2) >>>> >>>> [1] 1 1 3 >>>>> >>>>> sessionInfo() >>>> >>>> R version 2.15.0 (2012-03-30) >>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>> >>>> locale: >>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>>> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 >>>> [7] LC_PAPER=C LC_NAME=C >>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] stats4_2.15.0 >>>> >>>> >>>> And in fact, this has always been the behaviour right? i.e.: for R >>>> 2.13.1 >>>> >>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>> nearest(query, subject) >>>> >>>> [1] 1 1 3 >>>>> >>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>>> c(2, 7, 12))) >>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>> c(3, 6, 12))) >>>>> nearest(query2, subject2) >>>> >>>> [1] 1 1 3 >>>>> >>>>> sessionInfo() >>>> >>>> R version 2.13.1 (2011-07-08) >>>> Platform: x86_64-pc-linux-gnu (64-bit) >>>> >>>> locale: >>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>>> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 >>>> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C >>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] GenomicRanges_1.4.8 IRanges_1.10.6 >>>> >>>> >>>> Is ignore.strand=TRUE intended to get the IRanges-like behaviour? >>>> Because I have problems with this too: >>>> >>>> nearest(x = query2, subject = subject2, ignore.strand=TRUE) >>>> Error in strand(x)<- strand(subject)<- "+" : object 'x' not found >>>> >>>> Thanks! >>>> >>>> Jim >>>> >>>> _______________________________________________ >>>> Bioconductor mailing list >>>> Bioconductor at r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>> Search the archives: >>>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>> >>> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor > >
ADD REPLY
0
Entering edit mode
Your statement is true except in the case where the query and subject are the same (original discussion below). When query and subject are the same (or contain >=1 of the same ranges) nearest() should choose self-hits. precede() and follow() will never select self-hits because they do not 'precede' or 'follow' them. These unit tests may help further explain the behavior we are expecting for "+", "-" and "*". r <- IRanges(c(1,5,10), c(2,7,12)) g <- GRanges("chr1", r, "+") checkEquals(precede(r), precede(g)) checkEquals(follow(r), follow(g)) checkEquals(nearest(r), nearest(g)) g <- GRanges("chr1", r, "-") checkEquals(follow(r), precede(g)) checkEquals(precede(r), follow(g)) checkEquals(nearest(r), nearest(g)) g <- GRanges("chr1", r, "*") checkEquals(follow(g), precede(g)) checkEquals(nearest(r), follow(g)) checkEquals(follow(g), nearest(g)) Valerie On 07/04/2012 02:12 AM, James Perkins wrote: > Thanks a lot Valerie! > > So precede with "*" is analogous to nearest? Since the nearest will > also be preceding it either + or - direction? > > Jim > > On 3 July 2012 21:04, Valerie Obenchain<vobencha at="" fhcrc.org=""> wrote: >> Hi James, >> >> Thanks for the bug report. The nearest,GRanges method is currently not >> selecting any range that includes itself. It should behave like IRanges and >> excluded self hits when one argument is supplied but not when the same >> argument is both query and subject. I'll post back here when it is fixed. >> >> Here is an example that will help explain how '*' is treated as far as >> matching. For precede(), follow() and nearest() the '*' strand is treated as >> '+' and '-' when looking for potential matches. >> >>> q<- GRanges("chr1", IRanges(c(1, 3, 9), c(2, 7, 10))) >>> q >> GRanges with 3 ranges and 0 elementMetadata cols: >> seqnames ranges strand >> <rle> <iranges> <rle> >> [1] chr1 [1, 2] * >> [2] chr1 [3, 7] * >> [3] chr1 [9, 10] * >> --- >> seqlengths: >> chr1 >> NA >> >> ## The second range could be seen as preceding range 3 on '+' >> ## or preceding range 1 on '-'. Range 1 is closer so it is chosen. >> ## The third range precedes no range on '+' but precedes >> ## range 2 on '-' so range 2 is chosen. >>> precede(q) >> [1] 2 1 2 >>> precede(ranges(q)) >> [1] 2 3 NA >> >> ## When the strand is '+' GRanges and IRanges behave the same. >>> strand(q)<- "+" >>> precede(q) >> [1] 2 3 NA >>> precede(ranges(q)) >> [1] 2 3 NA >> >> ## When the strand is '-' GRanges treats the ranges as '-' but >> ## IRanges is unstranded so they are treated as '+'. >>> strand(q)<- "-" >>> precede(q) >> [1] NA 1 2 >>> precede(ranges(q)) >> [1] 2 3 NA >> >> Valerie >> >> >> On 07/03/12 10:58, James Perkins wrote: >>> Thanks, >>> >>> But it appears in the example (using GenomicRanges_1.8.7), the second >>> range is being excluded? I.e. 3-7 matches 5-6 (and 1-3) and thus is >>> >>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>> +>> > c(3, 6, 12))) >>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>> c(3, 6, 12))) >>>> query2 >>> GRanges with 3 ranges and 0 elementMetadata cols: >>> seqnames ranges strand >>> <rle> <iranges> <rle> >>> [1] chr1 [1, 2] * >>> [2] chr1 [3, 7] * >>> [3] chr1 [9, 10] * >>> --- >>> seqlengths: >>> chr1 >>> NA >>>> subject2 >>> GRanges with 3 ranges and 0 elementMetadata cols: >>> seqnames ranges strand >>> <rle> <iranges> <rle> >>> [1] chr1 [ 3, 3] * >>> [2] chr1 [ 5, 6] * >>> [3] chr1 [12, 12] * >>> --- >>> seqlengths: >>> chr1 >>> NA >>>> nearest(query2, subject2) >>> [1] 1 3 3 >>>> nearest(subject2, query2) >>> [1] 1 1 3 >>> >>> Similarly >>> >>> nearest(query2, query2) >>> [1] 2 1 2 >>> >>> should surely be "1 2 3"? Or have I missed something? >>> >>> IRanges is as I would expect:> nearest(ranges(query2), ranges(subject2)) >>> [1] 1 1 3 >>> >>> >>> Jim >>> >>> >>> On 3 July 2012 19:40, Michael Lawrence<lawrence.michael at="" gene.com=""> wrote: >>>> The way IRanges works is that the self hits are excluded (by default) >>>> when >>>> only one argument is passed to nearest(). They should not be excluded >>>> when >>>> the same object is passed as both arguments. >>>> >>>> Michael >>>> >>>> On Tue, Jul 3, 2012 at 7:09 AM, James Perkins<jperkins at="" biochem.ucl.ac.uk=""> >>>> wrote: >>>>> Hi, >>>>> >>>>> I read this: >>>>> >>>>> https://mailman.stat.ethz.ch/pipermail/bioconductor/2012-June/04 6287.html >>>>> >>>>> However, after reading it I'm a little confused as to what the default >>>>> behaviour should be when using nearest with '*', and also how to get >>>>> back to what I believe was the previous, "IRanges" style behaviour. >>>>> >>>>> Is nearest on GRanges supposed to act like nearest on IRanges, or is >>>>> it instead supposed to return the nearest neighbour OTHER than the >>>>> query one? >>>>> >>>>> I.e. >>>>> >>>>> >>>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>>> nearest(query, subject) >>>>> [1] 1 1 3 >>>>> >>>>> Because, it seems to be behaving differently, i.e. returning the >>>>> neighbour only, i.e. >>>>> >>>>> >>>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 3, 9), >>>>>> c(2, 7, 10))) >>>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>>> c(3, 6, 12))) >>>>>> nearest(query2, subject2) >>>>> [1] 1 3 2 >>>>>> sessionInfo() >>>>> R version 2.15.1 (2012-06-22) >>>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>>> >>>>> locale: >>>>> [1] LC_CTYPE=en_US LC_NUMERIC=C >>>>> [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8 >>>>> [5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 >>>>> [7] LC_PAPER=C LC_NAME=C >>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>>> [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C >>>>> >>>>> attached base packages: >>>>> [1] stats graphics grDevices utils datasets methods base >>>>> >>>>> other attached packages: >>>>> [1] GenomicRanges_1.8.7 IRanges_1.14.4 BiocGenerics_0.2.0 >>>>> >>>>> loaded via a namespace (and not attached): >>>>> [1] stats4_2.15.1 >>>>> >>>>> >>>>> However, what makes me confused is that the previous behaviour was like >>>>> IRanges: >>>>> >>>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>>> nearest(query, subject) >>>>> [1] 1 1 3 >>>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>>>> c(2, 7, 12))) >>>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>>> c(3, 6, 12))) >>>>>> nearest(query2, subject2) >>>>> [1] 1 1 3 >>>>>> sessionInfo() >>>>> R version 2.15.0 (2012-03-30) >>>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>>> >>>>> locale: >>>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>>>> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 >>>>> [7] LC_PAPER=C LC_NAME=C >>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>>>> >>>>> attached base packages: >>>>> [1] stats graphics grDevices utils datasets methods base >>>>> >>>>> other attached packages: >>>>> [1] GenomicRanges_1.8.6 IRanges_1.14.3 BiocGenerics_0.2.0 >>>>> >>>>> loaded via a namespace (and not attached): >>>>> [1] stats4_2.15.0 >>>>> >>>>> >>>>> And in fact, this has always been the behaviour right? i.e.: for R >>>>> 2.13.1 >>>>> >>>>>> query<- IRanges(c(1, 3, 9), c(2, 7, 10)) >>>>>> subject<- IRanges(c(3, 5, 12), c(3, 6, 12)) >>>>>> nearest(query, subject) >>>>> [1] 1 1 3 >>>>>> query2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(1, 1, 12), >>>>>> c(2, 7, 12))) >>>>>> subject2<- GRanges(seqnames=rep('chr1',3),ranges=IRanges(c(3, 5, 12), >>>>>> c(3, 6, 12))) >>>>>> nearest(query2, subject2) >>>>> [1] 1 1 3 >>>>>> sessionInfo() >>>>> R version 2.13.1 (2011-07-08) >>>>> Platform: x86_64-pc-linux-gnu (64-bit) >>>>> >>>>> locale: >>>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C >>>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 >>>>> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8 >>>>> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C >>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C >>>>> >>>>> attached base packages: >>>>> [1] stats graphics grDevices utils datasets methods base >>>>> >>>>> other attached packages: >>>>> [1] GenomicRanges_1.4.8 IRanges_1.10.6 >>>>> >>>>> >>>>> Is ignore.strand=TRUE intended to get the IRanges-like behaviour? >>>>> Because I have problems with this too: >>>>> >>>>> nearest(x = query2, subject = subject2, ignore.strand=TRUE) >>>>> Error in strand(x)<- strand(subject)<- "+" : object 'x' not found >>>>> >>>>> Thanks! >>>>> >>>>> Jim >>>>> >>>>> _______________________________________________ >>>>> Bioconductor mailing list >>>>> Bioconductor at r-project.org >>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>>> Search the archives: >>>>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at r-project.org >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: >>> http://news.gmane.org/gmane.science.biology.informatics.conductor >>
ADD REPLY

Login before adding your answer.

Traffic: 654 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6