[Bioc-sig-seq] flank vs shift behaviour on GRanges objects

Valerie Obenchain vobencha at fhcrc.org
Thu Aug 26 22:35:11 CEST 2010


Hi Aaron,

Thanks for identifying this. I've updated the Ranges-utils.Rd file in
the development branch and the change should be visible in 24-36 hours.

Valerie
(new member of bioconductor team)



On 08/26/2010 01:45 AM, Aaron Statham wrote:
> Hi Patrick,
>
> Actually I'm happy with using ifelse() -  could you update the
> Ranges-utils.Rd  (first hit for ?shift) as it currently says 'shift' must be
> a single integer (but RangesList-utils.Rd is correct).
>
> Thanks,
> Aaron
>
> On 26 August 2010 16:00, Patrick Aboyoun <paboyoun at fhcrc.org> wrote:
>
>   
>>  Aaron,
>> shift() currently doesn't respect strand because the most common use case
>> for the function is to change from a 0-based index system to a 1-based index
>> system, which is strand independent. The shift argument to the shift
>> function, however, does accept an integer vector so you could use the
>> following code, or something similar, to perform this operation somewhat
>> efficiently:
>>
>> amount <- strand(g1)
>> runValue(amount) <- ifelse(runValue(amount) == "-", -1L, 1L)
>> shift(g1, as.vector(amount))
>>
>> Perhaps this can be made simpler in the future if more users what
>> strand-dependent shifting.
>>
>>
>> Patrick
>>
>>
>>
>>
>> On 8/25/10 9:54 PM, Aaron Statham wrote:
>>
>>     
>>> Hi all,
>>>
>>> Just ran into this - flank() takes notice of the strand for GRanges
>>> objects,
>>> whilst shift() doesn't.
>>> Would it make sense for shift to use the strand in the GRanges method, or
>>> is
>>> there a nice alternative? (at the moment I'm doing a shift per strand)
>>>
>>>
>>>  g1<- GRanges(rep("chr1", 3), IRanges(rep(5, 3), width=1), c("+","-","*"))
>>>       
>>>> g1
>>>>
>>>>         
>>> GRanges with 3 ranges and 0 elementMetadata values
>>>     seqnames    ranges strand |
>>>        <Rle>  <IRanges>   <Rle>  |
>>> [1]     chr1    [5, 5]      + |
>>> [2]     chr1    [5, 5]      - |
>>> [3]     chr1    [5, 5]      * |
>>>
>>> seqlengths
>>>  chr1
>>>    NA
>>>
>>>       
>>>> flank(g1,3)
>>>>
>>>>         
>>> GRanges with 3 ranges and 0 elementMetadata values
>>>     seqnames    ranges strand |
>>>        <Rle>  <IRanges>   <Rle>  |
>>> [1]     chr1    [2, 4]      + |
>>> [2]     chr1    [6, 8]      - |
>>> [3]     chr1    [2, 4]      * |
>>>
>>> seqlengths
>>>  chr1
>>>    NA
>>>
>>>       
>>>> shift(g1,3)
>>>>
>>>>         
>>> GRanges with 3 ranges and 0 elementMetadata values
>>>     seqnames    ranges strand |
>>>        <Rle>  <IRanges>   <Rle>  |
>>> [1]     chr1    [8, 8]      + |
>>> [2]     chr1    [8, 8]      - |
>>> [3]     chr1    [8, 8]      * |
>>>
>>> seqlengths
>>>  chr1
>>>    NA
>>>
>>> R version 2.11.0 (2010-04-22)
>>> x86_64-unknown-linux-gnu
>>>
>>> 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] GenomicRanges_1.0.7 IRanges_1.6.15
>>>
>>> Thanks,
>>> Aaron
>>>
>>>
>>>       
>>     
>
>



More information about the Bioc-sig-sequencing mailing list