slidingIRanges in IRanges ... odd behavior
1
0
Entering edit mode
@storybenjamin-11722
Last seen 4 weeks ago
Germany
slidingIRanges
function (len, width, shift = 1L) 
{
    start <- seq(1L, len - width, by = shift)
    end <- seq(width, len, by = shift)
    IRanges(start, end)
}
<environment: namespace:IRanges>

It seems to me that this function doesn't really work... given that let's say I'm trying to generate a 1 nt sliding window across a sequence of length 10.

> length(seq(1L,10-1))
[1] 9
> length(seq(1,10))
[1] 10
> 

Should it be? start <- seq(1L, len - width + 1, by = shift) Or maybe I'm missing something... I was just trying to generate a sliding IRanges window.

IRanges • 294 views
ADD COMMENT
0
Entering edit mode

Maybe I'm the first person to ever use the function!

https://code.bioconductor.org/search/search?q=slidingIRanges

ADD REPLY
0
Entering edit mode
@herve-pages-1542
Last seen 3 days ago
Seattle, WA, United States
> slidingIRanges(7, width=7)
Error in seq.default(1L, len - width, by = shift) : 
  wrong sign in 'by' argument

> slidingIRanges(10, width=7)
IRanges object with 4 ranges and 0 metadata columns:
          start       end     width
      <integer> <integer> <integer>
  [1]         1         7         7
  [2]         2         8         7
  [3]         3         9         7
  [4]         1        10        10  <-- wrong!
Warning messages:
1: In 1 + end - start :
  longer object length is not a multiple of shorter object length
2: In ans[] <- x :
  number of items to replace is not a multiple of replacement length

> slidingIRanges(10, width=7, shift=3)
IRanges object with 2 ranges and 0 metadata columns:
          start       end     width
      <integer> <integer> <integer>
  [1]         1         7         7
  [2]         1        10        10  <-- wrong!

Yes this function seems quite broken and is not documented so you're probably the first person to use it since it was added in 2015! Please open an issue here.

Thanks,

H.

ADD COMMENT

Login before adding your answer.

Traffic: 393 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