[Bioc-devel] Extending GenomicRanges::`intra-range-methods`

Michael Lawrence |@wrence@m|ch@e| @end|ng |rom gene@com
Mon Sep 16 20:49:02 CEST 2019


It's on the right track. The case where two ranges are produced is
problematic, because we would want this to be a parallel vector
operation, where the length of the input is the same as the length of
the output. So that last case I think might just ignore the leftend
and rightstart arguments with a warning, returning a result with the
gap filled.

Michael

On Mon, Sep 16, 2019 at 1:48 AM Bhagwat, Aditya
<Aditya.Bhagwat using mpi-bn.mpg.de> wrote:
>
> Michael, actually, such a generic straddle() could be useful:
>
> straddle(leftstart=-100, rightend=100)  # extended range
> straddle(leftstart=-100, leftend=-1)       # left flank
> straddle(rightstart=1, rightend=100)     # right flank
> straddle(leftstart=-100, leftend=-1, rightstart=1, rightend=100) # left and right flanks
>
> What do you think?
>
> Aditya
>
> ________________________________________
> From: Bioc-devel [bioc-devel-bounces using r-project.org] on behalf of Bhagwat, Aditya [Aditya.Bhagwat using mpi-bn.mpg.de]
> Sent: Monday, September 16, 2019 10:30 AM
> To: Michael Lawrence
> Cc: bioc-devel using r-project.org
> Subject: Re: [Bioc-devel] Extending GenomicRanges::`intra-range-methods`
>
> Hmm no that wouldn't work, it would become messy trying to figure out when incompatible arguments are provided.
>
> Aditya
>
>
> ________________________________________
> From: Bioc-devel [bioc-devel-bounces using r-project.org] on behalf of Bhagwat, Aditya [Aditya.Bhagwat using mpi-bn.mpg.de]
> Sent: Monday, September 16, 2019 10:09 AM
> To: Michael Lawrence
> Cc: bioc-devel using r-project.org
> Subject: Re: [Bioc-devel] Extending GenomicRanges::`intra-range-methods`
>
> Hi Michael,
>
> Thank you for the pointer to plyranges - looks very useful!
>
> > Maybe a better name is "straddle" for when ranges
> > straddle one of the endpoints? In keeping with the current pattern of
> > Ranges API, there would be a single function: straddle(x, side, left,
> > right, ignore.strand=FALSE). So straddle(x, "start", -100, 10) would
> > be like promoters(x, 100, 10) for a positive or "*" strand range.
>
> Cool suggestion, and a really fitting verb :-)
> Just slightly modifying your suggestion makes the API fully generic (waaw!), generalizing over left_flank, right_flank, as well as slop:
>
> straddle(leftstart, leftend, rightstart, rightend)
>
> Would it be worth having such functionality in GenomicRanges or plyranges, rather than multicrispr<https://gitlab.gwdg.de/loosolab/software/multicrispr>?
>
>
> > That brings up strandedness, which needs to be considered here. For
> > unstranded ranges, it may be that direct start() and end()
> > manipulation is actually more transparent than a special verb.
>
> I ended up using left/right for unstranded, and up/down for stranded operations.
>
>
> > The functions that involve reduce() wouldn't fit into the intrarange
> > operations, as they are summarizing ranges, not transforming them.
> > They may be going too far.
>
> True. Actually, the functions would be cleaner without the reduce(), I think I'll take that out.
>
> Cheers,
>
> Aditya
>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioc-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
> _______________________________________________
> Bioc-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel



-- 
Michael Lawrence
Scientist, Bioinformatics and Computational Biology
Genentech, A Member of the Roche Group
Office +1 (650) 225-7760
michafla using gene.com

Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube



More information about the Bioc-devel mailing list