[Bioc-devel] Candidates for BiocGenerics
Nicolas Delhomme
delhomme at embl.de
Thu Mar 1 21:21:32 CET 2012
On 1 Mar 2012, at 21:11, Hervé Pagès wrote:
> Hi Nico,
>
> On 03/01/2012 11:05 AM, Nicolas Delhomme wrote:
>> Hi Hervé,
>>
>> I have something related to that. My package depends among others on two bioC packages: genomeIntervals and GenomicRanges that both define identical functions: strand, strand<-, reduce.
>>
>> Therefore in my own code, I need to do the dispatching myself, so I have something along those lines for these three functions
>>
>> setMethod(
>> f="strand",
>> signature="RNAseq",
>> definition=function(x){
>> if(extends(class(x),"Genome_intervals_stranded")){
>> genomeIntervals::strand(x)
>> } else {
>> GenomicRanges::strand(x)
>> }
>> })
>
> So your RNAseq class seems to be some kind of union between the
> Genome_intervals_stranded class defined in the genomeIntervals
> package and some other class(es) defined in the GenomicRanges
> package?
>
Kind of; it's not really an union, but I do use both of some of their functionalities.
> There are so many differences in the way genomeIntervals and
> GenomicRanges deal with ranges that implementing things that
> work on top of both must lead to all kind of headaches indeed ;-)
> Like for example here, your "strand" method for RNAseq objects
> will sometimes return a factor with 2 levels (-, +) and sometimes
> a factor-Rle with 3 levels (+, -, *).
>
You name it ;-)
> Anyway, yes it seems to make sense to move the strand() generic to
> BiocGenerics so I will to that.
Great! I'll see with Julien if he can adapt to that.
>
>>
>> For the strand and strand<- function, having the generic in BiocGenerics would be perfect. But for the reduce one, it's more complicated since genomeIntervals inherit it from intervals, which is a CRAN package, so I suppose I would still have to do the dispatching myself for that one, which is sub-optimal for code stability. Would there be another solution? I suppose, having bioC and the maintainer of that package agree on a generic would do, but how realistic is that?
>
> Mmmh, I guess reduce() is one of those situations where having
> the BiocGenerics package doesn't help much. intervals being on
> CRAN, it would not make a lot of sense to ask them to depend on
> BiocGenerics. And I don't like the idea of having IRanges depending
> on intervals either for the only purpose of importing their generic
> (and in any case they would first need to change its signature which
> is not "setMethod-friendly" at the moment).
>
Exactly. I knew it was kind of a dead-lock here. I was just curious to know if there would be a possibility to link these two "worlds".
Anyway, I'll see with the authors of this package if at least sharing the same signature is something do-able.
Cheers,
Nico
> Cheers,
> H.
>
>>
>> Cheers,
>>
>> Nico
>>
>> ---------------------------------------------------------------
>> Nicolas Delhomme
>>
>> Genome Biology Computational Support
>>
>> European Molecular Biology Laboratory
>>
>> Tel: +49 6221 387 8310
>> Email: nicolas.delhomme at embl.de
>> Meyerhofstrasse 1 - Postfach 10.2209
>> 69102 Heidelberg, Germany
>> ---------------------------------------------------------------
>>
>>
>>
>>
>>
>> On 1 Mar 2012, at 19:47, Hervé Pagès wrote:
>>
>>> Hi Kevin,
>>>
>>> On 03/01/2012 10:13 AM, Kevin R. Coombes wrote:
>>>> I think that everything that is already an S3 generic in R should be
>>>> (automatically) upgraded to an S4 generic. (Four out of five of
>>>> Benilton's suggestions already qualify by that criterion. And ncol
>>>> should clearly be promoted to a generic for Bioc usage.) And a
>>>> suggestion by even one person who is using any base R function as a
>>>> generic should easily be enough to get it included in BiocGenerics.
>>>>
>>>> I think the only question is whether there should be a core place (like
>>>> BiocGenerics) to contain the definitions of generics that don't
>>>> replace/extend functions in base R. For example, I could imagine more
>>>> than one person wanting a "process" generic to handle some processing
>>>> step for some high-throughput platforms. Is there any procedure for
>>>> dealing with things like this?
>>>
>>> No formal procedure but it could also be placed in BiocGenerics.
>>>
>>> We already have things there (combine, updateObject) that don't
>>> replace/extend functions in base R (see ?BiocGenerics).
>>>
>>> I also have on my list to move all the generics for count datasets
>>> currently defined in Biobase (and used by the DESeq and DEXSeq
>>> packages) to BiocGenerics.
>>>
>>> The criteria for such a move is not as clear as for the stuff that
>>> is already in base R though. What we want to avoid is having the same
>>> generic defined twice so if 2 packages want to define a "process"
>>> generic then one should depend on the other one so the second one
>>> does not need to redefine the generic, it just needs to define methods
>>> on it. If, for whatever reason, having one package depend on the
>>> other is not desirable, then the generic should go in BiocGenerics.
>>>
>>> Cheers,
>>> H.
>>>
>>>
>>>> Kevin
>>>>
>>>> On 3/1/2012 10:18 AM, Sean Davis wrote:
>>>>> On Thu, Mar 1, 2012 at 7:57 AM, Benilton Carvalho
>>>>> <beniltoncarvalho at gmail.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm implementing a few things in oligo and I wonder if it'd make
>>>>>> sense to have
>>>>>>
>>>>>> boxplot/coef/image/ncol/residuals
>>>>>>
>>>>>> defined in BiocGenerics?
>>>>>>
>>>>>> If it's only me using them, I'm happy to have everything in oligo.
>>>>>>
>>>>>> Thoughts?
>>>>> It seems that if someone is proposing a generic for functionality
>>>>> already in base R, that generic is by definition a good candidate for
>>>>> inclusion in BiocGenerics. Are there downsides to having this be a
>>>>> criterion for inclusion?
>>>>>
>>>>> Sean
>>>>>
>>>>> _______________________________________________
>>>>> Bioc-devel at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>>
>>>> _______________________________________________
>>>> 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 fhcrc.org
>>> Phone: (206) 667-5791
>>> Fax: (206) 667-1319
>>>
>>> _______________________________________________
>>> 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 fhcrc.org
> Phone: (206) 667-5791
> Fax: (206) 667-1319
More information about the Bioc-devel
mailing list