[Bioc-devel] Help with class lost after subsetting.

Martin Morgan mtmorg@n@bioc @ending from gm@il@com
Tue Aug 28 08:01:37 CEST 2018

On 08/28/2018 12:19 AM, Charles Plessy wrote:
> Dear Bioconductor developers,
> In the CAGEr package, I created a "CAGEexp" class that extends
> "MultiAssayExperiment" without adding new slots, in order to define generic
> functions that require CAGEr-specific contents in the colData slot.
> Unfortunately, when run in the development branch of Bioconductor,
> the CAGEexp objects lose their class when they are subsetted.  Here
> is an example:
>> CAGEr::exampleCAGEexp
> A CAGEexp object of 4 listed
> (...)
>> CAGEr::exampleCAGEexp[,1]
> A MultiAssayExperiment object of 4 listed
> (...)
> This breaks examples in the package, as well as existing code.
> I am lost on how to troubleshoot this.  May I ask for your help ?

I debugged this using first `selectMethod("[", "MultiAssayExperiment")` 
and then `showMethod()` / `selectMethod()` to arrive at 

The problem is that this line


returns a MultiAssayExperiment; what it should do is probably closer to 
the 'copy constructor' functionality of `initialize()`, along the lines of

   initialize(x, ExperimentList = ..., )

This could be opened as an issue on the MultiAssayExperiment github 
repository; maybe Herve or Michael or others might comment on the best 


> Best regards,

More information about the Bioc-devel mailing list