[BioC] Subscripting GenomicRanges objects with [[ or $

Martin Morgan mtmorgan at fhcrc.org
Fri Aug 27 16:02:37 CEST 2010


On 08/27/2010 03:03 AM, Tim Yates wrote:
> Hi Richard,
> 
> Ahhh..cool, yeah that works. Shame it's not a unified interface across all
> three datatypes though.

These were intentional design decisions to reduce ambiguities in which
of the components of these complex arguments subscript operations were
meant to apply, in the long run making it easier to write unambiguous
and easy to read code. Martin

> 
> Thanks for pointing me in the right direction though :-)
> 
> Tim
> 
> On 27/08/2010 10:31, "Richard Pearson" <richard.pearson at well.ox.ac.uk>
> wrote:
> 
>> Hi Tim
>>
>> I think you need the values accessor method here:
>>
>> print( values(my.gr)[[ 'name' ]] )
>>
>> Cheers
>>
>> Richard
>>
>>
>> Tim Yates wrote:
>>> Hi all,
>>>
>>> I'm trying to move to using GRanges objects for storing my genomic features
>>> rather than IRanges objects that I use currently.
>>>
>>> However, I cannot seem to subscript the Genomic Ranges object to extract a
>>> single column from the meta-data of the object.
>>>
>>> Hopefully this code explains what I am trying to do, and someone can point
>>> me in the right direction?
>>>
>>> Cheers,
>>>
>>> Tim
>>>
>>>> library(GenomicRanges)
>>> Loading required package: IRanges
>>>
>>> Attaching package: 'IRanges'
>>>
>>>
>>>     The following object(s) are masked from package:base :
>>>
>>>      cbind,
>>>      Map,
>>>      mapply,
>>>      order,
>>>      paste,
>>>      pmax,
>>>      pmax.int,
>>>      pmin,
>>>      pmin.int,
>>>      rbind,
>>>      rep.int,
>>>      table 
>>>
>>>> library(GenomicRanges)
>>>> my.starts  = c(     10,    100,   1000 )
>>>> my.ends    = c(     20,    200,   2000 )
>>>> my.spaces  = c(    '1',    '2',    '3' )
>>>> my.strands = c(    '+',    '+',    '-' )
>>>> my.names   = c( 'seq1', 'seq2', 'seq3' )
>>>> my.delta   = c(   1.23,   2.34,   3.45 )
>>>>
>>>> my.df = data.frame( start=my.starts, end=my.ends, space=my.spaces,
>>> strand=my.strands, name=my.names, delta=my.delta )
>>>> my.rd = as( my.df, 'RangedData' )
>>>> my.gr = as( my.rd, 'GRanges' )
>>>>
>>>
>>> # Extract the name field from each of these objects using [[
>>>
>>>> print( my.df[[ 'name' ]] )
>>> [1] seq1 seq2 seq3
>>> Levels: seq1 seq2 seq3
>>>> print( my.rd[[ 'name' ]] )
>>> [1] seq1 seq2 seq3
>>> Levels: seq1 seq2 seq3
>>>> print( my.gr[[ 'name' ]] )
>>> Error in my.gr[["name"]] : missing '[[' method for Sequence class GRanges
>>>
>>> # Extract the name field from each of these objects using $
>>>
>>>> print( my.df$'name' )
>>> [1] seq1 seq2 seq3
>>> Levels: seq1 seq2 seq3
>>>> print( my.rd$'name' )
>>> [1] seq1 seq2 seq3
>>> Levels: seq1 seq2 seq3
>>>> print( my.gr$'name' )
>>> Error in x[[name, exact = FALSE]] :
>>>   missing '[[' method for Sequence class GRanges
>>>> sessionInfo()
>>> R version 2.10.1 (2009-12-14)
>>> x86_64-apple-darwin9.8.0
>>>
>>> locale:
>>> [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
>>>
>>> attached base packages:
>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> other attached packages:
>>> [1] GenomicRanges_1.0.8 IRanges_1.6.15
>>> --------------------------------------------------------
>>> This email is confidential and intended solely for the u...{{dropped:15}}
>>>
>>> _______________________________________________
>>> Bioconductor mailing list
>>> Bioconductor at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>>> Search the archives:
>>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>>>
> --------------------------------------------------------
> This email is confidential and intended solely for the...{{dropped:18}}



More information about the Bioconductor mailing list