[Bioc-devel] as.list of a GRanges

Hervé Pagès hpages at fredhutch.org
Thu Feb 15 23:19:06 CET 2018


On 02/15/2018 01:57 PM, Michael Lawrence wrote:
> 
> 
> On Thu, Feb 15, 2018 at 1:45 PM, Hervé Pagès <hpages at fredhutch.org 
> <mailto:hpages at fredhutch.org>> wrote:
> 
>     On 02/15/2018 11:53 AM, Cook, Malcolm wrote:
> 
>         Hi,
> 
>         Can I ask, is this change under discussion in current release or
>         so far in Bioconductor devel only (my assumption)?
> 
> 
>     Bioconductor devel only.
> 
> 
>            > On 02/15/2018 08:37 AM, Michael Lawrence wrote:
>            > > So is as.list() no longer supported for GRanges objects?
>         I have found it
>            > > useful in places.
>            >
>            > Very few places. I found a dozen of them in the entire
>         software repo.
> 
>         However there are probably more in the wild...
> 
> 
>     What as.list() was doing on a GRanges object was not documented. Relying
>     on some kind of obscure undocumented feature is never a good idea.
> 
> 
> There's just too much that is documented implicitly through inherited 
> behaviors, or where we say things like "this data structure behaves as 
> one would expect given base R". It's not fair to claim that those 
> features are undocumented. Our documentation is not complete enough to 
> use it as an excuse.

It's not fair to suggest that this is a widely used feature either.

I've identified all the places in the 1500 software packages where
this was used, and, as I said, there were very few places. BTW I
fixed most of them but my plan is to fix all of them. Some of the
code that is outside the Bioc package corpus might be affected but
it's fair to assume that this will be a very rare occurence. This can
be mitigated by temporary restoring as.list() on GRanges, with a
deprecation message, and wait 1 more devel cycle to replace it with
the new behavior. I chose to disable it for now, on purpose, so I can
identify packages that break (the build report is a great tool for
that) and fix them.

I'm not using the fact that as.list() on a GRanges is not documented
as an excuse for anything. Only to help those with concerns to
relativize and relax.

H.

> 
> 
>            > Now you should use as.list(as(gr, "GRangesList")) instead.
>            > as.list() was behaving inconsistently on IRanges and
>         GRanges objects,
>            > which is blocking new developments. It will come back with
>         a consistent
>            > behavior. More generally speaking IRanges and GRanges will
>         behave
>            > consistently as far as their "list interpretation" is
>         concerned.
> 
>         Can we please be assured to be reminded of this prominently in
>         release notes?
> 
> 
>     The changes will be announced and described on this list and in the
>     NEWS files of the IRanges and GenomicRanges packages.
> 
>     H.
> 
> 
>         Thanks!
> 
>         ~malcolm
> 
> 
>     -- 
>     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