[Bioc-devel] Making non-bioconductor packages play nice with bioc (and vice versa)

Steve Lianoglou mailinglist.honeypot at gmail.com
Tue Sep 6 05:44:17 CEST 2011


Hi Kasper and Martin,

Thanks for the detailed replies.

I guess a general solution to my particular problem would be to lobby
to get more generics into the methods package (as Martin suggested),
but I also see that I happened to pick an "extra special" function to
talk about in cbind/rbind, as some work has already been attempted to
S4-ize these via cbind2/rbind2 + some magic
`methods:::bind_activation(TRUE)`.

Actually, most of the correspondence on that from R-dev is a bit old,
but it seems the authors of the Matrix package (which a lot of the
(more detailed) discussion seems to circle around) decided to side
step it altogether and settle with using cBind/rBind for a few
reasons, so maybe I'll just leave this at that for now.

As for Kasper's suggestion:

> Now, one solution for Bioconductor, is to have a single package just
> containing standard generics for the project.  This used to be
> Biobase, so that all packages using some basic S4 depended on Biobase.
>  Now with IRanges etc. and the many additions this is not true
> anymore.  One possible "solution" going forward is to get some
> consensus about the signature and then design a single base
> Bioconductor containing simply a lot of calls to setGeneric.  Of
> course, this will not necessarily help your use case a lot, but it
> might at least provide more sanity with Bioc.

I can see the value in that as I've found some functions are worth
having S4-ized off the bat and don't necessarily need all (any -- at
times) of the other functionality that the packages they are defined
in provide.

For instance, things like:

genome (setGeneric defined in rtracklayer)
strand (from GenomicRanges)

But this seems like a discussion that is a whole different can of
worms and definitely worthy of its own thread. The examples I provide
aren't all that great either since you'll likely be depending on these
packages already if you know what's good for you ;-)

I mean, if you're not depending on Biobase, I guess the chances are
you are working with NGS data, in which case IRanges + GenomicRanges
are probably in your Depends/Imports DESCRIPTION field already ... and
rtracklayer will make it in there eventually, especially if you're
importing/exporting different types of data ...

-steve

-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the Bioc-devel mailing list