[Bioc-devel] as.character method for GenomicRanges?
Peter Haverty
haverty.peter at gene.com
Fri Apr 24 20:08:34 CEST 2015
Good catch. We'll want the strand in case we need to go back to a GRanges.
I would make the strand addition optional with the default of FALSE. It's
nice to have a column of strings you can paste right into a genome browser
(sorry Michael :-) ). I often pass my bench collaborators a spreadsheet
with such a column.
Pete
____________________
Peter M. Haverty, Ph.D.
Genentech, Inc.
phaverty at gene.com
On Fri, Apr 24, 2015 at 10:50 AM, Hervé Pagès <hpages at fredhutch.org> wrote:
> On 04/24/2015 10:21 AM, Michael Lawrence wrote:
>
>> Sorry, one more concern, if you're thinking of using as a range key, you
>> will need the strand, but many use cases might not want the strand on
>> there. Like for pasting into a genome browser.
>>
>
> What about appending the strand only for GRanges objects that
> have at least one range that is not on *?
>
> setMethod("as.character", "GenomicRanges",
> function(x)
> {
> if (length(x) == 0L)
> return(character(0))
> ans <- paste0(seqnames(x), ":", start(x), "-", end(x))
> if (any(strand(x) != "*"))
> ans <- paste0(ans, ":", strand(x))
> ans
> }
> )
>
> > as.character(gr)
> [1] "chr1:1-10" "chr2:2-10" "chr2:3-10" "chr2:4-10" "chr1:5-10"
> [6] "chr1:6-10" "chr3:7-10" "chr3:8-10" "chr3:9-10" "chr3:10-10"
>
> > strand(gr)[2:3] <- c("-", "+")
> > as.character(gr)
> [1] "chr1:1-10:*" "chr2:2-10:-" "chr2:3-10:+" "chr2:4-10:*"
> "chr1:5-10:*"
> [6] "chr1:6-10:*" "chr3:7-10:*" "chr3:8-10:*" "chr3:9-10:*"
> "chr3:10-10:*"
>
> H.
>
>
>> On Fri, Apr 24, 2015 at 10:18 AM, Michael Lawrence <michafla at gene.com
>> <mailto:michafla at gene.com>> wrote:
>>
>> It is a great idea, but I'm not sure I would use it to implement
>> table(). Allocating those strings will be costly. Don't we already
>> have the 4-way int hash? Of course, my intuition might be completely
>> off here.
>>
>>
>> On Fri, Apr 24, 2015 at 9:59 AM, Hervé Pagès <hpages at fredhutch.org
>> <mailto:hpages at fredhutch.org>> wrote:
>>
>> Hi Pete,
>>
>> Excellent idea. That will make things like table() work
>> out-of-the-box
>> on GenomicRanges objects. I'll add that.
>>
>> Thanks,
>> H.
>>
>>
>>
>> On 04/24/2015 09:43 AM, Peter Haverty wrote:
>>
>> Would people be interested in having this:
>>
>> setMethod("as.character", "GenomicRanges",
>> function(x) {
>> paste0(seqnames(x), ":", start(x), "-",
>> end(x))
>> })
>>
>> ?
>>
>> I find myself doing that a lot to make unique names or for
>> output that
>> goes to collaborators. I suppose we might want to tack on
>> the strand if it
>> isn't "*". I have some code for going the other direction
>> too, if there is
>> interest.
>>
>>
>>
>> Pete
>>
>> ____________________
>> Peter M. Haverty, Ph.D.
>> Genentech, Inc.
>> phaverty at gene.com <mailto:phaverty at gene.com>
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
>> mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>>
>> --
>> Hervé Pagès
>>
>> Program in Computational Biology
>> Division of Public Health Sciences
>> Fred Hutchinson Cancer Research Center
>> 1100 Fairview Ave. N, M1-B514
>> P.O. Box 19024
>> Seattle, WA 98109-1024
>>
>> E-mail: hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>> Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>> Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>>
>>
>> _______________________________________________
>> Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
>> mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>>
>>
>>
> --
> Hervé Pagès
>
> Program in Computational Biology
> Division of Public Health Sciences
> Fred Hutchinson Cancer Research Center
> 1100 Fairview Ave. N, M1-B514
> P.O. Box 19024
> Seattle, WA 98109-1024
>
> E-mail: hpages at fredhutch.org
> Phone: (206) 667-5791
> Fax: (206) 667-1319
>
[[alternative HTML version deleted]]
More information about the Bioc-devel
mailing list