[Bioc-devel] as.character method for GenomicRanges?

Hervé Pagès hpages at fredhutch.org
Mon Apr 27 23:23:34 CEST 2015


On 04/27/2015 02:15 PM, Michael Lawrence wrote:
> It would be nice to have a single function call that would hide these
> details. It could probably be made more efficient also by avoiding
> multiple matching, unnecessary revmap lists, etc. tableAsGRanges() is
> not a good name but it conveys what I mean (does that make it actually
> good?).

There is nothing specific to GRanges here. We're just reporting the
frequency of unique elements in a metadata column so this belongs to
the "extended" Vector API in the same way that findMatches/countMatches
do.

H.

>
> On Mon, Apr 27, 2015 at 12:23 PM, Hervé Pagès <hpages at fredhutch.org
> <mailto:hpages at fredhutch.org>> wrote:
>
>     On 04/24/2015 11:41 AM, Michael Lawrence wrote:
>
>         Taking this a bit off topic but it would be nice if we could get the
>         GRanges equivalent of as.data.frame(table(x)), i.e., unique(x)
>         with a
>         count mcol. Should be easy to support but what should the API be
>         like?
>
>
>     This was actually the motivating use case for introducing
>     findMatches/countMatches a couple of years ago:
>
>        ux <- unique(x)
>        mcols(ux)$Freq <- countMatches(ux, x)
>
>     Don't know what a good API would be to make this even more
>     straightforward though. Maybe via some extra argument to unique()
>     e.g. 'with.freq'? This is kind of similar to the 'with.revmap'
>     argument of reduce(). Note that unique() could also support the
>     'with.revmap' arg. Once it does, the 'with.freq' arg can also
>     be implemented by just calling elementLengths() on the "revmap"
>     metadata column.
>
>     H.
>
>
>         On Fri, Apr 24, 2015 at 10:54 AM, Hervé Pagès
>         <hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>         <mailto:hpages at fredhutch.org <mailto:hpages at fredhutch.org>>> wrote:
>
>              On 04/24/2015 10:18 AM, Michael Lawrence 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.
>
>
>              It does use the 4-way int hash internally. as.character()
>         is only used
>              at the very-end to stick the names on the returned table
>         object.
>
>              H.
>
>
>
>                  On Fri, Apr 24, 2015 at 9:59 AM, Hervé Pagès
>                  <hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>         <mailto:hpages at fredhutch.org <mailto:hpages at fredhutch.org>>
>                  <mailto:hpages at fredhutch.org
>         <mailto:hpages at fredhutch.org> <mailto: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>
>         <mailto:phaverty at gene.com <mailto:phaverty at gene.com>>
>                  <mailto:phaverty at gene.com <mailto:phaverty at gene.com>
>         <mailto: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>
>         <mailto:Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>>
>                  <mailto:Bioc-devel at r-project.org
>         <mailto:Bioc-devel at r-project.org>
>         <mailto: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> <mailto:hpages at fredhutch.org
>         <mailto:hpages at fredhutch.org>>
>                  <mailto:hpages at fredhutch.org
>         <mailto:hpages at fredhutch.org> <mailto:hpages at fredhutch.org
>         <mailto:hpages at fredhutch.org>>>
>                       Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>         <tel:%28206%29%20667-5791>
>                  <tel:%28206%29%20667-5791>
>                       Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>         <tel:%28206%29%20667-1319>
>                  <tel:%28206%29%20667-1319>
>
>
>                       _______________________________________________
>         Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
>         <mailto:Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>>
>                  <mailto:Bioc-devel at r-project.org
>         <mailto:Bioc-devel at r-project.org>
>                  <mailto: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>
>         <mailto:hpages at fredhutch.org <mailto:hpages at fredhutch.org>>
>              Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>         <tel:%28206%29%20667-5791>
>              Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>         <tel:%28206%29%20667-1319>
>
>
>
>     --
>     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>
>
>

-- 
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



More information about the Bioc-devel mailing list