[Bioc-devel] R6 and Bioconductor

Martin Morgan martin.morgan at roswellpark.org
Fri May 12 13:23:28 CEST 2017


On 05/12/2017 07:11 AM, Martin Morgan wrote:
> On 05/12/2017 02:05 AM, Garth Ilsley wrote:
>> Hello,
>>
>> I am thinking of creating package for Bioconductor, and I am wondering
>> about the use of R6 classes (from the R6 package). I do indeed intend
>> to use existing Bioconductor classes such as SummarizedExperiment and
>> interact and make use of other Bioconductor packages, such as scater
>> and DESeq2. This appears to be in accordance with the guidelines
>> (https://www.bioconductor.org/developers/package-guidelines/#classes),
>> but does the use of R6 classes disqualify the package from being in
>> Bioconductor? Do I need to write my classes as S4 in order to qualify?
>>
>
> I think there's little value in exposing R6 classes to Bioconductor
> users, introducing yet another syntax and semantics, and would strongly
> discourage their use outside the package name space.
>
> Inside the package name space the maintainer has more liberty to adopt
> programming practices that are geared toward correct and efficient
> implementations; if R6 fills this role (I'm not an expert, but I don't
> think R6 enforces strong type checking and is not particularly
> efficient) then it would be appropriate to use them.

Maybe one additional point is that perhaps 'write my classes' implies 
that you'll be creating new classes; it might often be better to re-use 
existing classes, or worst-case write simple extensions (e.g., an 
additional slot to SummarizedExperiment) to existing classes. In this 
way you re-use existing robust software and don't further overwhelm the 
cognitive burden placed on the user struggling to navigate yet more 
functionality.

Martni

>
> Martin
>
>> Thank you for your help.
>>
>> Best regards,
>> Garth
>>
>>
>>     [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>
>
> This email message may contain legally privileged and/or...{{dropped:2}}
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel


This email message may contain legally privileged and/or...{{dropped:2}}



More information about the Bioc-devel mailing list