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 `subsetByColData,MultiAssayExperiment,ANY-method`.

The problem is that this line

https://github.com/waldronlab/MultiAssayExperiment/blob/master/R/subsetBy-methods.R#L261

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 implementation.

Martin


Best regards,


_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to